电子英汉词典设计系统.doc

上传人:精*** 文档编号:841467 上传时间:2023-09-08 格式:DOC 页数:18 大小:94.96KB
下载 相关 举报
电子英汉词典设计系统.doc_第1页
第1页 / 共18页
电子英汉词典设计系统.doc_第2页
第2页 / 共18页
电子英汉词典设计系统.doc_第3页
第3页 / 共18页
电子英汉词典设计系统.doc_第4页
第4页 / 共18页
电子英汉词典设计系统.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、 课程要求一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、基本情况课程类别:必修课课程学分:1学分课程学时:1周课程对象:电气工程0781、0782、0783、0784、0785、0786三、时间安排

2、时间 任务2008-3-8下午3:40-5:40指导老师给学生布置课程设计的任务及要求2008-3-10到2008-3-15学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序代码 学生提交系统程序清单初稿上机调试程序修改并完善程序并上机调试程序 2008-3-16接受指导老师的验收2008-3-16到2008-3-22书写程序设计报告提交课程设计报告四、调试过程规范化要求1)需要分析分析系统功能需求以及用户操作流程。2)概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。3)详细设计定义数据储存结构,并设计实现系统功能的具体算法,画出各算法的工作流

3、程图。4)代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量。重点功能部分均要求给出清晰的程序注释。5)程序调试程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常进行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑增加若干基

4、本的容错功能;另外尽量对现有的算法给出改进方案,并比较不同算法之间的优缺点。五、设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下五个部分:1)需求分析:包括设计题目、设计要求以及系统功能需求分析;概要设计:包括系统总体设计框架和系统功能模块图;2)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;3)主要源程序代码:包括存储结构设计说明,以及完整源程序清单;4)调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错

5、现象、出错原因、解决方法及效果等);5)总结:包括课程设计过程中的学习体会和收获、对c语言和本次课程设计的认识以及自己的建议等内容。书写格式严格按所附要求书写。附1:l 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 l 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。l 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程

6、序原代码)。目 录一.封面-1二.前言-2三.课程要求-3四.需要分析-7五.详细设计-8六. 流程图-10七. 调试分析-12八. 心得体会-13九. 附录(源程序清单)-14【需要分析】课题三:电子英汉词典设计一、问题描述:英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。二、功能描述:1)本词典采用一个包含N个数据的结构体数组,每个数据的结构应当包括:英文单词、词性、拼读音标、中文(汉语拼音)。2)对单词和释义字符串长度的限定分别为不少于50个词条。3)本系统显示这样的菜单:-电子英汉词典-1、输入

7、新词汇2、删除词汇3、查找词汇 4、修改词汇信息5、退出系统请选择系统功能项(15):三、算法提示:1、数据结构:结构体数组2、数据库结构:该系统的基本数据库如下表。 英文 词性 音标 中文1 char char char char 四、测试数据:要求被选用的词条有50个左右,以中学的单词为主。对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。【详细设计】一、总体方案的选定: 在了解该系统的功能后,可以通过运用函数、编译语句、数据类型来实现。由于数据多,数据结构相似的特点,自然的想到用数组实现数据的存储,且总体数据结构应用文件的数据。文件类型为结构体数据,数据库结构用文件来实现

8、。二、概要设计程序的模块组成及各个函数的功能:1 程序的模块组成: 主函数: main(); 显示菜单函数:caidan();1 查找单词函数:chaxun();2 删除单词函数:zhuxiao();3 添加单词函数:在caidan()中; 读取字符函数:getch();2.各函数的主要功能: 显示菜单函数:显示各菜单,并有添加功能。 查找单词函数:输入需要查找的单词,并输出单词的意思。 删除单词函数:输入需要的删除的单词,回车就能删除。 三、程序的抽象数据类型定义: 词典的结构体数组: 单词 单词; 中文解释; 四、相关数据类型: 英汉词典结构体数组struct hk Char zhang1

9、1;/*单词的长度,限度10个字母*/ Char mi22/*中文解释的长度,限度10个汉字*/ struct hk next;/*建立链表用的后指针*/【流程图】 (1)统计函数的下属子功能函数及调用示意图: caidan() caidan()exit(7)判断要执行函数数 zhuxiao()chaxun()添加单词getch() (2)函数的下属子功能函数及其调用示意图:exit(7)caidan()chaxun()getch()zhuxiao()【调试分析】 1、程序编译成功之后开始调试: 1)根据提示将单词“word” 添加入库,在效果查看中存在该单词则添加成功。 2)对词进行保存3)

10、对存在的单词进行删除,在效果查看中不存在该单词则删除成功。4)对已经存在的单词查询,能查询到则说明单词保存成功。2对结果进行分析:只对单词进行表面删除,而实质上并未删除。应该将该链表中对应的该单词的节点删除。【心得体会】课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说是无处不在。因此,作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,经过一周的课程设计,我学到了许

11、多,不仅巩固了以前所学过的知识,而且学到了很多在书上所没有学到过的知识,使我自己对C语言有了重新的认识,觉得它十分的重要,但掌握它又不是一件容易的事。只要通过自己不停的思考,不断的上机实践。才能够比较熟练的掌握好,在其中我们遇到了比较多的困难,因为其中有些知识我们并没有学到过,要自己去查找资料来完成。在设计过程中遇到问题,可以说是困难重重,因为毕竟是第一次做的,难免会遇到各种各样的问题,同时在设计过程中发现了自己的不足之处,对以前的所学过的知识理解的不够深刻,掌握的不够牢固,比如说结构体通过这次课程设计之后,觉得以前学过的知识要重新温习。刚开始听说我们要设计英汉字典时心里没有一点底,毕竟C语言

12、才刚学一学期就要编写如此复杂的应用程序。但参考了许多资料和与几个有经验的学长们讨论后,编写思路漫漫清楚,开始了解它的基本方式和操作方法。在不太熟悉的部分,我们能够充分体会到自己的自学能力,并发挥它,以及在设计过程中的团队作用,提高自己解决问题的能力。在设计程序是也增加了自己的实践能力,通过翻阅有关文献获得了些自己原来不了解的知识。从接触C语言到了解C语言是一个过程,是自身学习的过程。俗话说师傅领进门,修行靠自身。在编写过程中遇到的不解和麻烦都基本上是通过自身的反复琢磨和学长的帮助而解决的。通过这段时间的课程设计,我认识到C语言是一门比较难的课程。需要多花时间上机练习,这次的程序训练培养了我的实

13、际分析问题的能力,实际编程能力。随着程序的一步步完善,自己也在慢慢进步,达到了预期目的。这次课程设计终于完成了,在设计中遇到了许多的问题,但在王颖老师的指导下,终于解决,同时在王颖老师的身上我学到了很多实用的知识。在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次感谢。【附录】源程序清单:#include Stdio.h#include Conio.htypedef structchar ci20;char yi40;Dict;/*定义数据结构*/Dict dict200;/*一共存储200个单词*/void init()/*程序初试化*/ int i; FILE *fp; for

14、 (i=0;i200;i+) memset(dicti.ci,0,20);/*把全部单词清0*/ memset(dicti.yi,0,40); fp=fopen(lnlh.dat,rb);/*从lnlh.dat文件里读出数据*/ for (i=0;i200;i+) fread(char *)&dicti,60,1,fp); fclose(fp);void find()/*查找一个单次*/ int i; char temp20; clrscr(); printf(please input a word:);/*请求输入*/ scanf(%s,temp); for (i=0;i200;i+) if

15、(strcmp(temp,dicti.ci)=0)/*如果找到*/ printf (nn%s : %s,dicti.ci,dicti.yi);/*则显示*/ printf (nnpress any key to return); getch(); return; printf (nnnot found);/*如果没找到,显示not found*/ getch(); return; void add()/*追加一个数据*/ int i,j; char temp20; char temp140; clrscr(); for (i=0;i200;i+) if(!(*dicti.ci)/*先找到一个空

16、位*/ printf(nnplease input the word:); scanf(%s,temp); for (j=0;j200;j+)/*找到空位后,输入单词,判断单词是否存在*/ if(strcmp(temp,dictj.ci)=0) printf (nnthe word is already storenn);/*如果存在,则提示存在,并退出*/ printf (please any key to return); getch(); return; printf(nnplease input the mean:);/*输入意思*/ scanf(%s,temp1); strcpy(d

17、icti.ci,temp); strcpy(dicti.yi,temp1); return; printf(nnsorry,the data is full);/*如果没有空位,显示full*/void del()/*删除*/ int i; char temp20; clrscr(); printf(nnplease input the word:);/*先输入*/ scanf(%s,temp); for (i=0;i200;i+) if(strcmp(temp,dicti.ci)=0)/*如果找到*/ memset(dicti.ci,0,20);/*对其进行清空操作*/ memset(dic

18、ti.yi,0,40); printf (nnsuccess,press any key to return); getch(); return; printf (nnnot found);/*如果没找到,显示not found*/ getch(); return; void modify()/*修改*/ int i; char temp20; char temp140; clrscr(); printf(nnplease input the word:);/*输入*/ scanf(%s,temp); for (i=0;i200;i+) if(strcmp(temp,dicti.ci)=0)/

19、*如果找到单词*/ printf (nnfoundnn); printf(%s : %snn,dicti.ci,dicti.yi); printf (nnplease input the new mean:); scanf(%s,temp1);/*输入意思,并替换*/ strcpy(dicti.yi,temp1); printf (nnsuccess,please any key to return); getch(); return; printf (nnnot found);/*如果没找到,显示not found*/ getch(); return; void view()/*浏览*/ i

20、nt i,j; clrscr(); for (i=0,j=0;i200;i+) if(*dicti.ci!=0) j+; printf(%s : %sn,dicti.ci,dicti.yi); if(j=20)/*分页显示,每页显示20个*/ j=0; printf (nprease any key to page down); getch(); clrscr(); printf(nnthats all); getch();void store()/*保存到文件*/ int i; FILE *fp; fp=fopen(lnlh.dat,wb);/*打开一个文件*/ for (i=0;i200;

21、i+) fwrite(char *)&dicti,60,1,fp); fclose(fp); printf (nnstore successnn);/*提示保存成功*/ getch();int main(void) char key; init(); while(1)/*循环显示*/ clrscr(); printf(nnn电子英汉词典设计nn);/*显示操作功能*/ printf(1、查找nn); printf(2、增加nn); printf(3、删除nn); printf(4、修改nn); printf(5、浏览nn); printf(6、维护nn); printf(7、结束nn); ke

22、y=getch(); switch(key)/*判断键盘输入*/ case 1:find();break; case 2:add();break; case 3:del();break; case 4:modify();break; case 5:view();break; case 6:store();break; case 7:return 0;/*实现对应功能*/ return 0;_参考资料C语言程序设计案例教程 张基温 编著 清华大学出版社C语言程序设计案例分析 人民邮电出版社C程序设计 (第三版) 谭浩强 著 清华大学出版社C语言程序设计方法 邓文新 张宏烈 著 哈尔滨工业大学出版社C语言程序设计 北京邮电大学出版社 应用技术学院课程设计评分表课程名称: 电子英汉词典设计 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期:

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922