/*
*Copyright (c) 2014, 烟台大学计算机学院
*All rights reserved.
*文件名称:week14-project4.cpp
*作者:高赞
*完成日期:2014年 11 月 29 日
*版本号:v1.0
*
*问题描述:简单的电子词典,输入单词输出释义
*/
#include <fstream>
#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
int main( )
{
int i=0,sum=0;
string a,b,word,words[10000],explan[10000];
ifstream infile("dictionary.txt",ios::in);
if(!infile)
{
cerr<<"未找到该文件!"<<endl;
exit(1);
}
while (infile >> a >> b)
{
words[i]=a;
explan[i]=b;
++i;
++sum;
}
infile.close();
do
{
int middle, low=0,high=sum;
cout << "输入要查询的单词:" << endl;
cin >> word;
getchar();
middle=(low+high)/2;
while(word!=words[middle])
{
if(word>words[middle])
{
low=middle+1;
middle=(low+high)/2;
}
else
{
high=middle-1;
middle=(low+high)/2;
}
if (low>high)
{
cout << "对不起,查无此词。" << endl;
break;
}
}
if(low<=high)
cout << explan[middle] << endl;
cout << endl
<< "回车键继续或其他任意键退出..." << endl
<< endl;
}
while (getchar()=='\n');
return 0;
}
运算结果: