C语言程序设计课程设计报告电子英汉词典设计.doc
《C语言程序设计课程设计报告电子英汉词典设计.doc》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计报告电子英汉词典设计.doc(28页珍藏版)》请在沃文网上搜索。
1、课 程 设 计 报 告一、设计内容与设计要求1.课程设计目的全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构和数据库等课程)的实验以及课程设计打下较扎实的基础。2.课题题目班级成绩管理系统班级档案管理系统飞机订票系统猜数字游戏电子英汉词典设计通讯录管理系统3.设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的
2、案例处理经验。具体要求如下: 设计课题题目:每位同学根据自己学号除以6所得的余数加一选择相应题号的课题。原则上不予换提,私自换题者不记成绩。 根据自己对应的课题完成以下主要工作:完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包
3、括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。关键源程序(带注释) 按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。二、进度安排第 17 周 星期一 8时:00分11时:30分 星期二 8时:00分11时:30分 星期四 8时:00分11时:30分 星期五 8时:00分11时:30分第 18 周 星期一 8时:00分11时:30分 第18周 星期二 14时:30分18时:00分目 录1.系统需求分析11.1问题描述11.2功能要求12.概要设计
4、22.1系统的总体设计22.2各模块的功能32.3相关数据结构设计33.详细设计43.1采用C语言定义相关的数据类型43.2各功能模块的流程图54.系统调试105.运行结果115.1查询单词界面115.2新增词条界面135.3编辑词条界面155.4删除词条界面175.5退出字典176.心得体会187.附录187.1参考书目187.2源程序清单198.评分表251.系统需求分析1.1问题描述英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。1.2功能要求(1) 在计算机中建立有限规模的电子英汉词典(文件),
5、利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。(2) 词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。(3) 对单词和释义字符串长度的限定分别为不少于20个与40个字符,词条数限定为不多于200条。(4) 采用菜单工作方式。在一个操作执行之后,程序询问是否继续执行该操作。如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。(5)
6、要求整个设计以人为本,用户界面友好。2.概要设计2.1系统的总体设计程序共有六个子函数和一个主函数:(1)query(void)是查找函数。 (2) append(void)是新增函数。 (3) edit(void)是编辑函。(4)erase()是删除函数。 (5)add()是一个初始化函数。 (6)lookup()是用来实现单词查询的一个子函数。(7)主程序通过无限循环来接收输入的命令,并且根据命令调用相应的函数处理。主函数查询函数query(void)新增函数append(void) 编辑函数edit(void) 删除函数erase()初始化 add()查找功能函数lookup() 图2.
7、1 总体设计图2.2各模块的功能(1) query是查找函数,用户通过系统提示输入要查找的单词,只要单词库中含有此单词便能找到相应的中文解释。(2) append是新增函数,用户可通过此函数来增加单词库单词的数量。(3) edit是编辑函数,程序提示用户输入要修改的单词,如果找到,则提示输入新单词及中文解释。(4) erase是删除函数,程序提示用户输入要删除的单词,在得到确认后,删除这个单词的纪录。(5) add是一个初始化函数,让建立的词库里有一部分单词。(6) lookup是用来实现单词查询的一个子函数。2.3相关数据结构设计(1) 宏定义的一些相关数据#define szWORD 32
8、#define szSTRN 224#define szITEM sizeof(struct TItem)char fileDictszSTRN;(2) 开头定义一个结构体数组用于单词和释义的存放 单词 释义char char3.详细设计3.1采用C语言定义相关的数据类型 定义结构体数组:typedef struct TItem char wordszWORD; char meanszSTRN; Item; 宏定义的数据:#define szWORD 32#define szSTRN 224#define szITEM sizeof(struct TItem)char fileDictszST
9、RN; 定义的文件: File*f;3.2各功能模块的流程图开始(1) 查询函数query(void)流程图 否输入要查询的单词调用lookup()函数是否能打开文件返回到查询函数用while函数进行单词查询关闭文件,回到查询函数是否找到单词输出没有该单词记录输出该单词和释义是否是 图3.1 查询函数query(void)流程图(2)新增函数append(void)流程图开始输入要新增的单词判断词库里是否有该单词输出字典内已有该单词记录输出请输入释义,按回车结束:把获得的字符串给i.mean打开这个文件以追加的方式写入函数,把i所指向的1*szITEM个字节输入到f所指的文件中关闭文件词条已新
10、增是否 图3.2新增函数append(void)流程图(3) 编辑函数edit(void)流程图开始输入要编辑的单词判断词典里是否有该单词输出 字典内没有该单词记录!请输入释义,按回车结束(输入abort放弃修改):获得字符串,放在i.mean中判断是否为abort已放弃修改以读写的方式打开fileDict将&i所指向的一个szITEM字节的数据项放进f词条已保存关闭文件否是否是 图3.3 编辑函数edit (void)流程图(4) 删除函数erase()流程图 开始输入要删除的单词调用lookup()函数在文件中查找单词是否能查找到该单词输出字典内没有该单词记录!如果有,则打开文件,重新读写
11、关闭文件词条已删除否是 图3.4删除函数erase()流程图(5) 词库初始化函数add( )流程图开始将定义的结构体赋初值指定一个文件以追加的方式打开文件把i所指向的1*szITEM个字节输入到f所指的文件中关闭文件输出词条以初始化 图3.5初始化函数add( )流程图4.系统调试在程序运行时开始查不到单词,后来查找原因,是由于此库里没有单词,这样的电子词典给了用户也用不了,所以我就加了一个add子函数进行初始化,使词库里有一部分单词。这样的电子词典就比较实用。在函数的几个功能中,删除函数在运行时不能删除单词,但经过分析,删除函数中没有错误,而是其中调用的lookup( )中的一条语句没有起
12、到它应起的作用,后来我在if(strcmp(i.word , word) 后面加上p=p+szITEM;continue; 就实现了单词删除的功能。 因为我加了一个初始化的功能,让所定义的文件中有部分单词,而这个功能就是要给结构体初始化,而我开始定义的结构体后就在后面直接初始化,运行的时候并没有达到我预期的效果,还是显示词库里没有单词。于是我在结构体上下工夫,我开始的赋值出现了问题,导致我定义的结构体是个非法结构体。所以我重新定义结构体,按照规范的要求重新赋值,就达到了我想要的效果了。由于主函数是运用的无限循环体,所以在运行时,友好界面会一直出现,不仅不美观,看起来结不简洁,所以我在后面加了一
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课程设计 报告 电子 英汉词典 设计