简易英汉词典 下载本文

仲恺农业工程学院

课程设计

简易英汉词典

课 程 面向对象课程设计 姓 名 陈瑞鑫

院 (系) 计算机科学与工程学院 专业年级 计算机科学与技术071班 学 号 200710214111 指导教师 陈勇、贺超波

日 期 2009年8月31日-2009年9月13日

仲恺农业工程学院教务处制

目 录

1、需求与功能分析 1 2、系统总体框架 2 3、模块设计与分析 3 4、类的设计与分析 10 5、特色算法分析 15 6、功能测试 18 7、存在的不足与对策 21 8、程序源代码 24 9、使用说明 26 10、参考文献 32

- 1 -

1、 需求与功能分析

设计的任务要求:

(1) 使用所学过的C++面向对象语言设计、数据结构和算法设计的课程完成简易英汉词典的课程设计。

(2) 通过本次的课程设计进一步提升自己的编程水平和计算机算法设计能力,主要通过熟悉并学会使用VC++ 6.0的和对词典文本文件的操作(查询和插入操作使用适当的查询算法和插入算法来实现)来完成本项目。

(3) 用C++编写程序使得进一步理解面向对象的深层含义以及通过学习MFC进一步完善窗口界面,在不断完善程序的过程使得在处理类与类之间的联系能更加巧妙,更简单明了。

(4) 对于单词查询也就是数据查询方面,采用了顺序查询算法,找到单词则返回在文件包含的数组中的相应位置。其中将“diction.txt”作为存放数据的文件,详见源程序根目录。

(5) 在设计时,充分考虑输入的容错性和用户界面的友好。当输入的单词有误或者查询不到是给予相应的提示并考虑用户是否进行插入操作,对于程序窗口则采用MFC来完成,MFC是面向对象程序设计与Application framework的完美结合,他将传统的API进行了分类封装,并且创建了程序的一般框架。 程序功能设计:

(6) 简易英汉词典应该是一个可以提供查询英文单词和词汇的程序,具有一个提供单词或词组输入的界面,内置单词量应该涵盖大学非英语专业的等级。

(7) 该程序应该有一个基本界面输出,通过设计使其变得更加友好,并且在用户输入字母时能够智能检测并列出包含该字母的单词(可分为两种情况,一种是按照首字母的一定格式检测,另一种是不论其位置进行检测,这种在一般词典中不使用,因为整单词表的内容较多,按照第二种方法检测时会列出较多的词汇,比较不实际。)

(8) 词典的内容放在一个用记事本写的数据表“diction.txt”中。在查询状态下,表中有2 个字段行( 单词和解释) , 将“单词”字段窗口定义为可输入控件,被显示的单词解释定义为不可修改;在插入状态下则将后者显示为可编辑状态。因为设计的是英汉词典, 所以, 用户在使用或者运行的过程中应该按照英语单词查询。 实现对英语单词词库的基本管理,包括:

录入:从键盘上增加词条信息,包括英文单词、中文意思(设计时,需考虑如何防止重复输入)。

编辑:修改或删除某个词条的信息,在操作前,需先进行查找定位。 查找:精确查找(按单词查)和模糊查找(按前几个字母查)。 显示:将单词按某种格式显示出来。 排序:将单词按字母顺序排序。

测试:随机给用户一个英文单词,根据用户输入的汉语意思给出正误信息。

- 1 -

读文件:把文件中的信息读到相关的数据结构中。 写文件:将单词信息保存到文件中。

2、 系统总体框架

本程序所实现的功能是实现一个简易英汉词典,可以实现英语单词和简易汉语意思的翻译。可以实现英语单词的查询并翻译、插入(在没查询结果的条件下)、通过清除按钮重复查询或修改输入。

本程序的功能结构如图2-1所示。

英汉词典程序

单词输入 翻插译窗口 入操作 清除操作 显示操作 MFC界面

图2-1 系统总体设计框架

程序中使用的单词构成如图2-2所示。

- 2 -

词形

词义

M 1 M 2 M 3 ? M m

F 1 E(1,1)

F 2 E(1,2) E(2,2)

F 3

E(3,3)

?

F n E(1,n) E(m,n)

E(3,1)

图2-2 单词构成示意图