C++十五周任务-电子词典

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: fun.cpp
* 作 者:王锴英
* 完成日期:2012 年12 月 11日
* 版本号: v1.0
* 对任务及求解方法的描述部分:电子词典的二分查找!
* 输入描述:略
* 问题描述:略
* 程序输出:如下
*/

#include <fstream>
#include<iostream>
#include<string>
using namespace std;
string a[8100],b[8100];
int shiji=0;
int Seareh(int low, int high, string k);
int main()
{
    string key="Hollow";
    int m;
    ifstream infile("dictionary.txt",ios::in);
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    for(int i=0;i<8100;i++)
    {
        infile>>a[i]>>b[i];
		++shiji;
    }infile.close();
	while(key!="0000"){
		cout<<"按键0000结束,请输入您要查的英文:";
        cin>>key;
        if (key=="0000")
            break;
        else
        {
            int low=0,high=shiji-1;
            int index=Seareh(low, high, key);
            if (index == -1) {
                cout<<"本词库未收录或者请您检查您的拼写!"<<endl;
			}
            else  {
                cout<<key<<'\t'<<b[index]<<endl;
			}
        }
    }
	cout<<endl<<endl;
	return 0;

}

int Seareh(int low, int high, string k)
{
    int mid;
    while(low<=high)
    {
        mid=(low + high) / 2;
        if(a[mid]==k)
        {
            return mid;
        }
        if(a[mid]>k)
            high=mid-1;
        else
            low=mid+1;
    }
    return -1;
}

运行结果:

C++十五周任务-电子词典_第1张图片

没文件呀,查不到词呀???

你可能感兴趣的:(C++十五周任务-电子词典)