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

/* 
* 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;
}


 

 

电子词典(第十五周上机任务)_第1张图片

你可能感兴趣的:(电子词典(第十五周上机任务))