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

下载本文档

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

文档简介

1、课 程 设 计 报 告课程名称 C语言课程设计 课题名称 电子英汉词典 专 业 纺织服装学院 班 级 纺工1203 学 号 姓 名 指导教师 田 媛 2014年 01 月06 日湖南工程学院课 程 设 计 任 务 书课程名称 C语言课程设计 课 题 电子英汉词典 专业班级 纺工工程 学生姓名 学 号 指导老师 田媛 审 批 任务书下达日期 2013 年 12 月 26 日任务完成日期 2014年 01 月 06 日一、设计内容与设计要求1设计内容:课题一:电子英汉词典。具体内容见附录。2设计要求:1)设计正确,方案合理。2)界面友好,使用方便。3)程序精炼,结构清晰。4)上机演示。3设计报告要

2、求:课程设计报告格式如下:1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。 2)正文的内容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释),课程设计报告需5000字左右(不含附件)。3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。二、进度安排星期日(17周)星期一(18周)星期四(18周)星期五(18周)星期日(18周)14:00-17:0018:00-21:0018:00-21:0018:00-21:00交报告上课时间另外安排上课时间另外安排。附录:设计

3、课题三:电子英汉词典一、问题描述:该设计实现简单电子英汉词典的功能,具体管理操作包括单词的添加、显示、查找、删除、修改和保存等。二、功能描述:1、本设计采用结构体数组,每个数据的结构应当包括:单词的英文拼写,单词的中文释义。2、系统功能:a. 词条录入:即添加单词记录。b. 信息显示:将所有的单词按字母顺序显示。c. 词条修改:对已经输入的单词信息进行修改。d. 词条删除:删除某个单词记录。e. 单词查询: 输入单词英文拼写,输出该单词的中文释义。f. 信息保存:将单词信息保存到文件。g. 退出系统3、系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。系统的功能并不限于上述,可以对

4、其进行扩充完善,如在对信息进行修改和删除时,可以考虑系统的安全性,在执行前若输入正确密码,才可进行操作。三、测试数据:要求被选用的词条有30个左右,简单单词为主。目录1.封面-1 2.任务书-22.1设计内容与设计要求-32.2附录-4 3.目录-54.课题的主要功能4.1 各函数的主要功能-64.2 课题功能模块的划分-7 4.3 主要功能的实现-7 4.3.1各被调用功能函数实现-85.程序调试-96.总结与体会-107.附件(源代码及程序运行截图)-118.评分表-20(一)、课题的主要功能电子英汉词典设计系统能完成一个简单的电子英汉词典的功能,这个系统有七个功能,如:查找、增加、删除、

5、修改、浏览、维护、结束 。把这七功能编该成七个子函数。在主函数当中对这七个子数调用,来实现对整个系统的操作。本词典采用一个包含50个数据结构数,每个数据的结构当包括,英文单词、中文意思。<一>、各函数的主要功能1)程序的模块组成: 主 函 数: main() 初始化函数: init() 输入函数 : scanf() 输出函数: printf() 删除函数: memset() 查找函数 find()增加函数 add()删除函数 del() 修改函数 modify()浏览函数 view()维护函数 store()结束函数 return() 2) 各个函数的主要功能: 输入函数: 随时输

6、入数据。 菜单函数:显示系统主菜单。 查找函数:能够随时查找某个单词增加函数:能够随时增加想要增加的单词删除函数:能够删除某单词信息修改函数:能随时修改单词信息浏览函数:能够浏览所有单词(二)、课题功能的模块的划分菜单界面 return 函数store 函数view 函数modify 函数del 函数 add 函数find 函数输出结果(三)、 主要功能的实现 整个系统除了主函数外,另外还有12个函数,实现七个功能:查找功能、增加功能、删除功能、修改功能、浏览功能、维护功能、结束功能。各个函数的详细设计说明如下: 1、 主函数 main() 通过getch函数显示菜单,利用switch语句实现

7、各函数的调用,根据系统提示输入的数字选项来调用相应的函数。 2、 查找函数() 首先利用清屏函数对屏幕清屏,利用输入函数输入要查找的单词,如果找到则显示出所找的单词,再利用getch()函数显示,按任意键返回主菜单,如果没有找到则显示出not found,按任意键返回。 3、增加函数 add() 首先清除屏幕,找到一个空位利用输入函数输入要增加的单词,再判断该单词是否存在,如果存在,则显示“the word is already store”,不存在则输入该单词的意思进行存储,按任意键返回主菜单。4、删除函数 del() 首先输入要删除的单词,如果找到则利用memset函数对它进行0覆盖,按任

8、意键返回主菜单,如果没有找到,则显示not found。5、修改函数 modify() 首先清屏,输入要修改的单词,如果找到单词,则显示found,并输入单词新的意思,存储之后再返回主菜单,如果没有找到则显示not found,按任意键返回。 6、保存函数 store() 利用fscanf函数将结构体数组中的数据保存到指定文件中。 7、浏览函数 view() 首先清屏,分页显示,每页显示20个,读出结构体数组中的数据直至结束。 四、调试程序老实说本程序的代码我是借鉴别人的,虽然我过了二级C,但我没把握自己完全原创,即使借鉴但用的时候难免出现这样那样的错误。如开始设计出来的菜单不是预想的那样,而

9、是总出现混乱,解决的这个问题的办法是调试。最后还是老师帮我找到了问题的所在,在这次的课程设计中,我们遇到了如下问题:有的不能加分号的加了分号,该加的又没有加,在TC下的程序有些函数不能在VC下运行,这些问题通过同学们的分析讨论都一一解决了,而遇到的最大的问题是:运行结果不正确,后来经过老师的指点,后来自己调试终于运行出结果,经过美化界面修改整理代码终于完工!如:clrscr()函数(清屏函数)只能在TC下运行,而源代码中有大量clrscr()函数,在VC下的的清屏函数是system(“cls”)这时就可以用宏定义来解决: define clrscr() system(“cls”)一个系统的菜单

10、和提示信息非常重要。如果没有这些用户根本不知道怎么用你设计的这个系统。在设计的调试过程中也无法顺利的完成调试工作。有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。五、总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说是无处不在。因此,作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,经过一周的课程设计,虽然甚是辛苦,但我却学到了许多东西,不仅巩

11、固了以前所学过的知识,而且学到了很多在书上所没有学到过的知识,使我自己对C语言又有了重新的认识,觉得它十分的重要,但掌握它又不是一件容易的事。只有通过自己不停的思考,不断的上机实践。才能够比较熟练的掌握好,在其中我们遇到了比较多的困难,因为其中有些知识我们并没有学到过,要自己去查找资料来完成。在设计过程中遇到问题,可以说是困难重重,因为毕竟是第一次做的,难免会遇到各种各样的问题,同时在设计过程中发现了自己的不足之处,对以前的所学过的知识理解的不够深刻,掌握的不够牢固。通过这次课程设计之后,觉得以前学过的知识要重新温习才能够达到查漏补缺的效果。刚开始听说我们要设计英汉电子词典时心里真的是没有一点

12、底,毫无思绪,无从下手,毕竟C语言才刚学一年就要编写如此复杂的应用程序。但参考了一些资料和与几个有经验的学长们讨论后,编写思路才漫漫清楚,开始了解它的基本方式和操作方法。在不太熟悉的部分,我们能够充分利用自己的自学能力,发挥它,以及在设计过程中的团队作用,提高自己解决问题的能力。在设计程序是也增加了自己的实践能力,通过翻阅有关文献获得了些自己原来不了解的知识。从接触C语言到了解C语言是一个过程,是自身学习的过程更是一段由量变到质变的过程。俗话说师傅领进门,修行靠个人。在编写过程中遇到的不解和麻烦都基本上是通过自身的反复琢磨和学长的帮助而解决的。通过这段时间的课程设计,我认识到C语言是一门比较难

13、的课程。需要多花时间上机练习,这次的程序训练培养了我的实际分析问题的能力,实际编程能力。随着程序的逐渐完善,自己也在慢慢进步,达到了预期目的。这次课程设计终于完成了,在设计中遇到了许多的问题,但在老师的指导下,终于迎刃而解,同时,对给过我帮助的所有同学和各位指导老师再次感谢。 六、程序代码#include "stdio.h" #include "conio.h" #include "string.h"#include "stdlib.h"#define clrscr() system("cls"

14、) /*将TC下的清屏函数替换为VC下的清屏函数*/typedef struct char a20; char b40;XYZ; XYZ xyz50; void init() /*初始化函数*/ int i; FILE *fp; for (i=0;i<50;i+) memset(xyzi.a,'0',20); /*清空磁道,*/ memset(xyzi.b,'0',40); fp=fopen("c:my.txt","w"); /*在C盘新建一个TXT文件*/ fp=fopen("c:my.txt"

15、,"r"); /*将新建的TXT文件打开*/ i=0; while( fscanf(fp,"%s %sn",xyzi.a,xyzi.b)!=EOF) /*由文件向结构体数组中写数锯*/ i+; fclose(fp); void find() /*单词查询函数*/ int i; char temp20; clrscr(); printf("please input a word:"); scanf("%s",temp); for (i=0;i<50;i+) if(strcmp(temp,xyzi.a)=0) /

16、*通过比较字符查询*/ printf ("nn%s : %s",xyzi.a,xyzi.b); printf ("nnpress any key to return"); getch(); return; printf ("nnnot found"); getch(); return; void add() /*词条录入函数*/ int i,j; char temp20; char temp140; clrscr(); for (i=0;i<50;i+) if(!(*xyzi.a) /*找到空位*/ printf("n

17、nplease input the word:"); scanf("%s",temp); for (j=0;j<50;j+) if(strcmp(temp,xyzj.a)=0) /*找到相同字符*/ printf ("nnthe word is already storenn"); printf ("please any key to return"); getch(); return; printf("nnplease input the mean:"); scanf("%s"

18、,temp1); strcpy(xyzi.a,temp); /*复制*/ strcpy(xyzi.b,temp1); return; printf("nnsorry,the data is full"); void del() /*词条删除函数*/ int i; char temp20; clrscr(); printf("nnplease input the word:"); scanf("%s",temp); for (i=0;i<50;i+) if(strcmp(temp,xyzi.a)=0) /*比较*/ memset(

19、xyzi.a,'0',20); /*清空该结构体*/ memset(xyzi.b,'0',40); printf ("nnsuccess,press any key to return"); getch(); return; printf ("nnnot found"); getch(); return;void modify() /*词条修改函数*/ int i; char temp20; char temp140; clrscr(); printf("nnplease input the word:"

20、;); scanf("%s",temp); for (i=0;i<50;i+) if(strcmp(temp,xyzi.a)=0) printf ("nnfoundnn"); printf("%s : %snn",xyzi.a,xyzi.b); /*显示原有单词和意思*/ printf ("nnplease input the new mean:"); scanf("%s",temp1); strcpy(xyzi.b,temp1); /* 从temp1复制结构体中*/ printf (&q

21、uot;nnsuccess,please any key to return"); getch();return; printf ("nnnot found"); getch(); return;void view() /*信息显示函数*/ int i,j; clrscr(); for (i=0,j=0;i<50;i+) if(*xyzi.a!='0') /*如果不是空位*/ j+; printf("%s : %sn",xyzi.a,xyzi.b); if(j=20) /*分页显示,一次显示20页*/ j=0; print

22、f ("nprease any key to page down"); getch(); clrscr(); printf("nnthat's all"); getch();void store() /*信息保存函数*/ int i; FILE *fp; fp=fopen("c:my.txt","w"); /*以读的方式再新建my.txt文档*/if(fp=NULL) /*没建成显示wrong!*/printf("wrong!");getchar();for (i=0;i<50;i+) fprintf(fp,"%s %sn",xyzi.a,xyzi.b); /*将结构体中的数剧保存到my.txt文档*/fclose(fp); printf ("nnstore successnn"); getch();return; int main(void) /*主函数*/ char key; init();while(1) clrscr(); printf("nnn 电子英汉词典设计-设计者&l

温馨提示

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

最新文档

评论

0/150

提交评论