ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:479.09KB ,
资源ID:5196708      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5196708.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计课程设计报告电子英汉词典设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计课程设计报告电子英汉词典设计.docx

1、C语言程序设计课程设计报告电子英汉词典设计课 程 设 计 报 告课程名称 C语言程序设计 课题名称 电子英汉词典设计 专 业 信息管理与信息系统 班 级 学 号 姓 名 指导教师 2011 年 6 月 22 日一、设计内容与设计要求1.课程设计目的全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构和数据库等课程)的实验以及课程设计打下较扎实的基础。2.课题题目班级成绩管理系统班级档

2、案管理系统飞机订票系统猜数字游戏电子英汉词典设计通讯录管理系统3.设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。具体要求如下:1 设计课题题目:每位同学根据自己学号除以6所得的余数加一选择相应题号的课题。原则上不予换提,私自换题者不记成绩。 根据自己对应的课题完成以下主要工作:完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样

3、的结构,它们之间有什么关系等。完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。关键源程序(带注释) 按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。二、进度安排第 17 周 星期一 8时:00分11时:30分 星期二 8时:00分11时:30分 星期四 8时:00分11时:30分 星期五

4、8时:00分11时:30分第 18 周 星期一 8时:00分11时:30分 第18周 星期二 14时:30分18时:00分目 录1.系统需求分析 11.1问题描述 11.2功能要求 12.概要设计 22.1系统的总体设计 22.2各模块的功能 32.3相关数据结构设计 33.详细设计 43.1采用C语言定义相关的数据类型 43.2各功能模块的流程图 54.系统调试 105.运行结果 115.1查询单词界面 115.2新增词条界面 135.3编辑词条界面 155.4删除词条界面 175.5退出字典 176.心得体会 187.附录 187.1参考书目 187.2源程序清单 198.评分表 251.

5、系统需求分析1.1问题描述英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。1.2功能要求(1) 在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。(2) 词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。(3) 对单词和释义字符串长度的限定分别为不少于20个与40个字符,词条数限定为不多于200条。(4) 采用菜单工作方式

6、。在一个操作执行之后,程序询问是否继续执行该操作。如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。(5) 要求整个设计以人为本,用户界面友好。2.概要设计2.1系统的总体设计程序共有六个子函数和一个主函数:(1)query(void)是查找函数。 (2) append(void)是新增函数。 (3) edit(void)是编辑函。(4)erase()是删除函数。 (5)add()是一个初始化函数。 (6)lookup()是用来实现单词查询的一个子函数。(7)主程序通过

7、无限循环来接收输入的命令,并且根据命令调用相应的函数处理。 图2.1 总体设计图2.2各模块的功能(1) query是查找函数,用户通过系统提示输入要查找的单词,只要单词库中含有此单词便能找到相应的中文解释。(2) append是新增函数,用户可通过此函数来增加单词库单词的数量。(3) edit是编辑函数,程序提示用户输入要修改的单词,如果找到,则提示输入新单词及中文解释。(4) erase是删除函数,程序提示用户输入要删除的单词,在得到确认后,删除这个单词的纪录。(5) add是一个初始化函数,让建立的词库里有一部分单词。(6) lookup是用来实现单词查询的一个子函数。2.3相关数据结构

8、设计(1) 宏定义的一些相关数据#define szWORD 32#define szSTRN 224#define szITEM sizeof(struct TItem)char fileDictszSTRN;(2) 开头定义一个结构体数组用于单词和释义的存放 单词 释义char char3.详细设计3.1采用C语言定义相关的数据类型 定义结构体数组:typedef struct TItem char wordszWORD; char meanszSTRN; Item; 宏定义的数据:#define szWORD 32#define szSTRN 224#define szITEM size

9、of(struct TItem)char fileDictszSTRN; 定义的文件: File*f;3.2各功能模块的流程图(1) 查询函数query(void)流程图 图3.1 查询函数query(void)流程图(2)新增函数append(void)流程图 图3.2新增函数append(void)流程图(3) 编辑函数edit(void)流程图 图3.3 编辑函数edit (void)流程图(4) 删除函数erase()流程图 图3.4删除函数erase()流程图(5) 词库初始化函数add( )流程图 图3.5初始化函数add( )流程图4.系统调试在程序运行时开始查不到单词,后来查找

10、原因,是由于此库里没有单词,这样的电子词典给了用户也用不了,所以我就加了一个add子函数进行初始化,使词库里有一部分单词。这样的电子词典就比较实用。在函数的几个功能中,删除函数在运行时不能删除单词,但经过分析,删除函数中没有错误,而是其中调用的lookup( )中的一条语句没有起到它应起的作用,后来我在if(strcmp(i.word , word) 后面加上p=p+szITEM;continue; 就实现了单词删除的功能。 因为我加了一个初始化的功能,让所定义的文件中有部分单词,而这个功能就是要给结构体初始化,而我开始定义的结构体后就在后面直接初始化,运行的时候并没有达到我预期的效果,还是显

11、示词库里没有单词。于是我在结构体上下工夫,我开始的赋值出现了问题,导致我定义的结构体是个非法结构体。所以我重新定义结构体,按照规范的要求重新赋值,就达到了我想要的效果了。由于主函数是运用的无限循环体,所以在运行时,友好界面会一直出现,不仅不美观,看起来结不简洁,所以我在后面加了一条清屏的语句,就是界面看起来美观大方了。 5.运行结果5.1初始化界面 图5.1初始化界面5.2查询单词界面(1) 查询单词的界面 图5.2查询单词界面(2) 未初始化下查询单词界面 图5.3未初始化查询单词(3) 初始化后查询单词 图5.4初始化后查询单词(5) 查不到单词的情况 图5.5 查不到单词的情况5.2新增

12、词条界面(1) 新增词条界面 图5.6新增词条的界面(2) 输入新增的单词 图5.7输入新增的单词(3) 输入新增单词的释义 图5.8输入新增单词的释义(4) 新增成功 图5.9新增成功5.3编辑词条界面(1) 输入要编辑的单词和释义 图5.10输入要编辑的单词和释义(2) 编辑成功界面 图5.11编辑成功(3) 放弃编辑的界面图5.12放弃编辑5.4删除词条界面 图5.13删除词条5.5退出字典 图5.14退出字典6.心得体会7.附录7.1参考书目1 谭浩强. C语言程序设计(第四版)M.北京:清华大学出版社,2010 6(4)2 姜仲秋等. C语言程序设计 M. 南京:南京大学出版社,19

13、98 1(2)3 陈朔鹰等. C语言程序设计基础教程M.北京:兵器工业出版社,1994 94 刘瑞挺. 计算机二级教程M.天津:南开大学出版社,1996 107.2源程序清单/*基本的库函数*/#include #include #include #include #define szWORD 32#define szSTRN 224#define szITEM sizeof(struct TItem)char fileDictszSTRN;typedef struct TItem /*定义一个结构体*/ char wordszWORD; char meanszSTRN; Item;void

14、add(void) /*词库初始化*/ Item i2=you,你,me,我; /*初始化*/ FILE * f = 0; int p = 0; /*定义指针型未打开的文件f,整型p=0*/ f = fopen(fileDict, ab); /*以追加的方式打开文件*/ fwrite(&i, szITEM,2, f); /*写入函数,把i所指向的1*szITEM个字节输入到f所指的文件中*/ fclose(f); /*关闭文件*/ printf(词条已初始化n);int lookup(char *word, char *mean) /*实现单词查询功能*/ FILE * f = 0; Item

15、 i; /*定义指针型未打开的文件f,i表示Item*/ int r = 0; int p = 0; /* 定义整型r=0 整型p=0*/ if(!word) return 0; /*如果找不到该单词,则返回*/ f = fopen(fileDict, rb); /*如果有 打开这个文件以rb的方式*/ if (!f) return 0; /*如果文件不存在,返回*/ while(!feof(f) /*如果文件存在 当如果未遇到输入文件的结束标志*/ r = fread(&i, szITEM, 1, f); /*从f中读取长度为szITEM的一个数据项存到i所指向的内存*/ if(r 1) b

16、reak; /*如果r1,则跳出该循环*/ if(i.word0 = 0) continue; /*如果i.word0 = 0,则结束本次循环*/ if(strcmp(i.word , word) p=p+szITEM;continue; /*如果要查的单词在词库里有则执行下一步 否则结束本次循环*/ if(mean) strcpy(mean, i.mean ); /*把单词的意思copy到mean中*/ fclose(f); /*关闭该文件*/ return p+1; /*返回到下一个单词*/ fclose(f); /*关闭该文件*/ return 0; /*返回主函数*/void appe

17、nd(void) /*新增词条*/ Item i; FILE * f = 0;int p = 0; /*定义指针型未打开的文件f,i表示Item 定义整型p=0*/printf(请输入单词:); scanf(%s, i.word ); p = lookup(i.word, 0 ); /*p=要新增的单词*/ if(p) /*如果p=0,则输出字典内已经有该单词记录!*/ printf(字典内已经有该单词记录!n); return; printf(请输入释义,按回车结束:); /*否则输出 请输入释义,按回车结束:*/ fflush(stdin); /*清空输入缓冲区*/ gets(i.mean

18、 ); /*把获得的字符串给i.mean*/ f = fopen(fileDict, ab); /* 打开这个文件以追加的方式*/ fwrite(&i, szITEM, 1, f); /*写入函数,把i所指向的1*szITEM个字节输入到f所指的文件中*/ fclose(f); /*关闭文件*/ printf(词条已新增n);void erase(void) /*删除词条*/ Item i; FILE * f = 0;int p = 0 ; /*定义指针型未打开的文件f,i表示Item 定义整型p=0*/ memset(&i, 0, szITEM); /*清除数组的内容*/ printf(请输

19、入单词:); scanf(%s, i.word ); p = lookup(i.word, 0 ); /*p=要查找的单词*/ if(p=0) /*如果p=0,则输出字典内没有该单词记录!*/ printf(字典内没有该单词记录!n); return; p-; /*p回到它原来的位置*/ memset(&i, 0, szITEM); /*清除数组的内容*/ f = fopen(fileDict, rb+); /*以读写的方式打开fileDict*/ fwrite(&i, szITEM, 2, f); /*写入函数,把i所指向的1*szITEM个字节输入到f所指的文件中*/ fclose(f);

20、 /*关闭文件*/ printf(词条已删除n);void edit(void) /*编辑词条*/Item i; FILE * f = 0; int p = 0; /*定义指针型未打开的文件f,i表示Item 定义整型p=0*/ memset(&i, 0, szITEM); /*清除数组的内容*/ printf(请输入单词:); scanf(%s, i.word ); p = lookup(i.word, 0 ); /*p=要编辑的单词*/ if(p=0) /*如果p=0,则输出字典内没有该单词记录!*/ printf(字典内没有该单词记录!n); return; p-; /*p回到它原来的位

21、置*/ printf(请输入释义,按回车结束(输入abort放弃修改):); fflush(stdin);/ *清空输入缓冲区*/ gets(i.mean ); /*获得字符串,放在i.mean中*/if(strstr(i.mean ,abort) /*如果abort字符串的出现 则表示已经放弃修改 */ printf(已放弃修改!n); return ; f = fopen(fileDict, rb+); /*以读写的方式打开fileDict*/fwrite(&i, szITEM, 1, f); /*将&i所指向的一个szITEM字节的数据项放进f*/ fclose(f);/*关闭文件*/

22、printf(词条已保存n);void query(void) /*查询单词*/ Item i; int p = 0; /*i表示Item 定义整型p=0*/ memset(&i, 0, szITEM); /*清除数组的内容*/ printf(请输入单词:); scanf(%s, i.word ); p = lookup(i.word, i.mean ); /*p=要查询的单词*/ if(p=0)/*如果p=0,则输出字典内没有该单词记录*/ printf(字典内没有该单词记录!n); return; printf(【词条】%sn【释义】%s, i.word , i.mean );/*输出词条

23、和释义*/int main() /*主函数*/ int cmd = 0; /*定义整型的cmd=0*/ strcpy(fileDict, c:dict.txt); /*将c:dict.txt复制到fileDict*/ for(;) printf(n *n * 欢迎使用迷你字典!*n *n * 1 - 查询词条 *n * 2 - 新增词条 *n * 3 - 编辑词条 *n * 4 - 删除词条 *n * 5 - 初始化字典 *n * 6 - 退出字典 *n *n); printf(请输入1到6中任意一个数字:n); cmd = getch() - 0; /*将获得的字符赋值给cmd*/ swit

24、ch(cmd) case 1: query(); break; /*调用查询函数*/ case 2: append(); break; /*调用新增函数*/ case 3: edit(); break; /*调用编辑函数*/ case 4: erase(); break; /*调用删除函数*/ case 5: add(); break; /*调用初始化函数*/ default: return 0; printf(n); system(pause); system(cls); return 0;8.评分表计算机与通信学院课程设计评分表课程名称: C语言程序设计 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1