第十六周实验报告3

实验目的:

  在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文、中文释义与词性间用’\t’隔开。建一个表示词条的类Words,Words类的一个对象可以描述一个词,类对象数组可以存储词库。将文件中的内容读到对象数组中,由用户输入英文词,显示中文释义。

  提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。

  拓展1:允许用户运行程序后,连续地查词典,直到输入”0000”结束。

     /*拓展2:试着做一个窗口版的电子词典。

  拓展3:使这个词典,读入一篇文章,输出其中的所有名词(或动词,或全部实词)。——搜索引擎用类似的功能,并不是所有词都值得索引*/

 

实验代码:

#include <fstream>
#include <string>
#include <iostream>
using namespace std;


class Word
{
public:
	string chinese;
	string english;
};

int main()
{
	Word word[8000];
	string x;
	ifstream infile("dictionary.txt",ios::in);
	if(!infile)
	{
		cerr << "open error!" << endl;
		exit(1);
	}                                              //文件是否打开;
	for(int i = 0; i < 8000; i++)                              
	{
		infile >> word[i].english >> word[i].chinese;
	}
	infile.close();
	

    int i;
    do
	{
		bool flag = false;
		cout << "请输入您要查询的英语单词(直到输入0000结束):" << "  ";
	    cin >> x;
	    for(i = 0; i < 8000; i++)
		{
		    while(x == "0000")
			{
				flag = true;
				exit(1);
			}

			if(x == word[i].english)
			{
				cout << word[i].chinese << endl;
				flag = true;
			    break;
			}
		    
		}
	    if(flag == false) cout<<"can't find this worrd"<<endl;
	}while(word[i].english != "0000");
	system("pause");

    return 0;
}


实验结果:

请输入您要查询的英语单词(直到输入0000结束):  word
n.字,词,诺言,音讯
请输入您要查询的英语单词(直到输入0000结束):  bank
n.岸,银行
请输入您要查询的英语单词(直到输入0000结束):  abandon
v.抛弃,放弃
请输入您要查询的英语单词(直到输入0000结束):  0000


实验心得:

个人觉得,这个程序对于我来说倒不算太难,因为在上个学期,老师给的任务中,有类似的题目,当时真的是煞费苦心啊,当然,当时因为没有学类,所以,用的是两个数组,chinese和english数组来用于存储从文件中输入的数据,这个题目中只是将这两个数组改为类中的数据成员就好了,所以,以前头疼过了,现在就好过多了,还有因为在输入0000时,会直接跳出程序,所以截图,只能截到这样,嗯,说到技术性的东西,do······while好久不用了,是个回顾的好机会,也就是用来处理直到输入0000结束程序是用到的,其他的,都还好吧~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值