您的位置:首页 > 其它

电子词典(第十五周上机任务)

2012-12-07 20:23 197 查看
/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作者:樊露露
* 完成日期:2012 年12月7日
* 版本号:v1.0
*
* 输入描述:无
* 问题描述:电子词典
* 程序输出:电子词典
* 问题分析:
* 算法设计:略
*/
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int BinSearch(int high,int low,string k);
int wordNum=0;
string e[8000],c[8000];
int main(){
string key;
ifstream infile("dictionary.txt",ios::in);
if(!infile){
cout<<"open error!"<<endl;
exit(1);
}
while(!infile.eof()){
infile>>e[wordNum]>>c[wordNum];
++wordNum;
}
infile.close();
do{
cout<<"请输入要查的词(按0000结束):";
cin>>key;
if(key=="0000")
break;
else{
int low=0,high=wordNum-1;
int index=BinSearch(high,low,key);
if(index==-1)
cout<<"查无此词!"<<endl;
else
cout<<key<<"您要查的词是:"<<c[index]<<endl;
}
}
while(1);
cout<<"欢迎再次使用!"<<endl;
return 0;
}
//二分查找
int BinSearch(int high,int low,string k){
int mid;
while(low<=high){
mid=(low+high)/2;
if(e[mid]==k){
return mid;
}
if(e[mid]>k)
high=mid-1;
else
low=mid+1;
}
return -1;
}


 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: