英译汉字典

来源:互联网 发布:sql查看数据库名称 编辑:程序博客网 时间:2024/04/29 06:45

上机目的:学会把文件和程序联系起来

上机内容:输入英语翻译出汉语

/*    .* Copyright (c) 2011, 烟台大学计算机学院    .* All rights reserved.    .* 文件名称:test.cpp    .* 作 者:刘玉金   .* 完成日期:2012 年 12月 17日  .* 版 本 号:v1.0  .* 输入描述:无    .* 问题描述:输入英语单词查汉语 .* 程序输出:英语单词的汉语意思 .* 问题分析:略    .* 算法设计:略    */        #include <fstream>#include<iostream>#include<string>using namespace std;string e[8000],c[8000]; //英文和中文数组,要由文件中读入int wordsNum=0; //词库中实际的词汇条数int BinSeareh(int low, int high, string k);int main( ){    string key;      //查询关键词    //将文件中的数据读入到对象数组中    ifstream infile("dictionary.txt",ios::in);  //以输入的方式打开文件    if(!infile)       //测试是否成功打开    {        cerr<<"open error!"<<endl;        exit(1);    }    while (!infile.eof())    {        infile>>e[wordsNum]>>c[wordsNum];        ++wordsNum;    }    infile.close();    //输入待查关键词并用二分查找法进行查询    do    {        cout<<"请输入要查的词(0000结束):";        cin>>key;        if (key=="0000")            break;        else        {            int low=0,high=wordsNum-1;  //置当前查找区间上、下界的初值            int index=BinSeareh(low, high, key);            if (index == -1)                cout<<"查无此词!"<<endl<<endl;            else               cout<<key<<"的中文意思是:"<<c[index]<<endl<<endl;        }    }    while(1);    cout<<"欢迎再次使用!"<<endl<<endl;    return 0;}//二分查找,结果为所查词在数组中的下标int BinSeareh(int low, int high, string k){    int mid;    while(low<=high)    {        mid=(low + high) / 2;        if(e[mid]==k)        {            return mid; //查找成功返回        }        if(e[mid]>k)            high=mid-1; //继续在e[low..mid-1]中查找        else            low=mid+1; //继续在e[mid+1..high]中查找    }    return -1; //当low>high时表示查找区间为空,查找失败}


 

运行结果:

心得体会:略

原创粉丝点击