C语言课程设计-电子英汉词典_第1页
C语言课程设计-电子英汉词典_第2页
C语言课程设计-电子英汉词典_第3页
C语言课程设计-电子英汉词典_第4页
C语言课程设计-电子英汉词典_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

C语言课程设计——电子英汉词典课程设计报告一、设计内容与设计要求1.设计内容:电子英汉词典。具体内容见附录。2.设计要求:1)设计正确,方案合理。2)界面友好,使用方便。3)程序精炼,结构清晰。4)上机演示。3.设计报告要求:1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。2)正文的内容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释),课程设计报告需5000字左右(不含附件)。3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。二、进度安排星期日(17周)星期一(18周)星期四(18周)星期五(18周)星期日(18周)14:00-17:0018:00-21:0018:00-21:0018:00-21:00交报告上课时间另外安排上课时间另外安排附录:设计课题三:电子英汉词典一、问题描述:该设计实现简单电子英汉词典的功能,具体管理操作包括单词的添加、显示、查找、删除、修改和保存等。二、功能描述:1.本设计采用结构体数组,每个数据的结构应当包括:单词的英文拼写,单词的中文释义。2.系统功能:a.词条录入:即添加单词记录。b.信息显示:将所有的单词按字母顺序显示。c.词条修改:对已经输入的单词信息进行修改。d.词条删除:删除某个单词记录。e.单词查询:输入单词英文拼写,输出该单词的中文释义。f.信息保存:将单词信息保存到文件。g.退出系统3.系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。系统的功能并不限于上述,可以对其进行扩充完善,如在对信息进行修改和删除时,可以考虑系统的安全性,在执行前若输入正确密码,才可进行操作。三、测试数据:要求被选用的词条有30个左右,简单单词为主。主函数:调用各个子函数,实现整个系统的操作。初始化函数:初始化数据结构,包括英文单词和中文意思。输入函数:接收用户输入的指令或单词。输出函数:将查询结果或系统提示输出给用户。删除函数:删除指定单词及其中文意思。查找函数:根据用户输入的单词查找对应的中文意思。增加函数:添加新的单词及其中文意思。修改函数:修改指定单词的中文意思。浏览函数:浏览所有单词及其中文意思。维护函数:保存当前系统状态,以备下次使用。结束函数:结束整个系统的运行。<二>、课题功能模块的划分为了更好地实现各个功能,将整个系统划分为以下模块:1)数据结构模块:定义数据结构,包括英文单词和中文意思。2)初始化模块:初始化数据结构,为后续操作做好准备。3)输入输出模块:接收用户输入的指令或单词,并将查询结果或系统提示输出给用户。4)增删查改模块:实现增加、删除、查找、修改功能。5)浏览模块:浏览所有单词及其中文意思。6)维护模块:保存当前系统状态,以备下次使用。(二)、主要功能的实现为了实现各个功能,需要实现以下几个被调用的功能函数:1)查找函数:根据用户输入的单词查找对应的中文意思。2)增加函数:添加新的单词及其中文意思。3)删除函数:删除指定单词及其中文意思。4)修改函数:修改指定单词的中文意思。5)浏览函数:浏览所有单词及其中文意思。6)维护函数:保存当前系统状态,以备下次使用。在主函数中,调用这些功能函数,实现整个系统的操作。(三)、程序调试在开发过程中,需要不断进行调试,确保程序的正确性和稳定性。调试过程中,可以使用调试工具,对程序进行逐步执行和变量值的查看,以找出问题所在。同时,也可以通过加入日志输出等方式,更好地定位问题。(四)、总结与体会在本次课题设计中,我学习到了如何使用C语言实现一个简单的电子英汉词典。通过不断的实践和调试,我不仅掌握了C语言的基本语法和函数调用,还提高了编程思维和实际操作能力。在今后的学习和工作中,我将继续努力,不断提高自己的编程水平。(五)、附件本课题的源代码及程序运行截图见附件。(六)、评分表评分表详见第20页。(二)课题功能模块划分菜单界面模块包含函数:菜单函数查找增加删除修改浏览存储返回模块包含函数:查找函数、增加函数、删除函数、修改函数、浏览函数、存储函数、返回函数(三)主要功能实现整个系统有12个函数,实现七个功能。各个函数的详细设计说明如下:1.主函数main()通过getch函数显示菜单,利用switch语句实现各函数的调用,根据系统提示输入的数字选项来调用相应的函数。2.查找函数find()首先利用清屏函数对屏幕清屏,利用输入函数输入要查找的单词。如果找到,则显示出所找的单词,并利用getch()函数显示,按任意键返回主菜单。如果没有找到,则显示notfound,并按任意键返回。3.增加函数add()首先清除屏幕,找到一个空位利用输入函数输入要增加的单词。再判断该单词是否存在,如果存在,则显示“thewordisalreadystored”,不存在则输入该单词的意思进行存储,按任意键返回主菜单。4.删除函数del()首先输入要删除的单词,如果找到,则利用memset函数对它进行‘\0’覆盖,按任意键返回主菜单。如果没有找到,则显示notfound。5.修改函数modify()首先清屏,输入要修改的单词。如果找到单词,则显示found,并输入单词新的意思,存储之后再返回主菜单。如果没有找到,则显示notfound,并按任意键返回。6.存储函数store()利用fscanf函数将结构体数组中的数据保存到指定文件中。7.浏览函数view()首先清屏,分页显示,每页显示20个,读出结构体数组中的数据直至结束。在这次课程设计中,我借鉴了别人的代码,虽然我通过了二级C考试,但我不能完全确定代码是我原创的。在设计菜单时,我遇到了一些问题,导致菜单总是混乱。我通过调试解决了这个问题,但最终还是老师帮我找到了问题的所在。在课程设计过程中,我们还遇到了其他问题,例如有些函数不能在VC下运行,有些需要加分号的没有加等。我们通过同学们的分析讨论一一解决了这些问题,但最大的问题是运行结果不正确。经过老师的指点和自己的调试,我终于成功地运行出结果。最后,我美化界面并整理了代码,完成了整个项目。一个系统的菜单和提示信息对于用户非常重要。如果没有这些,用户将无法使用你设计的系统,而你也无法顺利地完成调试工作。因此,在设计和调试过程中,一个清晰简单的菜单和一些提示信息是必不可少的。课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题、锻炼实践能力的重要环节。随着科学技术的发展,计算机在生活中的应用越来越广泛。作为二十一世纪的大学生,掌握计算机开发技术是非常重要的。回顾此次课程设计,我深有感触。从拿到题目到完成整个编程,从理论到实践,经过一周的课程设计,虽然很辛苦,但我学到了很多东西。我不仅巩固了以前所学的知识,还学到了很多新的知识,这些知识在书上没有学到过。这次课程设计让我重新认识了C语言的重要性,但我也意识到掌握它并不容易,需要不断思考和上机实践。在设计过程中,我们遇到了很多困难,因为有些知识我们并没有学过,需要自己查找资料来完成。同时,设计过程中也暴露了我对以前所学知识的不足之处,需要重新温习才能够达到查漏补缺的效果。开始设计英汉电子词典时,我们感到有些无从下手。毕竟,我们只学了一年的C语言,而现在要编写如此复杂的应用程序。但是,通过参考资料和与有经验的学长们讨论,我们逐渐明确了编写思路,开始了解基本的操作方法。在遇到不熟悉的部分时,我们充分利用了自己的自学能力,并通过团队合作提高了解决问题的能力。在设计程序的过程中,我们还通过翻阅文献获得了一些新的知识。从接触C语言到了解C语言是一个由量变到质变的学习过程。在编写过程中遇到的问题都是通过自己的反复琢磨和学长的帮助得以解决的。通过这段时间的课程设计,我们认识到C语言是一门比较难的课程,需要多花时间上机练习。这次的程序训练培养了我们的实际分析问题和编程能力,也让我们逐渐进步,达到了预期目的。最终,我们完成了这次课程设计。虽然在设计中遇到了许多问题,但在老师的指导下,我们终于迎刃而解。在此,我们要感谢给予我们帮助的同学和各位指导老师。以下是我们的程序代码:(格式已修正)include<stdio.h>include<conio.h>include<string.h>include<stdlib.h>defineclrscr()system("cls")typedefstruct{chara[20];charb[40];}XYZ;XYZxyz[50];voidinit(){inti;FILE*fp;for(i=0;i<50;i++){memset(xyz[i].a,'\0',20);memset(xyz[i].b,'\0',40);}fp=fopen("c:\\my.txt","w");fp=fopen("c:\\my.txt","r");i=0;while(fscanf(fp,"%s%s\n",xyz[i].a,xyz[i].b)!=EOF){i++;}}fclose(fp);voidsearch(){inti;chartemp[20];clrscr();printf("Pleaseinputaword:");scanf("%s",temp);for(i=0;i<50;i++){if(strcmp(temp,xyz[i].a)==0){printf("\n\n%s:%s",xyz[i].a,xyz[i].b);printf("\n\nPressanykeytoreturn.");getch();return;}}printf("\n\nNotfound.");getch();return;}voidadd(){inti,j;chartemp[20];chartemp1[40];clrscr();for(i=0;i<50;i++){if(!(*xyz[i].a)){printf("\n\nPleaseinputtheword:");scanf("%s",temp);for(j=0;j<50;j++){if(strcmp(temp,xyz[j].a)==0){printf("\n\nThewordisalreadystored.\n\n");printf("Pleasepressanykeytoreturn.");getch();return;}}printf("\n\nPleaseinputthemeaning:");scanf("%s",temp1);strcpy(xyz[i].a,temp);strcpy(xyz[i].b,temp1);return;}}printf("\n\nSorry,thedataisfull.");}voiddelete(){inti;chartemp[20];clrscr();printf("\n\nPleaseinputtheword:");scanf("%s",temp);for(i=0;i<50;i++){if(strcmp(temp,xyz[i].a)==0){memset(xyz[i].a,'\0',20);memset(xyz[i].b,'\0',40);printf("\n\nSuccess!Pressanykeytoreturn.");getch();return;}}printf("\n\nNotfound.");getch();return;}voidmodify(){inti;chartemp[20];chartemp1[40];clrscr();printf("\n\nPleaseinputtheword:");scanf("%s",temp);for(i=0;i<50;i++){if(strcmp(temp,xyz[i].a)==0){printf("\n\nFound.\n\n");printf("%s:%s\n\n",xyz[i].a,xyz[i].b);printf("\n\nPleaseinputthenewmeaning:");scanf("%s",temp1);strcpy(xyz[i].b,temp1);printf("\n\nSuccess!Pleaseanykeytoreturn.");getch();return;}}printf("\n\nNotfound.");getch();return;}voidview(){inti,j;clrscr();for(i=0,j=0;i<50;i++){if(*xyz[i].a!='\0'){j++;printf("%s:%s\n",xyz[i].a,xyz[i].b);if(j==20){j=0;printf("\nPressanykeytocontinue...");getch();clrscr();}}}printf("\n\nEndoffile.Pressanykeytoreturn.");getch();return;}printf("*7、退出程序*\n");printf("");printf("\n\n\npleaseenteryourchoice:");scanf("%c",&key);/*输入选择*/switch(key){case'1':search();break;/*查询*/case'2':add();break;/*添加*/case'3':del();break;/*删除*/case'4':modify();break;/*修改*/case'5':display();break;/*显示*/case'6':store();break;/*保存*/case'7':exit(0);/*退出*/default:printf("\n\nwrongchoice!");getch();/*错误输入*/}}return0;}voidinit()/*初始化函数*/{inti;for(i=0;i<50;i++){strcpy(xyz[i].a,"");strcpy(xyz[i].b,"");}return;}voidsearch()/*查询函数*/{inti,j=0;chars[20];printf("\n\npleaseenterthewordyouwanttosearch:");scanf("%s",s);/*输入要查询的单词*/for(i=0;i<50;i++){if(strcmp(s,xyz[i].a)==0)/*查找单词*/{printf("\n\n%s:%s",xyz[i].a,xyz[i].b);/*输出单词及其解释*/j=1;}}if(j==0)/*未找到单词*/printf("\n\nnotfound!");getch();return;}voidadd()/*添加函数*/{inti;chars[20];printf("\n\npleaseenterthewordyouwanttoadd:");scanf("%s",s);/*输入要添加的单词*/for(i=0;i<50;i++){if(strcmp(s,xyz[i].a)==0)/*查找单词是否已存在*/{printf("\n\nthewordhasalreadyexisted!");/*单词已存在*/getch();return;}}for(i=0;i<50;i++){if(strcmp(xyz[i].a,"")==0)/*找到空的位置*/{printf("\n\npleaseentertheexplanationoftheword:");scanf("%s",xyz[i].b);/*输入单词解释*/strcpy(xyz[i].a,s);/*存储单词*/printf("\n\naddsuccess!");/*添加成功*/getch();return;}}printf("\n\nthedictionaryisfull!");/*字典已满*/getch();return;}voiddel()/*删除函数*/{inti,j=0;chars[20];printf("\n\npleaseenterthewordyouwanttodelete:");scanf("%s",s);/*输入要删除的单词*/for(i=0;i<50;i++){if(strcmp(s,xyz[i].a)==0)/*查找单词*/{strcpy(xyz[i].a,"");/*删除单词*/strcpy(xyz[i].b,"");/*删除单词解释*/printf("\n\ndeletesuccess!");/*删除成功*/j=1;}}if(j==0)/*未找到单词*/printf("\n\nnotfound!");getch();return;}voidmodify()/*修改函数*/{inti,j=0;chars[20];printf("\n\npleaseenterthewordyouwanttomodify:");scanf("%s",s);/*输入要修改的单词*/for(i=0;i<50;i++){if(strcmp(s,xyz[i].a)==0)/*查找单词*/{printf("\n\npleaseenterthenewexplanationoftheword:");scanf("%s",xyz[i].b);/*输入新的单词解释*/printf("\n\nmodifysuccess!");/*修改成功*/j=1;}}if(j==0)/*未找到单词*/printf("\n\nnotfound!");getch();return;}voiddisplay()/*显示函数*/{inti,j=0,k=0;chars[20];printf("\n\npleaseenterthefirstletterofthewordyouwanttodisplay:");scanf("%s",s);/*输入要显示的单词的首字母*/for(i=0;i<50;i++){if(s[0]==xyz[i].a[0])/*查找单词*/{printf("\n\n%s:%s",xyz[i].a,xyz[i].b);/*输出单词及其解释*/j=1;k++;if(k%5==0)/*每显示5个单词暂停*/{printf("\npreaseanykeytopagedown");getch();clrscr();}}}if(j==0)/*未找到单词*/printf("\n\nnotfound!");getch();return;}voidstore()/*信息保存函数*/{inti;FILE*fp;fp=fopen("c:\\my.txt","w");/*以写的方式新建my.txt文档*/if(fp==NULL)/*没建成显示wrong!*/{printf("wrong!");getchar();return;}for(i=0;i<50;i++){if(strcmp(xyz[i].a,"")!=0)/*判断单词是否存在*/fprintf(fp,"%s%s\n",xyz[i].a,xyz[i].b);/*将结构体中的数据保存到my.txt文档*/}fclose(fp);printf("\n\nstoresuccess\n\n");getch();return;}intmain(void)/*主函数*/{charkey;init();/*初始化*/while(1){clrscr();printf("\n\n\n电子英汉词典设计设计者<肖纳>\n\n");printf("\n");printf("*1、单词查询*\n");printf("*2、词条录入*\n");printf("*3、词条删除*\n");printf("*4、词条修改*\n");printf("*5、信息显示*\n");printf("*6、信息保存*\n");printf("*7、退

温馨提示

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

评论

0/150

提交评论