您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电子英汉字典-c语言版
1课程设计报告课题:电子英汉字典学院:电子工程与自动化专业:测控技术与仪器学生姓名:XXX学号:XXXXXXXXXXX指导老师:陈寿宏2013年3月18日2目录一、内容摘要与关键词-------------------------------------3二、设计任务与关键词-------------------------------------4三、总体设计---------------------------------------------51、程序设计组成框图---------------------------------52、各函数主要功能-----------------------------------53、主要功能的实现-----------------------------------63.1、菜单显示-------------------------------------63.2、显示函数-------------------------------------73.3、查找函数-------------------------------------83.4、修改函数-------------------------------------93.5、删除函数-------------------------------------103.6、录入函数-------------------------------------12四、调试分析---------------------------------------------13五、总结与体会-------------------------------------------16六、参考文献---------------------------------------------17七、附件-------------------------------------------------183内容摘要:电子英汉字典的主要功能是进行单词的添加、显示、查找、删除、修改、保存等。该课题使用结构体数组实现,每个数据的结构应包括:单词的英文拼写,单词的中文释义。(程序见附件)关键词:字典、C语言编程、单词添加、添加、显示、查找、删除、修改、保存4设计任务与要求一、课程设计总结报告包括如下内容:编写课程设计总结报告的目的是训练同学撰写科学论文和科研总结报告的能力。课程设计报告不仅应把设计调试的内容进行全面的总结,而且应将实践内容上升到理论高度。(1)课程名称(2)目录、内容摘要、关键字。(3)设计任务及要求。(4)总体设计(程序设计组成图、流程图)(5)详细设计(模块功能说明如函数功能、入口及出口参数说明、函数调用关系描述等)(6)调试与测试:调用方法、测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。(7)总结收获与体会。(8)参考文献。(9)源程序清单和执行结果:清单中应有足够的注释。5显示菜单输入指令查找显示修改删除录入退出继续输入指令总体设计1、程序设计组成框图(1)(2)2、各函数的主要功能输出结果开始开始输入1输入2输入3输入4输入5输入6Find函数Veiw函数Mod函数Del函数Add函数Return函数6电子英汉词典设计系统能完成一个简单的电子英汉词典的功能,这个系统有六个功能,如:查找、增加、删除、修改、显示、结束。把这六功能编该成六个子函数。在主函数当中对这六个子数调用,来实现对整个系统的操作。使用结构体数组实现,每个数据的结构应包括:单词的英文拼写,单词的中文释义。各个函数的主要功能:菜单函数main():显示系统主菜单。查找函数find():能够随时查找某个单词增加函数add():能够随时增加想要增加的单词删除函数del():能够删除某单词信息修改函数mod():能随时修改单词信息显示函数veiw():能够浏览所有单词3、主要功能的实现整个系统除了主函数外,实现七个功能:查找功能、增加功能、删除功能、修改功能、显示功能、结束功能。各个函数的详细设计说明如下:3.1、主函数main()通过scanf函数显示菜单,利用switch语句实现各函数的调用,根据系统提示输入的数字选项来调用相应的函数。while(1)//按6退出,否则无限循环{printf(请输入选择菜单:\n);scanf(%d,&key);switch(key){case1:find();break;case2:view();break;case3:mod();break;case4:del();break;case5:add();break;case6:printf(\3\3\3\3\3欢迎再次使用\3\3\3\3\n);return0;default:return0;图3.1Find函数Veiw函数开始Mod函数Del函数Add函数Return函数73.2显示函数veiw()首先清空结构体,再打开磁盘文件,把磁盘文件内的信息进行冒泡排序后再显示在屏幕上。for(i=0;i20;i++)//冒泡法排序{fread(&word[i],sizeof(structdia),1,fp);for(j=0;word[j].English[0]!='\0';j++){for(p=j+1,k=j;word[p].English[0]!='\0';p++){if(strcmp(word[p].English,word[j].English)0){k=p;if(k!=j){strcpy(temp,word[j].English);strcpy(temp1,word[j].mean);strcpy(word[j].English,word[k].English);strcpy(word[j].mean,word[k].mean);strcpy(word[k].English,temp);strcpy(word[k].mean,temp1);}}}}}fclose(fp);fp=fopen(F:\\word.txt,wb);for(i=0;word[i].English[0]!='\0';i++){fwrite(&word[i],sizeof(structdia),1,fp);printf(%6s%-6s\n,word[i].English,word[i].mean);}具体流程图如下开始菜单显示输入指令输入2输入非2进行其他指令83.3查找函数find()首先读入文件内容,利用输入函数scanf输入要查找的单词,如果找到则显示出所找的单词和中文意思,如果没有找到则显示出该单词不存在,返回主菜单。printf(请输入要查找的单词:\n);scanf(%s,a);for(i=0;i20;i++){fread(&word[i],sizeof(structdia),1,fp);if(strcmp(word[i].English,a)==0){printf(%s的中文意思是:%s\n,word[i].English,word[i].mean);break;}}if(i==20)printf(该单词不存在\n);具体流程图如下否是进行排序并显示开始菜单显示输入指令输入1进行查找指令输入非1进行其他指令输入要查找的单词是否存在该单词输出“不存在此单词”输出该单词及其意译93.4修改函数mod()首先打开文件,输入选择,按1输入要修改的单词,如果找到单词,就输入单词新的意思,存储之后再返回主菜单,如果没有找到则显示该单词不存在,返回主菜单。按2则输入要修改的意思,如果找到则输入要修改的意思,如果没有找到则显示该单词不存在,返回主菜单。printf(修改单词请按1,修改意思请按2:\n);scanf(%d,&a);if(a==1){printf(请输入要修改的单词:\n);scanf(%s,mod);for(i=0;i20;i++){fread(&word[i],sizeof(structdia),1,fp);if(strcmp(word[i].English,mod)==0){printf(输入修改后的单词:\n);scanf(%s,mod);strcpy(word[i].English,mod);printf(修改完成\n);fp=fopen(G:\\word.txt,wb);for(j=0;j20;j++){fwrite(&word[j],sizeof(structdia),1,fp);}fclose(fp);break;}}if(i==20)printf(该单词不存在\n);fclose(fp);return;}elseif(a==2){printf(请输入要修改的意思:\n);scanf(%s,mod2);for(i=0;i20;i++){fread(&word[i],sizeof(structdia),1,fp);if(strcmp(word[i].mean,mod2)==0){printf(输入修改后的意思:\n);scanf(%s,mod2);strcpy(word[i].mean,mod2);printf(修改完成\n);break;}}if(i==20)printf(该单词不存在\n);}修改模块流程图如下开始菜单显示1012否是3.5删除函数del()首先以只读方式打开文件,输入要删除的单词,如果找到并按1确定删除则利用strcpy函数对它进行复制覆盖,打开文件进行复制到磁盘文件,显示已删除。返回主菜单,如果没有找到,则显示该单词不存在。printf(请输入要删除的单词:\n);scanf(%s,del);for(i=0;i20;i++){fread(&word[i],sizeof(structdia),1,fp);if(strcmp(word[i].English,del)==0){printf(确定删除请按1,否则退出\n);scanf(%d,&b);if(b==1){for(j=i+1;j20;i++,j++){strcpy(word[i].English,word[j].English);strcpy(word[i].mean,word[j].mean);for(k=0;k20;k++){word[j].English[k]='\0';word[j].mean[k]='\0';}}fp=fopen(F:\\word.txt,wb);for(i=0;word[i].English[0]!='\0';i++){输入指令输入3进行修改指令输入非3进行其他指令修改单词按1,修改意思按2是否存在该单词输出“不存在此单词”修改单词或者是意译保存修改1?2?11fwrite(&word[i],sizeof(structdia),1,fp);}fclose(fp);printf(已删除\n);}break;}}if(i==20)printf(该单词不存在\n);删除模块流程图否是否否是3.6添加函数add()首先以追加方式打开打开文件,利用输入函数输入要增加的单词,再判断该单词是否存在,如果存在,则显示“该单词已经存在,输入任何字符返回”,否则输入该单词的意思,返回主菜单。若储存空间已满,显示“空间已满,不能录入”,返回主菜单。开始菜单显示输入指令输入4进行删除指令输入非4进行其他指令输入要删除的单词是否存在该单词输出“不存在此单词”确定删除1进行删除操作12for(i=0;i20;i++){if(word[i].English[0]!='\0')continue;else{fp=fopen(F:\\word.txt,ab);printf(请输入要录入的单词:\n);scanf(%s,c);for(j=0;j20;j++){if(strcmp(c,word[j].English)==0){printf(这个单词已经存在,输入任何字符返回\n);getch();return;}}printf(请输入录入单词的意思:\n);scanf(%s
本文标题:电子英汉字典-c语言版
链接地址:https://www.777doc.com/doc-2106544 .html