电子英汉词典设计_第1页
电子英汉词典设计_第2页
电子英汉词典设计_第3页
电子英汉词典设计_第4页
电子英汉词典设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 报 告课程名称 C语言程序设计 课题名称 电子英汉词典设计 专 业 * 班 级 14 * 学 号 * 姓 名 * 指导教师 * 2016年 1月 10日*课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 电子英汉词典设计专业班级 * 学生姓名 * 学 号 * 指导老师 * 审 批 任务书下达日期 2015年 12月 27日任务完成日期 2016年 1月 10日C语言课程设计任务书设计课题五:电子英汉词典设计一、问题描述:英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。二、功能描

2、述:1、在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。2、词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。3、对单词和释义字符串长度的限定分别为不少于20个与40个字符,词条数限定为不多于200条。4、采用菜单工作方式。在一个操作执行之后,程序询问是否继续执行该操作。如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并

3、根据用户选择存盘退出或不存盘退出。5、要求整个设计以人为本,用户界面友好。三、算法提示:1、数据结构:结构体数组2、简单的程序设计3、友好的窗口菜单的设计四、测试数据:要求被选用的词条有200个左右,以中学的单词为主。五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。 目 录第一章 绪论11.1 课程背景11.2 本文所做工作1第二章 需求分析22.1 需求获取22.2 需求建模22.3 需求评审22.4 层次方框图3第三章 总体设计43.1 程序模块43.2 函数分析43.3 总体结构5第四章 详细设计64.1 主函数main()64.2 添加单词函数add()64

4、.3 查询单词函数look()64.4 删除函数dele()74.5 修改函数change()74.6 浏览函数all()74.7 保存函数store()84.8 退出函数exit()84.9 初始化函数init()8第五章 测试95.1 主菜单95.2 单词的录入95.3 单词查询95.4 显示词条95.5 修改单词105.6 删除功能105.7保存记录105.8 退出系统115.9 打开文本11第六章 使用说明12第七章 总结13附录A 源代码15附录B 参考资料21第一章 绪论C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和

5、技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。1.1 课程背景英汉词典作为一个常用的学习工具,是我们经常要使用的。电子英汉词典设计系统能完成一个简单的电子英汉词典的功能,方便

6、我们查询和记录单词,给我们学习英语提供帮助,同时也激发了我们对学习英语的兴趣。1.2 本文所做工作翻阅与编程、项目开发和软件工程的书籍,确定好要制作电子英汉词典设计系统的目标,例如通过这个系统能满足查询、增词等功能的使用。同时要清楚好各个功能之间的关系,及确立好整体的结构。首先要考虑如下几个问题:如何实现增加单词、删除单词的功能,如何将单词和释义从文件中读取出来并准确无误的显示在显示器上,如何将主菜单始终显示出来不变动位置,如何实现友好化窗口等等,这些都是需要考虑的问题。因此,翻阅了软件工程、项目开发的书籍后,将增加词汇、查询词汇、删除词汇、修改词汇和显示词汇等作为一个个独立的模块进行开发和建

7、立,这样以main函数为主体便有了整体的构造,例如在查询、增词、删除的函数内,都涉及到是否目标搜寻,因此可在其中设置for循环语句,利于逐个搜寻,知道找到目标词汇。另外一个难点就是文件了,利用结构体数组记录所有单词,用fprintf函数再将信息传至文件中。当需要读取文件中的信息时,再用fscanf函数一一将文件中的信息传递给结构体数组内。根据用户的需求,便可以自由的增加、删除单词了。另外在主函数中加入system(“cls”)可以将显示屏进行清屏处理,再利用whlie(1)语句始终为真,便可将主菜单保持在屏幕的正上方,知道用户要求退出系统,用exit(0)即可退出。从整体布局到部分的每个模板的

8、设计,再回到整体将所有模块联系在一起。大致的工作便完成了。第二章 需求分析需求分析是对用户的业务系统进行调查、分析,对新系统逻辑功能和实现方案进行讨论、评估、综合与协商的阶段。需求分析活动大致分为三个阶段:需求获取、分析建模、需求评审。2.1 需求获取电子英汉词典的主要功能是进行单词的查询,来满足用户对于单词释义的需求。而将其衍生出来的就有增加难度大的词和陌生的单词、删除已掌握其用法的简单单词、修改其单词的原本释义或者丰富单词原本的释义、记录系统对单词的操作以及方便下次使用等需求。根据不同的需求建立不同的模块函数来满足需求。输入输出的要求:采用菜单工作方式。在一个操作执行之后,询问是否继续执行

9、该操作。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。要求整个设计以人为本,用户界面友好。2.2 需求建模由于用户群体的各个用户往往会从不同的角度、不同的抽象级别中阐述他们对原始问题的理解和对目标软件的需求,因此,有必要为原始问题及目标软件及目标软件建立逻辑模型。电子英汉词典程序的功能模型如下:(1)查询单词(2)增加单词(3)删除单词(4)修改单词(5)显示所有单词(6)记录数据(7)退出程序(8)从文件中读取单词2.3 需求评审(1)一致性模块与模块之间都有精确紧密的联系。(2)完整性所有相关功能基本具备,完整性较好。(3)现实性。可以实现单词的

10、查询、增添、删除、修改等功能。(4)有效性。输入指令即会弹出相应的操作提示,能解决用户的问题。2.4 层次方框图如下图 2-1所示。存储信息图 2-1存储信息增添单词信息存储信息存储信息删除单词信息查询单词信息修改单词信息判断是否储存文件中未存单词信息文件中已存在单词信息单词信息第三章 总体设计3.1 程序模块主 函 数: main() 初始化函数: init() 查找函数: look()增加函数: add()删除函数: dele() 修改函数: change()浏览函数: all()存储函数: store()结束函数: exit()返回函数: return() 3.2 函数分析增加函数:能够

11、随时增加想要增加的单词。查找函数:能够随时查找某个单词。删除函数:能够删除某单词信息。修改函数:能随时修改单词信息。浏览函数:能够浏览所有单词。存储函数:能把修改后的信息存储在文件中。3.3 总体结构 如图3-1所示。 图3-1第四章 详细设计4.1 主函数main()为主菜单页面,从页面中可以看到,里面包含7个功能选项的函数,其中还有隐藏的函数system(“cls”)用于将界面清屏,使得主菜单始终处于最上方的位置。其次,利用switch语句实现各函数的调用,根据系统提示输入的数字选项来调用相应的函数。如图 4-1所示。 图 4-14.2 添加单词函数add()先输入一个单词,再进行判断该单

12、词是否存在,若存在,则会出现相应的提示,并返回主菜单,若不存在,则提示输入中文释义。添加成功返回主菜单。如图 4-2所示。 图 4-24.3 查询单词函数look()先输入一个单词,再进行判断该单词是否存在,若存在,则会弹出释义,若不存在,则会出现相应的提示,并返回主菜单。如图 4-3所示。 图 4-34.4 删除函数dele()将该单词的位置用后一个单词取代,依次循环,把最后一个单词取空先输入一个单词,再进行判断该单词是否存在,若不存在则会提示不存在,若存在,则会删除该单词和它的释义。如图 4-4所示。存在提示已删除单词判断是否存在该单词删除单词不存在提示不存在该单词返回主菜单图 4-44.

13、5 修改函数change()先输入一个单词,再进行判断该单词是否存在,若不存在则会提示不存在,若存在,则会提示输入新的单词释义。如图4-5所示。显示原释义,提示输入新的释义存在提示修改成功判断是否存在该单词修改单词不存在返回提示不存在该单词图 4-5主菜单4.6 浏览函数all()将显示所有的文件中单词且会统计单词个数。4.7 保存函数store()利用fscanf函数将结构体数组中的数据保存到指定文件中。如图 4-6所示。结构体数组对应的单词和释义信息信息保存用“只写”的方式打开文件将信息传递给文件返回主菜单用fprintf记录文件提示保存成功图 4-6图 4-54.8 退出函数exit()

14、退出系统。4.9 初始化函数init()打开程序时,自动将文件中的单词信息传递给结构体数组中。第五章 测试5.1 主菜单程序运行的主菜单,如图4-1所示。 图4-15.2 单词的录入单词的录入,如图4-2所示。 图 4-25.3 单词查询单词的查询,如图4-3所示。 图 4-35.4 显示词条显示词条,验证是否录入保存,如图4-4所示。 图 4-45.5 修改单词修改单词功能,如图4-5所示。 图 4-5显示单词,验证是否修改,如图4-6所示。 图 4-65.6 删除功能单词的删除功能,如图4-7所示。 图 4-7显示词条,验证单词是否被删除,如图4-8所示。 图 4-85.7保存记录保存记录

15、,如图4-9所示。 图 4-95.8 退出系统退出系统操作,如图4-10所示。 图 4-105.9 打开文本打开文本文件的记录,如图4-11所示。 图 4-11第六章 使用说明首先打开电子英汉词典.EXE文件,会出现主菜单屏幕,其中有7个功能选项,分别是:添加单词、查询单词、删除单词、修改单词、总单词表、存储记录和退出程序。单词记录在D盘指定的data.txt文件中,当D盘没有data.txt文件,程序会在D盘自动新建一个。下面将逐一介绍每一个功能选项:1.增加单词:按 1 ,再按回车键,即可输入新单词,再按回车键,输入单词的释义,再按回车键,返回主菜单。2.查询单词:按 2 ,再按回车键,即

16、可输入单词,再按回车键,将会显示已存的单词释义,再按回车键,返回主菜单。若未存该单词则会出现相应的提示,按任意键返回主菜单。3.删除单词:按 3 ,再按回车键,即可输入单词,再按回车键,将删除已存的单词和释义,再按回车键,返回主菜单。若未存该单词则会出现相应的提示,按任意键返回主菜单。4.修改单词:按 4 ,再按回车键,即可输入要修改的单词,再按回车键,输入新的单词释义,再按回车键,返回主菜单。若未存该单词则会出现相应的提示,按任意键返回主菜单。5.总单词表:按 5 ,再按回车键,将显示文件已存的单词个数和所有单词和单词的释义;再按任意键后返回主菜单。6.存储记录:按 6 ,再按回车键,将功能

17、1、3、4修改后的信息让文件记录。(在相应的文本文件中可以看到)再按任意键后返回主菜单。7.退出程序:按 7 ,再按回车键,将退出系统。第七章 总结课程设计是C语言教学中的一个重要的实践环节。因此,课程设计比课程教学、实验复杂一些,要求所涉及的内容有一定的深度和广度,并更加接近实际应用。通过课程设计的综合训练,培养了我们分析问题、编程和解决实际问题的能力,把理论与实践有机结合起来。.随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。我的题目是电子英汉词典的设计,对于我们这些初学C语言的人来说,这是一个很大的考验,因

18、为这不仅要求我们要熟悉C语言程序设计知识,还要求我们要掌握结构化程序设计的基本思路,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题。在翻阅软件工程的书籍后,了解到在课程设计中追求的总体目标可概括为:选择适当的方法和工具,运用成熟的技术从事软件开发活动,最终实现提高软件产品质量和开发效率,得到可靠性高的,经济适用的、易维护的、满足用户需求的软件产品。 为实现这个总体目标,在软件项目实施过程中,针对分析、设计、编程、测试、维护等具体环节,总结出了一系列具体的目标,如追求高可靠性、可适应性、有效性、可理解性、可互操作性、可重用性、可追踪性和可维护性。这些目标

19、不仅是分析活动、设计活动中追求的目标,也是衡量工作成果,评价产品质量优劣的目标。回到我的这个题目上,在刚拿到这个题目的时候我的大脑是一片空白,为什么呢?虽然所学的知识都有了一个大致的了解和认识,但是都是零零散散的知识,没有一个系统的概括和总结。因此只能应付考试却不能做出其它的实践。怎么办呢?根据老师的提示,在图书馆内翻阅相关的书籍,其中一本是关于项目开发的,另一本是关于软件工程的。总之,这两本书提供了一种整体性的思维,从用户需求的角度来分析目标,为一个工程或项目提供了有序的工作方案。此外,我还在网上浏览到了往届学长学姐们做的课程设计,真可谓是独具匠心,虽说有些程序代码我看不懂,但是对于看得懂的

20、地方,我觉得设计的非常巧妙,印证了C语言老师上课所说的代码能简则简的要求。可是呢?即使是找到了这么多资料,看了相关的书籍,可脑袋里还是一团乱麻,在学校的图书馆里,为了自己编出这个题目,待了整整一天,看电脑屏幕看着眼睛都花了,就是没任何结果。在这一周内,不停反复的实验,渐渐地对目标清晰了,而且还知道要模块化将每一个功能做好,然后再拼装起来,构成整体。从完全不会,到慢慢摸索,再到建立雏形,再到调试程序,再到测试。整体算下来差不多一周的时间,在这段时间内我不仅把课程设计的任务完成了,而且还学到了许多课堂所没有的知识,学会了如何去整体性思考问题。这次课程设计使我学会了很多,虽然其中遇到许多的困难,在上

21、网查资料、翻阅书籍、与同学们相互讨论和向老师请教后,这些问题都被解决。这也使得我越来越有信心将一件事做好。再次感谢我的老师和同学们,因为有了你们的帮助与陪伴,才使得我更加坚信我能行,才有机会向成功迈开步伐。附录A 源代码#include #include#include /文件处理的头文件#include /会用到清屏的功能#include /使函数暂停而不立即返回(getch())struct diction /结构体设置单词的两个变量:英文和释义(字符串)char a20,b40;struct diction dict200;void init() /初值函数int i;FILE*fp;i

22、f(fp=fopen(D:data.txt,r)=NULL) /判断D盘中是否存在一个data.txt文件printf(n本地无单词文件data.txt n系统将自动新建该文件至d盘中n);/若无,则在D盘中新建一个这样的文件fp=fopen(D:data.txt,w);getch();for(i=0;i200;i+)fscanf(fp,%s %sn,dicti.a,dicti.b);fclose(fp);void add()/增加单词的函数int i;char c20;printf(请输入一个单词:);scanf(%s,c);for(i=0;i=200)printf(nn磁条记录已满!);p

23、rintf(nn按任意键返回主菜单!);getch();return;void look()/寻找单词的函数int i;char d20;printf(请输入一个单词:);scanf(%s,d);for(i=0;i=200)printf(无该单词释义);printf(nn按任意键返回主菜单!);getch(); return;void dele()/删除单词的函数int i,j;char e20;printf(请输入要删除的单词:);scanf(%s,e);for(i=0;i200;i+)if(strcmp(e,dicti.a)=0)for(j=i;(*dictj.a)&(j=198)strc

24、py(dictj+1.a,0);strcpy(dictj+1.b,0);break;if(i=199)strcpy(dicti.a,0);strcpy(dicti.b,0);printf(n该单词已删除!);printf(nn按任意键返回主菜单!);getch(); return;if(i=200)printf(无该单词!);printf(nn按任意键返回主菜单!);getch(); return;void change()/修改单词释义的函数int i;char f20;printf(请输入要修改的单词:);scanf(%s,f);for(i=0;i=200)printf(无该单词!);printf(nn按任意键返回主菜单!);getch();return;void all()/查看记录的所有单词int i,j;system(cls);for(j=0;(*dictj.a)&(j200);j+);printf(nt记录的单词数为%d个n,j);printf(n词库中所有单词如下:n);for(i=0;(*dicti.a)&i200;i+)printf(%s:%sn,dicti.a,dicti.b);if(i+1)%20=0)getch();system(cls);printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论