做一个oop版的电子词典

来源:互联网 发布:英雄杀刷官职软件 编辑:程序博客网 时间:2024/05/21 17:17
/*烟台大学计算机学院学生*All right reserved.*文件名称:做一个oop版的电子词典*作者:杨飞*完成日期:2014年6月2日*版本号:v1.0*对任务及求解方法的描述部分:做一个oop版的电子词典*我的程序:*/#include <iostream>#include <iomanip>#include <cstdlib>#include <fstream>#include <cstring>using namespace std;class Word{private:    string english;    string word_class;    string chinese;public:    friend istream& operator >>(istream &input,Word &t);    friend ostream& operator <<(ostream &output,Word &t);    string fanhui()    {        return english;    }    void dispay()    {        cout<<english<<"    "<<chinese<<"   "<<word_class<<endl;    };};istream& operator >>(istream &input,Word &t){    input>>t.english>>t.chinese>>t.word_class;    return input;}ostream& operator <<(ostream &output,Word &t){    output<<t.english<<"    "<<t.chinese<<"   "<<t.word_class<<endl;}int main(){    string n;    Word word[8000];    string word1;    int num=0,low,mid,high;    ifstream infile("dic.txt",ios::in);    if(!infile)    {        cerr<<"data error!!!"<<endl;        exit(1);    }    while(!infile.eof())    {        infile>>word[num];        num++;    }    infile.close();    cout<<"请输入一个你想查找的单词:"<<endl;     while(cin>>word1)     {        if(word1=="1111")        {            break;        }        else        {            high=num;            low=0;            mid=(high+low)/2;            while(low<high&&word[mid].fanhui()!=word1)            {                if(word[mid].fanhui()<word1)                {                    low=mid+1;                }                if(word[mid].fanhui()>word1)                {                    high=mid-1;                }                mid=(high+low)/2;            }            if(word[mid].fanhui()!=word1)            {                cout<<"查无此词!"<<endl;            }            else            {                 word[mid].dispay();            }        }       cout<<"请输入一个你想查找的单词:(退出 请按1111)"<<endl;     }    return 0;}

运行结果:

心得体会:呵呵!!!

0 0