小练习---电子词典

实验内容:从文件中读入dictoinary.txt文件,输入一个英文,输入英文及其翻译。

* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:      电子词典                    
* 作    者:           刘镇                  
* 完成日期:       2011  年     12  月   04    日
* 版本号:         1.016

* 对任务及求解方法的描述部分
* 输入描述:文件dictionary

* 问题描述:从文件dictionary.txt中读入8000词汇,输入一个英文,输入英文及其翻译结果,在屏幕上输出。
* 程序头部的注释结束
//下面是程序

#include<fstream>

#include<iostream>

#include<iomanip>

#include<string>

using namespace std;

void search( string find_word);
string e[8000];
string c[8000] ;
string find_word;

int main()
{
	int i ;
	ifstream infile( "dictionary.txt", ios::in );
	
	if(!infile)
	{
		cerr << "open error" << endl;
		
		exit(1);
	}
	
	for(i = 0; i < 8000; i++)
	{
		infile >> e[i] >> c[i];
	}
	infile.close();
	
	cout << "请输入您要查找的英文单词" << endl;
	cin >> find_word ;
	
	search(find_word);
	return 0 ;
}

void search( string find_word)
{
	int i;
	bool flag = false;
	
	for(i = 0; i < 8000; i++ )
	{ if(e[i] == find_word)
	{
		cout << e[i] << '\t';
		cout << c[i] << endl;
		
		flag = true;
		break;
	}
	}
	
	if(flag == false)
	{
		cout << "未找到该单词!" << endl;
	}
}





运行结果:

小练习---电子词典_第1张图片小练习---电子词典_第2张图片

经验积累:

1、电子词典的运行体系是,输入一个字符串,用此字符串与已经定义的字符串相比对,相同则输出即可。

2、对于字符串,是对于一串字母(包括各种语言)的总体代换,并组成数组形式,从而形成一个数据库,因此你每输入一个英文单词,就会与一个字符串比对,但用二分法相对更有效率,但我还是不能活学活用,还要继续练习。

3、再一个关键是对于输入的文件内容的处理,怎样才能将英文和中文分开,其实只要看作是两个不同的字符串即可,英文是字符串1,那么中文就相当于字符串2,而实际上你可以定义两个数组e[],c[],分别通过if,else对其进行赋值。能进行这样的基础是必须会用输入输出文件,和字符串的函数运用。

上机感言:

想说的确实不少,但我的不足是还不会用二分法,不过对于BOOL型有了第一次运用,还是可喜的。在此次测试中犯了 1、对于输出结果的数据类型的错误。2、对于字符型数组的理解不对。优点是:在做之前有了将大问题划分成几个小问题的觉悟。


你可能感兴趣的:(数据库,String,search,语言,任务,Dictionary)