Dictionary

本文介绍了一个使用C++实现的简单字典查询程序,该程序通过二分搜索算法从文本文件中读取并查找英文单词及其释义。程序首先从文件中加载单词到内存,然后允许用户输入单词进行查询,并显示查询结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <fstream>  
#include <iostream>  
#include <string>  
using namespace std;  

class Word  //定义类Word
{  
public:  
    void set(string E,string C,string Wor);  //置值
    int compare(string);  
    void display();  //输出
private:  
    string English;  
    string Chinese;  
    string Word_Class;  
};  
void Word::set(string E, string C, string Wor)   
{  
    English=E;  
    Chinese=C;  
    Word_Class=Wor;  
}  
int Word::compare(string k)  
{  
    return English.compare (k);  
}  
void Word::display()   
{  
    cout<<English<<'\t'<<Word_Class<<'\t'<<Chinese<<endl;  
    cout<<endl;  
}  
  
int BinSeareh(int low, int high, Word *w, string k)  
{  
    int mid;  
    while(low<=high)  
    {  
        mid=(low+high)/2;  
        if(w[mid].compare(k)==0)  
        {  
            return mid;  
        }  
        if(w[mid].compare(k)>0)  
        {  
            high=mid-1;  
        }  
        else  
            low=mid+1;  
    }  
    return -1;  
}  
int main()  
{  
    Word words[8000];  
    string E,C,W_C;  
    string key;//查询关键字  
    int wordsNum=0;  
  
    ifstream infile("dictionary.txt",ios::in);  
    if(!infile)  
    {  
        cerr<<"open error!"<<endl;    
        exit(1);    
    }    
    while(!infile.eof())  
    {  
        infile>>E>>C>>W_C;  
        words[wordsNum].set(E,C,W_C);  
        ++wordsNum;  
    }  
  
    do  
    {  
        cout<<"请输入要查询的词:";  
        cin>>key;  
        if(key!="0000")  
        {  
            int low=0,high=wordsNum-1;  
            int index=BinSeareh(low, high, words,key);  
            if(index==-1)  
                cout<<"查无此词!"<<endl;  
            else  
                words[index].display();  
        }  
    }  
    while(key!="0000");  
    cout<<"欢迎下次使用!"<<endl;  
    system("pause");  
    return 0;  
}  

运行结果:

请输入要查询的词:what
what    pron.   什么


请输入要查询的词:is
查无此词!
请输入要查询的词:was
查无此词!
请输入要查询的词:this
this    adj.,pron.      这,这个


请输入要查询的词:that
that    adj.    那,那个


请输入要查询的词:where
where   adv.    哪里


请输入要查询的词:come
come    v.      来到,出现,发生


请输入要查询的词:a
查无此词!
请输入要查询的词:


感言:

相当的好(但别人指点了不少)!!!还要努力啊!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值