#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;
return output;
}
int main()
{
string n;
Word word[8000];
string word1;
int num=0,low,mid,high;
ifstream infile("dictionary.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;
}
第15周 项目3 oop版电子词典
最新推荐文章于 2022-10-28 11:00:38 发布