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

下载本文档

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

文档简介

1、课程设计报告课程名称C C语言课程设计 _课题名称 _电子英汉词典 _专 业_班 级 _纺工12031203_学号 _姓名 _指导教师 _田媛_20142014年0101月0606日湖南工程学院课程设计任务书课程名称C 语言课程设计 _课 题电子英汉词典专业班级 _纺工工程_学生姓名 _学 号 _指导老师 _田媛_审 批 _任务书下达日期20132013 年1212月2626日任务完成日期 20142014年0101月0606日一、 设计内容与设计要求1 1 .设计内容:课题一:电子英汉词典。具体内容见附录。2.2. 设计要求:1) 设计正确,方案合理。2) 界面友好,使用方便。3) 程序精炼

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

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

4、执行一个具体的功能之后,程序将重新显示功能菜单。系统 的功能并不限于上述,可以对其进行扩充完善,如在对信息进行修改和删除时, 可以考虑系统的安全性,在执行前若输入正确密码,才可进行操作。、测试数据:要求被选用的词条有 30 个左右,简单单词为主。1.1. 封面2.2. 任务书目录-2 22.1设计内容与设计要求 -32.2附录 - 4 43 3 . 目录 - 5 54.4. 课题的主要功能4.1 各函数的主要功能 -64.2课题功能模块的划分 -74.3主要功能的实现 -74.3.1 各被调用功能函数实现 -85.5. 程序调试 -9 96.6. 总结与体会 -10107.7. 附件(源代码及

5、程序运行截图) -11118.8. 评分表 -2020( (一) )、课题的主要功能电子英汉词典设计系统能完成一个简单的电子英汉词典的功能, 这个系统有七 个功能,如:查找、增加、删除、修改、浏览、维护、结束 。把这七功能编该成七个 子函数。在主函数当中对这七个子数调用,来实现对整个系统的操作。本词典采用一个 包含 50 个数据结构数,每个数据的结构当包括,英文单词、中文意思。一、各函数的主要功能1)程序的模块组成: 主 函 数: main() 初始化函数: init() 输入函数 : scanf() 输出函数 : printf() 删除函数 : memset() 查找函数 find() 增加

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

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

8、除函数 del()首先输入要删除的单词,如果找到则利用 memset函数对它进行 0 覆盖,按任 意键返回主菜单,如果没有找到,则显示 not found 。5、 修改函数 modify()首先清屏,输入要修改的单词,如果找到单词,则显示 found ,并输入单词新的 意思,存储之后再返回主菜单,如果没有找到则显示 not found, 按任意键返回。6、 保存函数 store()利用 fscanf 函数将结构体数组中的数据保存到指定文件中。7、 浏览函数 view()首先清屏,分页显示,每页显示 20 个,读出结构体数组中的数据直至结束。四、调试程序老实说本程序的代码我是借鉴别人的,虽然我过

9、了二级C,但我没把握自己完全原创,即使借鉴但用的时候难免出现这样那样的错误。如开始设计出来的菜单不是预想的 那样,而是总出现混乱,解决的这个问题的办法是调试。最后还是老师帮我找到了问题 的所在, 在这次的课程设计中 ,我们遇到了如下问题 : 有的不能加分号的加了分号 , 该加 的又没有加,在TC下的程序有些函数不能在 VC下运行,这些问题通过同学们的分析讨 论都一一解决了 ,而遇到的最大的问题是 :运行结果不正确 ,后来经过老师的指点 , 后来 自己调试终于运行出结果,经过美化界面修改整理代码终于完工!如:clrscr()函数(清屏函数)只能在 TC下运行,而源代码中有大量clrscr()函数

10、, 在VC下的的清屏函数是system( “cls)这时就可以用宏定义来解决:define clrscr() system(“ cls ” )一个系统的菜单和提示信息非常重要。 如果没有这些用户根本不知道怎么用你设计的这 个系统。在设计的调试过程中也无法顺利的完成调试工作。 有了一个清晰简单的菜单和 一些提示信息这后,调试过程完成的非常顺利。五、总结课程设计是培养学生综合运用所学知识 ,发现 ,提出,分析和解决实际问题 , 锻炼实践能力的 重要环节 ,是对学生实际工作能力的具体训练和考察过程 .随着科学技术发展的日新月异,当今 计算机应用在生活中可以说是无处不在。因此,作为二十一世纪的大学生来

11、说掌握计算机开发 技术是十分重要的。回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到 实践,经过一周的课程设计,虽然甚是辛苦,但我却学到了许多东西,不仅巩固了以前所学过 的知识,而且学到了很多在书上所没有学到过的知识,使我自己对 C 语言又有了重新的认识, 觉得它十分的重要,但掌握它又不是一件容易的事。只有通过自己不停的思考,不断的上机实 践。才能够比较熟练的掌握好,在其中我们遇到了比较多的困难,因为其中有些知识我们并没 有学到过,要自己去查找资料来完成。在设计过程中遇到问题,可以说是困难重重,因为毕竟是第一次做的,难免会遇到各种各 样的问题, 同时在设计过程中发

12、现了自己的不足之处, 对以前的所学过的知识理解的不够深刻, 掌握的不够牢固。通过这次课程设计之后,觉得以前学过的知识要重新温习才能够达到查漏补 缺的效果。刚开始听说我们要设计英汉电子词典时心里真的是没有一点底,毫无思绪,无从下手,毕 竟 C 语言才刚学一年就要编写如此复杂的应用程序。但参考了一些资料和与几个有经验的学长 们讨论后,编写思路才漫漫清楚,开始了解它的基本方式和操作方法。在不太熟悉的部分,我 们能够充分利用自己的自学能力,发挥它,以及在设计过程中的团队作用,提高自己解决问题 的能力。在设计程序是也增加了自己的实践能力,通过翻阅有关文献获得了些自己原来不了解 的知识。从接触 C 语言到

13、了解 C 语言是一个过程,是自身学习的过程更是一段由量变到质变的 过程。俗话说师傅领进门,修行靠个人。在编写过程中遇到的不解和麻烦都基本上是通过自身 的反复琢磨和学长的帮助而解决的。通过这段时间的课程设计,我认识到 C 语言是一门比较难 的课程。需要多花时间上机练习,这次的程序训练培养了我的实际分析问题的能力,实际编程 能力。随着程序的逐渐完善,自己也在慢慢进步,达到了预期目的。这次课程设计终于完成了,在设计中遇到了许多的问题,但在老师的指导下, 终于迎刃而 解,同时,对给过我帮助的所有同学和各位指导老师再次感谢。六、程序代码#include stdio.h#include conio.h#i

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

15、新建的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;i50;i+)if(strcmp(temp,xyzi.a)=0) /* 通过比较字符查询 printf (nn%s : %s,xyzi.a,xyzi.b); printf (nnpres

16、s any key to return); getch();return;printf (nnnot found); getch();return;void add() /* 词条录入函数 */int i,j;char temp20;char temp140;clrscr();for (i=0;i50;i+)if(!(*xyzi.a) /* 找到空位 */ printf(nnplease input the word:); scanf(%s,temp);for (j=0;j50;j+) if(strcmp(temp,xyzj.a)=0) /* printf (nnthe word is alr

17、eady storenn); printf (please any key to return); getch();return;printf(nnplease input the mean:); scanf(%s,temp1);strcpy(xyzi.a,temp); /* 复制 */ strcpy(xyzi.b,temp1);return; printf(nnsorry,the data is full);显示原有单词从 temp1 复制结构void del() /* 词条删除函数 */int i;char temp20; clrscr();printf(nnplease input th

18、e word:); scanf(%s,temp);for (i=0;i50;i+) if(strcmp(temp,xyzi.a)=0) /* 比较 */ memset(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(

19、nnplease input the word:);scanf(%s,temp);for (i=0;i50;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); /*体中 */printf (nnsuccess,please any key to return); getch();return;printf (nnnot

20、 found); getch();return;void view() /* 信息显示函数 */int i,j;clrscr();for (i=0,j=0;i50;i+)if(*xyzi.a!=0) /* 如果不是空位 */ j+; printf(%s : %sn,xyzi.a,xyzi.b);if(j=20) /* 分页显示,一次显示 20 页*/ j=0;printf (nprease any key to page down);getch();clrscr();printf(nnthats all);getch();void store() /* 信息保存函数 */int i;FILE

21、*fp;fp=fopen(c:my.txt,w); /* 以读的方式再新建 my.txt 文档 */ if(fp=NULL) /* 没建成显示 wrong!*/ printf(wrong!);getchar();for (i=0;i50;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电子英汉词典设计 - 设计者 nn);printf(*“、printf( *1、单词查询* n);printf( *2、词条录入* n);printf( *3、词条删除* n);printf( *4、词条修改* n);printf( *5、信息显示* n);printf( *6、信息保存* n);printf( *7、退出系统* n);printf(*);printf(nnn 非本人授权严禁分享 !); key=getch();switch(key)case 1:find();break;case 2:add();break;case 3:del();break;ca

温馨提示

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

评论

0/150

提交评论