第十六周项目3电子词典
/*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电子词典相关推荐
- 第十六周项目3:max带来的冲突
问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名:project.cpp *作 者:陈文青 *完毕日期:20 ...
- 第十六周项目一-小玩文件(2)
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月14日 *版 本 ...
- 第十六周项目一-小玩文件(1)
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月14日 *版 本 ...
- 第十六周项目3-有相同数字?
输入两个数组中要存放的元素个数及元素值(不超过50个),判断这两个数组中是否有相同的数字. 当两组数中有相同数字时,输出YES,否则,输出NO /* * Copyright (c) 2014,烟台大学 ...
- 十六周项目一----冒泡排序
/*烟台大学计算机与控制工程学院 作者:孙潇 时间:2015年12月19日 问题描述:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行 ...
- 第十六周 项目1 验证算法 堆排序
堆排序 #include <stdio.h> #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType ...
- 第十六周项目6-武功秘籍
问题描述:小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的). 他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上 . 小明只想练习该书的第a页到第 ...
- 第十六周项目1--验证算法--(6)堆排序
问题及代码: /* *烟台大学计算机与控制工程学院 *作 者:刘倩 *完成日期:2016年12月9日 *问题描述:用序列{57,40,38,11,13,34,48,75,6,19,9,7}作为测试数据 ...
- “进度条”博客——第十六周
"进度条"博客 --第十六周 第十六周 所花时间(包括上课) 上课时间:本周一节课,共1.5个小时左右 课下时间: 周四下午3点半到6点半(最终修改BUG) 周五下午4点到6点半( ...
- 第十六届中国研究生电子设计竞赛记录
第十六届中国研究生电子设计竞赛,西安工程大学-寻觅遥远的崽崽队作品展示 背景介绍 受新型冠状病毒肺炎疫情的持续影响,当前国内疫情逐步转向了常态化防控.疫情防控对高校的信息化工作有着更高的要求.因此高校 ...
最新文章
- end-to-end 的神经网络
- Ubuntu 16.04 GNOME在桌面左侧添加启动器(Launcher)
- 测试人员在需求阶段应做哪些工作
- Qt Creator创建一个Qt Quick应用程序
- jquery send(data) 对data的处理
- js中关于Blob对象的介绍与使用
- FusionChart完全入门手册8
- Java中replace、replaceAll和replaceFirst函数的用法小结
- JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
- iOS Mac终端 生成模拟器与真机都能运行的.a静态库
- seaborn.scatterplot学习
- Mac 下svn客户端安装
- uni-app开发小说阅读器
- 为什么群发邮件会退回:怎么做来避免邮件退回并提高群发邮件到达率
- win10驱动开发19——IRP同步
- ARANGODB INSTALL
- 解读-m addrtype --dst-type LOCAL -j DOCKER
- 教室机房平面图_计算机教室建设方案详细
- live555库安装_基于live555的rtsp播放器:开发环境配置
- 记录下server的配置
热门文章
- 计算机蓝屏重启,电脑蓝屏重启,详细教您电脑经常自动蓝屏重启怎么办
- Win10 全屏截图快捷键
- 李学龙当选美国计算机杰出科学家的报道,我校李学龙教授当选美国医学与生物工程院会士...
- Allegro 铜皮分割 详解
- intel D435i 双目相机 拍摄图片并保存 python调用示例
- Ubuntu桌面美化教程
- 如果物联网平台一直不盈利,行业集体该怎么活?
- fastadmin表格操作
- 非聚集索引中的临界点(Tipping Point)
- centos7安裝搜狗輸入法_centos7安装搜狗输入法