天天看點

第17周 項目7 結構體電子詞典

問題及代碼:

/*。
*Copyright(c)2014,煙台大學計算機學院
*All right reserved,
*檔案名:test.cpp
*作者:liu_feng_zi_
*完成日期:2014年12月25日
*版本号:v1.0
*
問題描述:結構體的電子詞典
*輸入描述:
*程式輸出:
*/
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
using namespace std;
struct Word
{
    string english;
    string chinese;
    string word_class;
};
int main()
{
    int i;
    string n;
    Word words[10000];
    ifstream infile("dictionary.txt",ios::in);
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    i=0;
    while(infile>>words[i].english>>words[i].chinese>>words[i].word_class)
    {
        ++i;
    }
    infile.close();
    while(cin>>n)
    {
        int L=0,H=i,M,m=0;
        while(L<=H)
        {
            M=(L+H)/2;
            if(words[M].english==n)
            {
                cout<<words[M].word_class<<" "<<words[M].chinese<<endl;
                m=1;
                break;
            }
            else if(words[M].english>n)
                H=M-1;
            else
                L=M+1;
        }
        if(m==0)
            cout<<"查無此詞!"<<endl;
    }
    return 0;
}
           

運作結果:

第17周 項目7 結構體電子詞典