/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2013年 12月4 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 一个英语单词
*问题描述:输入一个单词,输出对应的中文意思
*程序输出:中文意思
*问题分析:
*算法设计:
*/
#include<iostream>
#include<string>
#include<cstdio>
#include<fstream>
#include<cstdlib>
using namespace std;
int main()
{
int i=0;
string english[30000],word;
int high,low,mid;
ifstream infile("D:\\english.dat",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
while((infile>>english[i])!='\0')
{
i++;
while(cin>>word)
{
if(word=="0000")
{
break;
}
else
{
high=30000;
low=0;
mid=(high+low)/2;
while(low<high&&english[mid]!=word)
{
if(english[mid]<word)
{
low=mid+1;
}
if(english[mid]>word)
{
high=mid-1;
}
mid=(high+low)/2;
}
if(english[mid]!=word)
{
cout<<"查无此词!"<<endl;
}
else
{
cout<<word<<"的意思是:"<<english[mid]<<endl;
}
}
}
}
return 0;
}
运行结果:
心得体会:告诉我错那了,咱改!