首页 > 代码库 > 英汉字典
英汉字典
/**Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 作 者:马广明* 完成日期:2014 年 6 月 7 日* 版 本 号:v1.0* 问题描述:电子词典*/#include <iostream>#include <fstream>#include <string>#include <cstdlib>using namespace std;class Word{public: string getenglish() { return english; } string getchinese() { return chinese; } string getword_class() { return word_class; } friend istream&operator>>(istream &input,Word &w); friend ostream&operator<<(ostream &output,Word &w);private: string english; string chinese; string word_class;};Word word[8000];istream&operator>>(istream &input,Word &w){ input>>w.english>>w.word_class>>w.chinese; return input;}ostream&operator<<(ostream &output,Word &w){ output<<w.word_class<<" "<<w.chinese<<endl; return output;}int main(){ int n=0,hign,low,middle; string Eng; ifstream infile("dictionary.txt",ios::in); if(!infile) { cerr<<"open error!"<<endl; exit(1); } while(!infile.eof()) { infile>>word[n]; n++; } infile.close(); while(1) { hign=n-1; low=0; middle=(hign+low)/2; cin>>Eng; if(Eng=="0000") { break; } else { while(hign>=low) { middle=(hign+low)/2; if(word[middle].getenglish()==Eng) { cout<<word[middle]; break; } if(word[middle].getenglish()>Eng) { hign=middle-1; } if(word[middle].getenglish()<Eng) { low=middle+1; } } if(word[middle].getenglish()!=Eng) cout<<"查无此词"<<endl; } } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。