第十六周实验报告3

来源:互联网 发布:为什么c语言的头文件 编辑:程序博客网 时间:2024/05/17 08:12

作品名:电子词典

  1.      英文、中文释义与词性间用’\t’隔开。建一个表示词条的类Word,Word 类的一个对象可以描述一个词, 
  2.             类对象数组可以存储词库。将文件中的内容读到对象数组中,由用户输入英文词,显示中文释义。 
  3.             允许用户运行程序后,连续地查词典,直到输入”0000”结束 
  4. * 程序头部的注释结束 

 

 

 

#include <iostream>#include <string>#include <fstream>using namespace std;class Word{private:string word;string mean;string type;public:Word();Word(string wo, string me, string ty);friend void readfile(Word w[]);friend void findword(Word w[]);};Word::Word(){word = "NULL";mean = "NULL";type = "NULL";}Word::Word(string wo, string me, string ty){word = wo;mean = me;type = ty;}void readfile(Word w[]){ifstream infile("dictionary.txt",ios::in);if(! infile){cerr << "open cerror" << endl;exit(1);}for(int i = 0; i < 8000; i++){infile >> w[i].word >> w[i].mean >> w[i].type;}infile.close();}void findword(Word w[]){string wo;do{cout << "输入要查找的单词(0000结束):";cin >> wo;if(wo == "0000"){break;}int a = 0, b = 8000, mid;while(a <= b){mid = (a + b) / 2;if(w[mid].word == wo){cout << w[mid].word << '\t'<< "的汉语意思是:" << w[mid].mean << '\t'<<"词性是:" << w[mid].type << endl;break;}else{if(wo > w[mid].word){a = mid;}else{b = mid;}}}}while(1);}int main(){Word w[8000];readfile(w);findword(w);system("PAUSE");return 0;}


有学会了一个二分查找,哈哈哈。。
原创粉丝点击