首页 > 代码库 > 第十七周项目7 电子词典(还有疑问,求解答)
第十七周项目7 电子词典(还有疑问,求解答)
要求:
做一个简单的电子词典。在文件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; }
运行结果:
在这个程序中,当输入单词是不正常的,不知道为什么就是跳不出循环,
有人能提示一下吗!
第十七周项目7 电子词典(还有疑问,求解答)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。