资源描述
、课程设计的内容电子英汉词典设计一、问题描述:英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。二、功能描述: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、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解 决问题、运行程序和回答教师提出的问题四、课程设计进程安排在舁 厅P设计各阶段内容地点起止日期1下达任务书,说明设计要求;收集资料实验3#5176.182总体力泵设计、详细设计实验3#5176.193编写程序,调试分析实验3#5176.204撰写报告并上交,答辩实验3#5176.21五、应收集的资料及主要参考文献1谭浩强.C程序设计(第三版)M,北京:清华大学出版社,2005.92谭浩强.C程序设计题解与上机指导(第三版)M,北京:清华大学出版社,2005.73李春葆 曾平 刘斌。C+邮言程序设计题典第一版 北京 清华大学出 版社2003年4月5刘振安刘燕君C+程序设计课程设计第一版机械工业出版社2004年8月发出任务书日期:2007年6月18日 指导教师签名:计划完成日期:2007年6月22日基层教学单位责任人签章:主管院长签章:1设计目的与要求 1页码2总体设计 2页码3详细设计 23页码3.1 功能模块设计 2-3页码3.1.1 查询单词功能模块 2页码页码3.1.2 添加单词功能模块3.1.3 删除单词功能模块 3 页码3.2 数据结构设计 3页码4调试分析 4-5页码5总结 6页码6附录 6-10页码6答辩记录(正文处请留出适当空白) 11页码7指导教师意见(正文处请留出十行空白) 11页码1目的与要求课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实 际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生项目开发及程 序调试能力。课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实 际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生项目开发及程 序调试能力。(1)总体要求对系统进行功能模块分析、控制模块分析正确;系统设计要实用;编程简练,可用,功能全面 ,具有较好的健壮性;说明书、流程图要清楚。(2) 课程设计报告要求需求和规格说明:问题描述:题目要解决的问题是什么?设计设计思路:主要算法思想。总体设计:程序设计组成框图、N-S流程图。详细设计:模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等) 。 调试与测试 :调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等。附录:源程序清单和结果。如果题目规定了测试数据,则结果要包含这些测试数据和运行输出, 当然还可以含其他测试数据和运行输出; 清单中应有足够的注释。页码 12总体设计(内容可以适当调整,清晰的有条理的把你的设计思路表达出来)3.1功能模块设计3.1.1查询单词功能模块页码33.1.2添加单词功能模块3.1.3删除单词功能模块3.2数据结构设计1 .建立单词数据库(包含英文单词、中文意思解释)2 .用fopen函数访问单词数据库文件。3 .还用到标准的输出输入函数,按需输出输入或删除数据。页码44调试分析查询单词:输入:preciatian屏幕显示:匚晨国:、叫I艮吉.h。c就程设ilPlease Input the uord you want:ptec izt iLctnGqitv do not; tind wlmt you. wcm t.士网予于轲 矛*矛力矛耳下下 士什ENJ xmJtm* = q ar什 1 EnglisJi to Ghlnese *nii7e?t tIip sj/stf?n 、) yMMMM-HWieveirMWM-M M M M H X M* * * H * M X M X * W * * *Please choice forn 1 to 7:输出结果: sorry do not find what you want添加单词:选才i 2功能输入你想添加的单词:Hello输入它的意思:页码4你好 屏幕显示:- 息志vthe c 既租 2 De 1 the existed uopdlK XJtMKH JtK JtJCHJC JKW JCM 序-茨-?6 X X M X K MM J * X K JPlease cho ice f orim 1 to 7: 2Inser the ney uoiM : bwiioMiuinig the meaning:收好Ladd word $ access iMft x* jMftitiftjii*, mH FH U输出结果是: add word success三:删除单词:输入你想要删除的单词:Hello匚:E:叶信有the g课程城屏幕显示:XltXKKltMJItJHHB M:帐 KJf SMX 餐:M KM i(M MHMrKJtHplease cho ice Form 1 to 7-JrploaLS xnsei*t 七ko vruiad. youi wam o do 1b1;b lie llo lcc is u心心匕w片十:k:NR= = 汽安区x 忖EN|J m:h-jcNm-H:网fthmf汽门KUKKKC 4 Clean the sepeen K 5 modify the r工wordKCCfi jpvntftet tlw?笈ysrtfiiri ,Klease choLee furn 1 to 7;输出结果是:delete word success页码55 总结虽然这次的课程设计有些功能实现的不是很好 ,总的来说这次课程设计效果还是可以的,在短短的两天时间内,我们看的书的数量是非常多的,很多没见过的函数都学了,但是自学确实是很难,很多函数虽然用的语法没错,但是不能应用自如,为自己所用。这只能说明自己还需加把努力,希望在以后的学习中得到大的进步。通过课程设计使握进一步掌握和利用 C 语言进行程设计的能力;进一步理解和运用结构化程序设计的思想和方法; 初步掌握开发一个小型实用系统的基本方法; 学会调试一个较长程序的基本方法; 而且通过这次课程设计让我学会了认真的精神态度是多么的重要,认真思考对学习的重要性。 这个程序完全是个人所做,望老师给以批评和建议!7. 附录#include #include #include #include #include void Search() /* 查找单词 */ FILE *fp;char insert20;char word40;printf(Please input the word you want:n);ges(insert);fp=fopen(wordcage,r);if(fp=NULL);/* 没有找到文件*/ printf(nnSorry do not find what you want.nn);fclose(fp);return ;while (!feof(fp)/* 查询单词词库*/ fread(&wordcage,sizeof( wordcage),1,fp);fclose(fp);void addword()/* 添加单词 */FILE *fp;fp=fopen(wordcage,r);/* 以读方式打开文件*/if(fp=NULL)fp=fopen(wordcage,w);/* 以写方式打开文件*/else /*如果有单词添加*/ fclose(fp);fp=fopen(wordcage,a);/* 以追加方式打开文件*/char insert20;printf(Inser the new word:n);gets(insert);printf(Givinig the meaning:n);scanf(%s,word);fclose(fp);printf(nnadd word success.nn);void worddel();FILE *fp;Word *head,*p,*q;char word20;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(Input the word: );/* 输入要删除的单词*/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;fp=fopen(Word.txt,wb);/* 删除后从链表的头开始重新保存*/while(head!=NULL)fwrite(head,sizeof(Word),1,fp);/* 块写 */head=head-next;fclose(fp);clrscr();void cleanscrean()printf(nnnnnnnnnnnnnnnnnnnnnnnn);int main() int numble;MENU:显示主菜单 */printf(*MENU*nn); /* printf(nn);printf(nn);printf( nn);printf(nn);printf(nn);printf(nn);printf(nn);printf(”*n);doprintf(Please choice form 1 to 7:n); /* 选择你所要的功能 */scanf(%d,&numble);页码 9while(numble8);switch(numble) case 1:Search();goto MENU;case 2: addword(); goto MENU;case 3: worddel();goto MENU;case 4: cleanscrean();return 0;case 5:break;case 6:goto MENU;break;case 7: break;return 0;页码 107答辩记录在舁 厅P问题回答123458指导教师意见指导教师签名:页码 11
展开阅读全文