zoukankan      html  css  js  c++  java
  • OOP版电子词典

      输入代码:

    /*   
    * Copyright (c) 2014, 烟台大学计算机学院   
    * All rights reserved.   
    * 文件名:sum123.cpp   
    * 作    者:林海云  
    * 完毕日期:2015年8月19日   
    * 版 本 号:v2.0   
    *   
    * 问题描写叙述:做一个简单的电子词典。

    在文件dictionary.txt中。保存的是英汉对比的一个词典,词汇量近8000个,英文、中文释义与词性间用’ ’隔开。 * 输入描写叙述:文本输入; * 程序输出:输出翻译的单词中文意思。词性。中文: */ #include<fstream> #include<iostream> #include<string> #include<cstdlib> using namespace std; //定义词条类 class Word { public: void set(string e,string c,string wc); int compare(string ); string getChinese(); string getWord_class(); private: string english; string chinese; string word_class; }; void Word::set(string e,string c,string wc) { english=e; chinese=c; word_class=wc; } int Word::compare(string k ) { return english.compare(k); } string Word::getChinese() { return chinese; } string Word::getWord_class() { return word_class; } //定义字典类 class Dictionary { public: Dictionary(); void searchWord(string k); private: int BinSeareh(int low, int high, string k); int wordsNum; Word words[8000]; }; Dictionary::Dictionary() { string e,c,wc; wordsNum=0; ifstream infile("dictionary.txt",ios::in); if(!infile) { cerr<<"dictionary open error!"<<endl; abort(); } while(!infile.eof()) { infile>>e>>c>>wc; words[wordsNum].set(e, c, wc); ++wordsNum; } infile.close(); } void Dictionary::searchWord(string key) { int low=0,high=wordsNum-1; int index=BinSeareh(low, high, key); if(index>=0) cout<<key<<"<---"<<words[index].getWord_class()+" "<<words[index].getChinese(); else cout<<"查无此词!"<<endl; cout<<endl; } int Dictionary::BinSeareh(int low, int high, string key) { int mid; while(low<=high) { mid=(low+high)/2; if(words[mid].compare(key)==0) { return mid; } if(words[mid].compare(key)>0) high=mid-1; else low=mid+1; } return -1; } int main() { Dictionary dic; string key; do { cout<<"请输入待查询的关键词(英文),0000结束:"<<endl; cin>>key; if(key!="0000") { dic.searchWord(key); } } while(key!="0000"); return 0; }


    执行结果:


    dictionary.txt


  • 相关阅读:
    微软外服 AlI In One
    js 循环多次和循环一次的时间的性能对比 All In One
    vue inject All In One
    Excel 表格数据倒置 All In One
    SVG tickets All In One
    OH MY ZSH All In One
    js array for loop performance compare All In One
    mac terminal show You have new mail All In one
    新闻视频 26 制作母版页
    转自牛腩 母版页和相对路径
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7221238.html
Copyright © 2011-2022 走看看