1./*
2. * Copyright (c) 2014, 烟台大学计算机学院
3. * All rights reserved.
4. * 文件名称:test.cpp
5. * 作 者:张震刚
6. * 完成日期:2014年 12 月 03 日
7. * 版 本 号:v1.0
8. *
9. * 问题描述无。
10.* 输入描述: 无
11.* 程序输出:无
12.*/
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
using namespace std;
string e[8000],c[8000];
int search(int low,int hight,string k);
int wordnum=0;
int main()
{
string key;
ifstream infile("dictionary.txt",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
while(infile>>e[wordnum]>>c[wordnum])
{
++wordnum;
}
infile.close();
do
{
cout<<"请输入要查的词(0000)结束:";
cin>>key;
if(key=="0000")
break;
else
{
int low=0,hight=wordnum-1;
int index=search(low,hight,key);
if(index==-1)
cout<<"查无此词!"<<endl;
else
cout<<key<<"的中文意思是:"<<c[index]<<endl<<endl;
}
}
while(1);
cout<<"谢谢使用!"<<endl<<endl;
return 0;
}
int search(int low,int hight,string k)
{
int mid;
while(low<hight)
{
mid=(low+hight)/2;
if(e[mid]==k)
{
return mid;
}
if(e[mid]>k)
hight=mid-1;
else
low=mid+1;
}
return -1;
}