十五周——电子词典

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>

using namespace std;

string s1[8000],s2[8000];

int erfen(string k,string s1[],int n)
{
    int low=0,hign=n-1,mid,i=-1;

    while(low<=hign)
    {
        mid=(low+hign)/2;
        if(k==s1[mid])
        {
            i=mid;
            break;
        }
        else if(k>s1[mid])
        {
            low=mid+1;
        }
        else
        {
            hign=mid-1;
        }
    }
    return i;
}

int main()
{
    int num=0,index;
    string key;
    ifstream infile("file.txt",ios::in);
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    while(infile>>s1[num]>>s2[num]) //两列,这样输出就会把文件内的英文和汉字输入进两个数组
    {
        num++;
    }
    while(1)
    {
        cout<<"请输入要查的词(0000结束):";
        cin>>key;
        if(key=="0000")//key是字符串型,所以0000需要加引号
        {
            break;
        }
        else
        {
            index=erfen(key,s1,8000);
        }

        if(index==-1)
        {
            cout<<"查无此词"<<endl;
        }
        else
        {
            cout<<key<<"的中文意思是:"<<s2[index]<<endl;
        }
        cout<<endl;
    }
    return 0;
}



十五周——电子词典_第1张图片

 

刚开始时,一点思路也没有,后来看了去年老师发的答案,明白了,开始一点一点的写,出现了很多错误,最后终于改对了,还是要加油啊,还有很多东西等待去挖掘

 

 

你可能感兴趣的:(十五周——电子词典)