做一个oop版的电子词典(扩展1)

/*烟台大学计算机学院学生
*All right reserved.
*文件名称:做一个oop版的电子词典((扩展1)
*作者:杨飞
*完成日期:2014年6月2日
*版本号:v1.0
*对任务及求解方法的描述部分:做一个oop版的电子词典(扩展1)
*我的程序:*/
#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<<chinese<<"  ";
    };
};
istream& operator >>(istream &input,Word &t)
{
    input>>t.english>>t.chinese>>t.word_class;
    return input;
}
int main()
{
    string n;
    Word word[8000];
    int m;
    cout<<"请输入你想翻译的句子的单词个数!!!"<<endl;
    cin>>m;
    string word1[m];
    int num=0,low,mid,high;
    cout<<"请输入句子"<<endl;
    ifstream infile("dic.txt",ios::in);
    if(!infile)
    {
        cerr<<"data error!!!"<<endl;
        exit(1);
    }
    while(!infile.eof())
    {
        infile>>word[num];
        num++;
    }
    infile.close();
      int w=0;
     while(cin>>word1[w])
     {
        if(word1[w]=="1111")
        {
            break;
        }
        else
        {
            high=num;
            low=0;
            mid=(high+low)/2;
            while(low<high&&word[mid].fanhui()!=word1[w])
            {
                if(word[mid].fanhui()<word1[w])
                {
                    low=mid+1;
                }
                if(word[mid].fanhui()>word1[w])
                {
                    high=mid-1;
                }
                mid=(high+low)/2;
            }
            if(word[mid].fanhui()!=word1[w])
            {
                cout<<"查无此词!"<<endl;
            }
            else
            {
                 word[mid].dispay();
            }
          }
          w++;
       cout<<"(退出 请按1111)"<<endl;
     }
    return 0;
}

你可能感兴趣的:(做一个oop版的电子词典(扩展1))