第十七周项目7 电子词典(还有疑问,求解答)

来源:互联网 发布:nsp网络 编辑:程序博客网 时间:2024/05/29 10:14

要求:

做一个简单的电子词典。在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000
个,英文、中文释义与词性间用’\t’隔开。
编程序,由用户输入英文词,显示词性和中文释义。
提示1:定义一个Word结构体表示一个词条,其中的数据成员stringenglish; 表示英文单词,stringchinese;表示
对应中文意思,stringword_class;表示该词的词性;定义Wordwords[8000]存放所有词条成员,intwordsNum;表示词
典中的词条数。
提示2:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。
提示3:这样的项目,相关功能用函数实现,最好用多文件的形式组织
提示4:本项目的参考界面和未来的界面可以是下面的样子。不过暂时黑框框吧。

#include <iostream>#include <fstream>using namespace std;struct Dict{    string eng;    string cha;    string shu;};int main(){    int i,num=0;    Dict word[8000];    ifstream infile("dictionary.txt",ios::in); //以输入的方式打开文件    i=0;    while(infile>>word[i].eng>>word[i].cha>>word[i].shu)    {        ++num;        ++i;    }    infile.close();    string Cin;    while(cout<<"请输入您要查找的英文单词:",cin>>Cin)    {        int high=num-1,low=-1;        int mid;        for(;low<high;)        {            mid=(high+low)/2;            if(word[mid].eng==Cin)                break;            else            {                if(word[mid].eng<Cin)                    low=mid;                else high=mid;            }        }         if(low==high)            cout<<"抱歉,查无此词"<<endl;        else            cout<<word[mid].eng<<"<------"<<word[mid].cha<<"    "<<word[mid].shu<<endl;    }    return 0;}

运行结果:


在这个程序中,当输入单词是不正常的,不知道为什么就是跳不出循环,

有人能提示一下吗!

1 0
原创粉丝点击