源程序:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
class Word
{
public:
Word();
Word(string w, string t, string ci):word(w), translate(t), wordtype(ci){}
string get_word();
string get_translate();
friend void cin_word(Word w[]);
void display();
private:
string word;
string translate;
string wordtype;
};
Word::Word()
{
word = 'a';
translate = 'a';
wordtype = 'a';
}
string Word::get_word()
{
return word;
}
string Word::get_translate()
{
return translate;
}
void cin_word(Word w[])
{
ifstream infile("dictionary.txt",ios::in);
if(!infile)
{
cerr << "open error!!!";
exit(1);
}
for(int i = 0; i < 8000; ++ i)
{
infile >> w[i].word >> w[i].translate >> w[i].wordtype ;
}
infile.close();
}
void Word::display()
{
cout << word << '\t' << translate << '\t' << wordtype << endl;
}
int main()
{
Word w[8000];
string chinese;
int i;
char c;
cin_word(w);
cout << "欢迎使用电子词典" << endl;
while(1)
{
cout << "请选择查询方式:1.英译汉 2.汉译英" ;
cin >> c;
if(c == '1')
{
while(1)
{
cout << "请输入要查询单词:(按0退出,按1返回上一层)";
cin >> chinese;
if(chinese == "0")
{
exit(0);
}
if(chinese == "1")
{
break;
}
for (i = 0; i < 7964; ++ i)
{
if(chinese == w[i].get_word())
{
w[i].display();
break;
}
if(i > 7962)
{
cout << "查无此单词!!!" << endl;
break;
}
}
}
}
if(c == '2')
{
while(1)
{
cout << "请输入要查询汉字:(按0退出,按1返回上一层)";
cin >> chinese;
if(chinese == "0")
{
exit(0);
}
if(chinese == "1")
{
break;
}
for (i = 0; i < 7964; ++ i)
{
if(chinese == w[i].get_translate())
{
w[i].display();
break;
}
if(i > 7962)
{
cout << "查无此词意思!!!" << endl;
break;
}
}
}
}
}
system("PAUSE");
return 0;
}
截图:
还是没把任务四弄出来····vs2008却被自己搞的无法创建项目了····郁闷····
想改一下任务三来个汉译英····可是有bug····如果一个单词有两个意思·····意思不全输进去的话会出现查无此单词····