/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称:
* 作 者:赵加响
* 完成日期: 2013 年 12 月 6 日
* 版本号: v1.0
* 输入描述:无
* 问题描述:中英词典
* 程序输出:
* 程序输出:
* 问题分析:
*/
#include <iostream>
#include <fstream> //操作文件必写
#include <cstdlib> //调用exit(1)需要包含cstdlib
#include <string>
#include<cstdio>
using namespace std;
string English[10000];
int main()
{
int i=0,max,min,mid;
string English[10000],word,Chinese[10000];
cout<<"请输入要查的词(0000结束):"<<endl;
//一输入的方式(ios::in)打开文件,注意Input.txt必须在文件夹中存在
ifstream infile("Input.txt",ios::in);
if(!infile)//测试是否成功打开,打开失败时(如要读的数据文件不存在) 退出
{
cerr<<"open error!"<<endl;
exit(1);//若程序运行异常,调用exit(1)强制退出程序,强制终止进程,其中1表示不正常,0表示正常
}
while(!infile.eof())//判断是否达到文件尾部,以防止文件出现读取性错误。
{
infile>>English[i]>>Chinese[i];
i++;
}
infile.close(); //读入完毕要关闭文件
while(cin>>word)
{
if(word=="0000")
{
break;
}
else
{
max=i;
min=0;
mid=(max+min)/2;
while(min<max&&English[mid]!=word)
{
if(English[mid]<word)
{
min=mid+1;
}
if(English[mid]>word)
{
max=mid-1;
}
mid=(max+min)/2;
}
if(English[mid]!=word)
{
cout<<"查无此词!"<<endl;
}
else
{
cout<<word<<"意思是"<<Chinese[mid]<<endl;
}
}
}
return 0;
}
心得: 程序中的框架已经通过各种手段了解,然后我会记住,计算程序为模仿别人写的,有点不清楚!