/*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称 :
*作    者 : 李钊
*完成日期 : 2016年6月14号
*版 本 号 : v1.0
*
*问题描述 : 电子词典
*输入描述 : 要查询的单词
*程序输出 : 单词的中文意思
*/
#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;exit(1);}while (!infile.eof()){infile>>e>>c>>wc;words[wordsNum].set(e, c, wc);++wordsNum;}infile.close();
}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;elselow=mid+1;}return -1;
}
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()+"\t"<<words[index].getChinese();elsecout<<"查无此词";cout<<endl<<endl;
}int main( )
{Dictionary dict;string key;do{cout<<"请输入要翻译的英文单词:(esc退出)"<<endl;cin>>key;if (key!="esc"){dict.searchWord(key);}}while(key!="esc");cout<<"退出程序"<<endl<<endl;return 0;
}

运行结果:

第十六周项目3电子词典相关推荐

  1. 第十六周项目3:max带来的冲突

    问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名:project.cpp *作 者:陈文青 *完毕日期:20 ...

  2. 第十六周项目一-小玩文件(2)

    /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月14日 *版 本 ...

  3. 第十六周项目一-小玩文件(1)

    /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月14日 *版 本 ...

  4. 第十六周项目3-有相同数字?

    输入两个数组中要存放的元素个数及元素值(不超过50个),判断这两个数组中是否有相同的数字. 当两组数中有相同数字时,输出YES,否则,输出NO /* * Copyright (c) 2014,烟台大学 ...

  5. 十六周项目一----冒泡排序

    /*烟台大学计算机与控制工程学院 作者:孙潇 时间:2015年12月19日 问题描述:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行 ...

  6. 第十六周 项目1 验证算法 堆排序

    堆排序 #include <stdio.h> #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType ...

  7. 第十六周项目6-武功秘籍

    问题描述:小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的). 他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上 . 小明只想练习该书的第a页到第 ...

  8. 第十六周项目1--验证算法--(6)堆排序

    问题及代码: /* *烟台大学计算机与控制工程学院 *作 者:刘倩 *完成日期:2016年12月9日 *问题描述:用序列{57,40,38,11,13,34,48,75,6,19,9,7}作为测试数据 ...

  9. “进度条”博客——第十六周

    "进度条"博客 --第十六周 第十六周 所花时间(包括上课) 上课时间:本周一节课,共1.5个小时左右 课下时间: 周四下午3点半到6点半(最终修改BUG) 周五下午4点到6点半( ...

  10. 第十六届中国研究生电子设计竞赛记录

    第十六届中国研究生电子设计竞赛,西安工程大学-寻觅遥远的崽崽队作品展示 背景介绍 受新型冠状病毒肺炎疫情的持续影响,当前国内疫情逐步转向了常态化防控.疫情防控对高校的信息化工作有着更高的要求.因此高校 ...

最新文章

  1. end-to-end 的神经网络
  2. Ubuntu 16.04 GNOME在桌面左侧添加启动器(Launcher)
  3. 测试人员在需求阶段应做哪些工作
  4. Qt Creator创建一个Qt Quick应用程序
  5. jquery send(data) 对data的处理
  6. js中关于Blob对象的介绍与使用
  7. FusionChart完全入门手册8
  8. Java中replace、replaceAll和replaceFirst函数的用法小结
  9. JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
  10. iOS Mac终端 生成模拟器与真机都能运行的.a静态库
  11. seaborn.scatterplot学习
  12. Mac 下svn客户端安装
  13. uni-app开发小说阅读器
  14. 为什么群发邮件会退回:怎么做来避免邮件退回并提高群发邮件到达率
  15. win10驱动开发19——IRP同步
  16. ARANGODB INSTALL
  17. 解读-m addrtype --dst-type LOCAL -j DOCKER
  18. 教室机房平面图_计算机教室建设方案详细
  19. live555库安装_基于live555的rtsp播放器:开发环境配置
  20. 记录下server的配置

热门文章

  1. 计算机蓝屏重启,电脑蓝屏重启,详细教您电脑经常自动蓝屏重启怎么办
  2. Win10 全屏截图快捷键
  3. 李学龙当选美国计算机杰出科学家的报道,我校李学龙教授当选美国医学与生物工程院会士...
  4. Allegro 铜皮分割 详解
  5. intel D435i 双目相机 拍摄图片并保存 python调用示例
  6. Ubuntu桌面美化教程
  7. 如果物联网平台一直不盈利,行业集体该怎么活?
  8. fastadmin表格操作
  9. 非聚集索引中的临界点(Tipping Point)
  10. centos7安裝搜狗輸入法_centos7安装搜狗输入法