一、课程设计的内容电子英汉词典设计一、问题描述:英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。二、功能描述:1、在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。2、词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。3、对单词和释义字符串长度的限定分别为不少于20个与40个字符,词条数限定为不多于200条。4、采用菜单工作方式。在一个操作执行之后,程序询问是否继续执行该操作。如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。5、要求整个设计以人为本,用户界面友好。二、课程设计的要求与数据1、进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程序设计开发文档的能力。三、课程设计应完成的工作1、编写完成相应题目的程序;2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:1)需求分析:包括设计题目、设计要求以及系统功能需求分析;2)总体设计:包括系统总体设计框架和系统功能模块图;3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4)调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图);5)总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建等内容;6)附录:主要源程序代码,含必要的注释。3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解决问题、运行程序和回答教师提出的问题四、课程设计进程安排序号设计各阶段内容地点起止日期1下达任务书,说明设计要求;收集资料实验3#5176.182总体方案设计、详细设计实验3#5176.193编写程序,调试分析实验3#5176.204撰写报告并上交,答辩实验3#5176.21五、应收集的资料及主要参考文献[1]谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005.9[2]谭浩强.C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,2005.7[3]李春葆曾平刘斌。C++语言程序设计题典第一版北京清华大学出版社2003年4月[5]刘振安刘燕君C++程序设计课程设计第一版机械工业出版社2004年8月发出任务书日期:2007年6月18日指导教师签名:计划完成日期:2007年6月22日基层教学单位责任人签章:主管院长签章:目录1设计目的与要求……………………………………………………………1页码2总体设计……………………………………………………………………2页码3详细设计………………………………………………………………2—3页码3.1功能模块设计……………………………………………………2-3页码3.1.1查询单词功能模块……………………………………2页码3.1.1添加单词功能模块……………………………………3页码3.1.1删除单词功能模块…………………………………………3页码3.2数据结构设计………………………………………………………3页码4调试分析……………………………………………4-5页码5总结………………………………………………………………………6页码6附录…………………………………………………………………6-10页码6答辩记录(正文处请留出适当空白)…………………………………11页码7指导教师意见(正文处请留出十行空白)……………………………11页码1目的与要求课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生项目开发及程序调试能力。课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生项目开发及程序调试能力。(1)总体要求①对系统进行功能模块分析、控制模块分析正确;②系统设计要实用;③编程简练,可用,功能全面,具有较好的健壮性;④说明书、流程图要清楚。(2)课程设计报告要求①需求和规格说明:问题描述:题目要解决的问题是什么?②设计⊕设计思路:主要算法思想。⊕总体设计:程序设计组成框图、N-S流程图。⊕详细设计:模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)。③调试与测试:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等。④附录:源程序清单和结果。如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出;清单中应有足够的注释。页码12总体设计3详细设计(内容可以适当调整,清晰的有条理的把你的设计思路表达出来)3.1功能模块设计3.1.1查询单词功能模块页码2输入想要查找的单词单词库有此词?输出找不到此词N输出此词Y有此功能?能选择功能返回主菜单YN是否是退出?开始执行此功能N3.1.2添加单词功能模块3.1.3删除单词功能模块3.2数据结构设计1.建立单词数据库(包含英文单词、中文意思解释)2.用fopen函数访问单词数据库文件。3.还用到标准的输出输入函数,按需输出输入或删除数据。页码3输入你想添加的单词单词库有此词吗?添加有错Y添加成功N词库有此词吗?删除不成功N删除成功Y输入想要删除的单词4调试分析查询单词:输入:preciatian屏幕显示:输出结果:sorrydonotfindwhatyouwant二添加单词:选择2功能输入你想添加的单词:Hello输入它的意思:你好屏幕显示:页码4输出结果是:addwordsuccess三:删除单词:输入你想要删除的单词:Hello屏幕显示:输出结果是:deletewordsuccess页码55总结虽然这次的课程设计有些功能实现的不是很好,总的来说这次课程设计效果还是可以的,在短短的两天时间内,我们看的书的数量是非常多的,很多没见过的函数都学了,但是自学确实是很难,很多函数虽然用的语法没错,但是不能应用自如,为自己所用。这只能说明自己还需加把努力,希望在以后的学习中得到大的进步。通过课程设计使握进一步掌握和利用C语言进行程设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;而且通过这次课程设计让我学会了认真的精神态度是多么的重要,认真思考对学习的重要性。这个程序完全是个人所做,望老师给以批评和建议!7.附录#includewindows.h#includestdio.h#includemalloc.h#includewinbase.h#includeprocess.hvoidSearch()/*查找单词*/{FILE*fp;charinsert[20];charword[40];printf(Pleaseinputthewordyouwant:\n);ges(insert);fp=fopen(wordcage,r);if(fp==NULL);/*没有找到文件*/{printf(\n\nSorrydonotfindwhatyouwant.\n\n);fclose(fp);return;}while(!feof(fp))/*查询单词词库*/{fread(&wordcage,sizeof(wordcage),1,fp);printf(%s,word);页码6}fclose(fp);}voidaddword()/*添加单词*/{FILE*fp;fp=fopen(wordcage,r);/*以读方式打开文件*/if(fp==NULL)fp=fopen(wordcage,w);/*以写方式打开文件*/else/*如果有单词添加*/{fclose(fp);fp=fopen(wordcage,a);/*以追加方式打开文件*/}charinsert[20];printf(Inserthenewword:\n);gets(insert);printf(Givinigthemeaning:\n);scanf(%s,word);fclose(fp);printf(\n\naddwordsuccess.\n\n);}voidworddel();{FILE*fp;Word*head,*p,*q;charword[20];fp=fopen(Wordcage,rb);/*读方式打开文件*/if(fp==NULL){printf(Error!);页码7fclose(fp);return;}head=p=q=(Word*)malloc(sizeof(Word));/*将文件内容放入链表*/while(!feof(fp)){q=p;p=(Word*)malloc(sizeof(Word));fread(p,sizeof(Word),1,fp);/*读记录*/q-next=p;/*新记录插入到链表的尾*/}p-next=NULL;/*最后一个结点的后继为空*/fclose(fp);clrscr();printf(Inputtheword:);/*输入要删除的单词*/gets(word);/*输入单词*/p=head;while(p!=NULL)/*按名字查找要删除的图书*/{if(strcmp(p-name,word)==0)/*找到要删除的单词*/{if(p==head)/*如果是第一个结点*/head=head-next;elseq-next=p-next;/*不是第一个结点*/break;}q=p;/*指针后移*/p=p-next;}页码8fp=fopen(Word.txt,wb);/*删除后从链表的头开始重新保存*/while(head!=NULL){fwrite(head,sizeof(Word),1,fp);/*块写*/head=head-next;}fclose(fp);clrscr();}voidcleanscrean(){printf(\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n);}intmain(){intnumble;MENU:printf(**************MENU***************\n\n);/*显示主菜单*/printf(1EnglishtoChinese\n\n);printf(2Inserthewordyouwanttoadd\n\n);printf(3Deltheexistedword\n\n);printf(4Cleanthescreen\n\n);printf(5modifytheexistedword\n\n);printf(6protectthesystem\n\n);printf(7Exitthesystem\n\n);printf(**********************************\n);do{printf(Pleasechoiceform1to7:\n);/*选择你所要的功能*/scanf(%d,&numble);}页码9while(numble0||numble8);switch(numble){case1:Search();got