第十四周(OOP版电子词典)
*copyright(c) 2015,烟台大学计算机学院
*All rights reserved。
*文件名:第十四周(OOP版电子词典)
*作者:王忠
*完毕日期:2015.6.10
*版本:v1.0
*
*问题描写叙述:做一个简单的电子词典。
在文件dictionary.txt中,保存的是英汉对比的一个词典。词汇量近8000个,英文、中文释义与词性间用’\t’隔开。
(1)编程序。由用户输入英文词,显示词性和中文释义。
提示1:假设要用OOP完毕这个词典(当然也能够用OO方法实现),能够定义一个Word类表示一个词条。当中的数据成员string english; 表示英文单词,string chinese;表示相应中文意思,string word_class;表示该词的词性;还能够定义一个Dictionary类。用来表示词典。当中Word words[8000]成员表示词典中的词条。int wordsNum;表示词典中的词条数。在构造函数中从文件读入词条。而专门添加一个成员函数用于查单词。
提示2:文件里的词汇已经排序,故在查找时。用二分查找法提高效率。
提示3:这种项目,最好用多文件的形式组织
*输入描写叙述:
*程序输出:
- #include <iostream>
- #include <fstream>
- #include <cstdlib>
- #include <string>
- using namespace std;
- class Word
- {
- public:
- void setword(string e,string c,string w);
- string getchinese();
- string getword_class();
- int compare(string );
- private:
- string english;
- string chinese;
- string word_class;
- };
- void Word::setword(string e,string c,string w)
- {
- english=e;
- chinese=c;
- word_class=w;
- }
- string Word::getchinese()
- {
- return chinese;
- }
- string Word::getword_class()
- {
- return word_class;
- }
- int Word::compare(string k)
- {
- return english.compare(k);
- }
- class Dictionary
- {
- public:
- Dictionary();
- int serch(int low,int high,string k);
- void display(string k);
- private:
- Word word[8000];
- int wordNum;
- };
- Dictionary::Dictionary()
- {
- string e,c,w;
- wordNum=0;
- ifstream infile("dictionary.txt",ios::in);
- if(!infile)
- {
- cerr<<"open error";
- exit(1);
- }
- while(!infile.eof())
- {
- infile>>e>>c>>w;
- word[wordNum].setword(e,w,c);
- wordNum++;
- }
- infile.close();
- }
- int Dictionary::serch(int low,int high,string k)
- {
- int mid;
- while(low<=high)
- {
- mid=(low+high)/2;
- if(word[mid].compare(k)==0)
- return mid;
- if(word[mid].compare(k)>0)
- high=mid-1;
- else
- low=mid+1;
- }
- return -1;
- }
- void Dictionary::display(string k)
- {
- int low=0,high=wordNum-1;
- int index=serch(low,high,k);
- if(index>=0)
- cout<<k<<"-->"<<word[index].getword_class()<<"\t"<<word[index].getchinese()<<endl;
- else
- cout<<"查无此词"<<endl;
- }
- int main()
- {
- Dictionary d;
- string key;
- cout<<"输入英文单词"<<endl;
- while(cin>>key&&key!="0000")
- {
- d.display(key);
- }
- cout<<"好用再来"<<endl;
- return 0;
- }
第十四周(OOP版电子词典)的更多相关文章
- C++第15周(春)项目3 - OOP版电子词典(一)
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序中须要的相 ...
- C++第15周(春)项目3 - OOP版电子词典(二)
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序须要的相关 ...
- 第14周 项目三-OOP版电子词典
做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对比的一个词典,词汇量近8000个,英文.中文释义与词性间用'\t'隔开. (1)编程序,由用户输入英文词.显示词性和中文释义. ...
- OOP版电子词典
输入代码: /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名:sum123.cpp * 作 者:林海云 * 完毕日期:20 ...
- wxWidgets+wxSmith版电子词典
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序须要的相关 ...
- 吴裕雄--天生自然python学习笔记:python 用firebase实现英文电子词典
Firebase 版电子词典 学英语是许多 人一辈子的麻烦 . 所以本例中,我们开发一个英汉词典,用户执 行程序后,单击“翻译”按钮即可显示该单词的中文翻译 . 英汉词典标准版 因为这个案例的数据必须 ...
- 201871010105-曹玉中《面向对象程序设计(java)》第十四周学习总结
201871010105-曹玉中<面向对象程序设计(java)>第十四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- Python实现电子词典(图形界面)
Python实现电子词典(图形界面) 终端电子词典:https://www.cnblogs.com/noonjuan/p/11341375.html 文件一览: .├── client.py├── d ...
- Python实现电子词典
代码一览: dictionary/├── code│ ├── client.py│ ├── func.py│ ├── server.py│ └── settings.py├── dat ...
随机推荐
- PHP开发心得三
1, JSON在调用json_decode前要检查其中是否含有反斜杠“\”等特殊字符 比如下面这段代码,返回的就是空值,非常坑爹吧. $res = {"Ret":"1&q ...
- PSP需求分析文档
PSP软件需求分析文档 刘杰 1. 引言 1.1 背景 开发项目经常延期不能按时提交,甚至不能给出明确的延迟时间 1.2 术语 PSP,数据库 2. 任务概述 2.1 目 ...
- redis的安装、启动、主从配置,以及.Net下StackExchange.Redis的使用
开门见山,Linux下配个环境真是苦逼死了,这里记录一下,囧 一.环境 服务端:Ubuntu16.04 LTS(虚拟机,redis官方没有window发布版本,而且在Linux下运行更稳定) 客户端: ...
- CAD使用GetAllAppName读所有名称(网页版)
主要用到函数说明: MxDrawEntity::GetAllAppName 得到所有扩展数据名称,详细说明如下: 参数 说明 [out, retval] IMxDrawResbuf** ppRet 返 ...
- CAD得到0层上的所有实体(com接口VB语言)
主要用到函数说明: IMxDrawSelectionSet::Select 构造选择集.详细说明如下: 参数 说明 [in] MCAD_McSelect Mode 构造选择集方式 [in] VARIA ...
- 梦想CAD控件打印相关
一.打印设置 在顶部快速访问工具栏单击打印按钮或者直接输入PLOT命令或者点击打印控制的打印设置按钮打开打印对话框.c#代码实现如下: //打印设置 private void Print1() { ...
- C++ Primer(第4版)-学习笔记-第5部分:高级主题
第17章 用于大型程序的工具 异常处理 不存在数组或函数类型的异常.相反,如果抛出一个数组,被抛出的对象转换为指向数组首元素的指针,类似地,如果抛出一个函数,函数被转换为指向该函数的指针. 不要抛出 ...
- python lambda简易使用
基本格式 lambda 变量名:函数表达式 ①直接使用 f=lambda x:x**2 f(3) ②设置函数列表 l=[lambda x:x**2, lambda x:x**3, lambda x:x ...
- <SpringMvc>入门六 异常处理
如果不做异常处理,那么一直将错误向上抛出,则会最后在页面上显示错误代码 服务启动后,访问test1方法,页面会报500 为了提示友好的错误页面,所以需要做异常处理 1.编写自定义异常类(做提示信息的) ...
- HTTP服务和APACHE2
HTTP服务和APACHE2 知识点 请求报文响应报文 错误码 请求重定向 编译安装 实现https curl工具 1. http协议 http协议版本 http/0.9, http/1.0, htt ...