已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号2012-2013学年 第二学期高级语言程序设计课程设计报告题目:英汉小词典专业:计算机科学与技术班级:计科2班姓名:XXXX指导教师:XXX 成绩:计算机与信息工程系2013年06月28日目录1设计内容及要求.31.1设计内容.31.2设计任务及具体要求.32概要设计.42.1系统功能简介.4 2.2总体设计框图.43 设计过程或程序代码.53.1对关键代码加以分析说明.53.2程序运行界面.104 程序设计结果与分析.125 心得.13致谢.13参考文献.13附录:源程序.141 计算机与信息工程系 高级语言程序设计课程设计报告英汉小词典1 设计内容及要求1.1设计内容(1)、在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查询、增词、删除、修改和维护工作。(2)、词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。(3)、对单词和释义字符串长度的限定分别为不少于20个与40个字符,词条数限定为不多于200条。(4)、采用菜单工作方式。在一个操作执行之后,程序询问是否继续执行该操作。如输入A或a,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。1.2设计任务及具体要求主要利用c语言的文件操作能力设计开发一个英汉小词典,至少具有如下功能:查询、删除、增词、修改单词。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。2 概要设计2.1系统的功能简介用户可以通过本系统查询单词以及释义,修改,新增以及删除词条。用户在使用电子词典的时候,有可能会使用电子词典的查询功能,也有可能使用电子词典的轻松背单词功能,当用户需要查询的时候,系统必须提供这个单词的所有信息,以便与用户获得所需要的信息;可以自定义单词,使用户自己可以新增词条,扩充词库。输入与输出的要求:当用户使用查询功能时,系统必须显示词条与释义;当用户觉得本词条存在不足,需要修改时,系统必须提供修改的词条与释义,以及用户输入的内容,修改完成时,提示按确认结束,删除单词时显示要删除的词条与释义,以及词条已删除。2.2 总体程序框图主函数 修改 退出 删除 增词 查询 图A总体设计 开始 显示菜单 5 3 2 1 4 退出词典 执行新增函数 执行查询函数 执行删除函数 执行修改函数 图B详细设计3设计过程或程序代码3.1对关键代码加以分析说明:(1) 菜单显示: int main(int argk,char *argh)int m=0; if(argk1) strcpy(fileDict,argh1); else strcpy(fileDict,c:dict.txt); for(;)printf(n-欢迎使用电子英汉小词典!-n-n-1-查询词条n-2-新增词条n-3-删除词条n-4-修改词条n-5-退出词典n-n); m=getchar()-0; switch(m)case 1: Search();break; case 2: Append();break; case 3: Delete();break; case 4: Update();break; default : return 0;return 0;(2) 查询词条: void Search(void)Project i; fpos_t p=0; memset(&i,0,szProject ); printf(please input the word you want:); scanf(%s,i.word ); p=consult(i.word,i.mean); if(p=0)printf(sorry do not find what you want!n); return; printf(单词:%sn释义%s,i.word,i.mean );(3) 新增词条: void Append(void)Project i; FILE *f=0; fpos_t p=0; memset(&i,0,szProject); printf(please input the word you want:); scanf(%s,i.word ); p=consult(i.word,0); if(p)printf(sorry do not find what you want!n); return; printf(please giving the meaning,按确认结束); fflush(stdin); gets(i.mean); f=fopen(fileDict,ab); fwrite(&i,szProject,1,f); fclose(f); printf(词条已新增n);(四)删除词条: void Delete(void)Project i; FILE *f=0; fpos_t p=0; memset(&i,0,szProject); printf(please input the word you want:); scanf(%s,i.word); p=consult(i.word,0); if(p=0)printf(sorry do not find what you want!n); return; p-; memset(&i,0,szProject); f=fopen(fileDict,rb+); fsetpos(f,&p); fwrite(&i,szProject,1,f); fclose(f); printf(词条已删除n);(5) 修改词条: void Update(void)Project i; FILE *f=0; fpos_t p=0; memset(&i,0,szProject); printf(please input the word you want:); scanf(%s,i.word); p=consult(i.word,0); if(p=0)printf(sorry do not find what you want!n); return; p-; printf(please giving the meaning,按确认结束(输入drop放弃修改):); fflush(stdin); gets(i.mean); if(strstr(i.mean,drop)printf(已放弃修改!n); return; f=fopen(fileDict,rb+); fsetpos(f,&p); fwrite(&i,szProject,1,f); fclose(f); printf(词条已保存n);3.2程序运行界面进入菜单界面后,出现“欢迎使用电子英汉词”;然后有5个选项:1查询词条,2新增词条,3删除词条,4修改词条,5退出词典。输入1,按回车键,输入你想查询的词条,如果系统里存在你要查询的单词,就会输出词条与释义,如果没有,会显示“sorry do not find what you want!”,。 输入2,按回车键,输入你想要新增词条,输入你要新增的单词,如“cat”,按回车输入释义“猫”,如果系统存在本词条,则会输出“sorry do not find what you want!” 输入3,按回车键,输入你想删除的词条,按回车会输出词条已删除。 输入4,按回车键,输入你想修改的词条,按回车,输入释义。如果放弃修改则输入“ drop”。输入5,退出词典。4程序设计结果与分析当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。1. 首先在定义函数时,不能输入汉字。否则会程序会显示错误。2.如果要调用查询函数,增词函数,删除函数,修改函数等要在主函数前面进行申明,否则会显示警告。3.如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。4.对应该有花括弧的复合语句,忘记加花括弧。5. 所调用的函数在调用语句之后才定义,而又在调用前未加说明。 5 心得在本课程设计的设计过程中,我体会到了从事C语言课程设计工作需要严谨、认真的态度和作风,半点都不能马虎。每个细微的小细节都必须十分注意,如果不认真思考,就会出现或大或小的错误。如果没有发现前面的错误,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作。有时候,我自己觉得我写的程序非常正确,但就是编译通不过,在查询错误的过程中,面临着否认自己的过程,感觉很痛苦。在设计过程中遇到的很多问题与麻烦,通过向同学请教与讨论后基本得到了解决,让我明白了团体的力量是巨大的,平时遇到问题要勇于与同学们和老师讨论,这样才能共同进步与学习,也只有这样才能进步的更快,同时也要敢于相信自己的主见,也要考虑别人的想法和意见,不能一味的接受或者排斥,同时也不能太骄傲自大,要谦虚地向老师与同学请教,只有这样我才能不断的进步。 在反反复复的学习中,我终于作出一个简单的程序,虽然这个程序的功能非常简单,而且在实际运用中还有些不足,比如:在查询词条后,按任意键会退出词典,这点还需要改进。在进行其他功能完成后,按任意键不会退出系统。致谢 在这次C语言课程设计中,我的老师和同学给了我及大的帮助。特别是我的指导老师孙淮宁老师,还有我的C语言任课老师徐宁老师。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学! 参考文献: 【1】谭浩强.C程序设计(第三版).清华大学出版社.2005年: P219P363 【2】胡超、闫玉宝. 30天学通Visual C+项目案例开发. 电子工业出版社. 2009年:P228P273附录:源程序#include #include #include #define szWORD 50#define szSTRN 200#define szProject sizeof(struct Dictionary)char fileDictszSTRN;typedef struct Dictionary /*声明新结构体类型名为Project*/ char wordszWORD; char meanszSTRN;Project;fpos_t consult(char *word,char *mean)FILE *f=0; Project i; int r=0; fpos_t p=0; if(!word) return 0; f=fopen(fileDict,rb); /*以读的方式打开二进制文件*/ if(!f) return 0; while(!feof(f) /*指针是否指导文件末尾*/fgetpos(f, &p); r=fread(&i,szProject,1,f); /*读入数据的存放地址*/ if(r1) strcpy(fileDict,argh1); /*文件复制*/ else strcpy(fileDict,c:dict.txt); /*文件复制*/ for(;)printf(n-n-欢迎使用电子英汉小词典!n-n-1-查询词条n-2-新增词条n-3-删除词条n-4-修改词条n-5-退出词典n-n); m=getchar()-0; switch(m)case 1: Search();break; case 2: Append();break; case 3: Delete();break; case 4: Update();break; default : return 0;return 0;void Search(void) /*查询词条*/Project i; fpos_t p=0; memset(&i,0,szProject ); /*将结构体szProject的指定位置清零*/ printf(please input the word you want:); scanf(%s,i.word ); p=consult(i.word,i.mean); if(p=0)printf(sorry do not find what you want!n); return; printf(单词:%sn释义%s,i.word,i.mean );void Append(void) /*新增词条*/ Project i; FILE *f=0; fpos_t p=0; memset(&i,0,szProject); /*将结构体szProject的指定位置清零*/ printf(please input the word you want:); scanf(%s,i.word ); p=consult(i.word,0); if(p)printf(sorry do not find what you want!n); return; printf(please giving the meaning,按确认结束); fflush(stdin); /*清除标准输入设备(本程序中指键盘)的缓存*/ gets(i.mean); f=fopen(fileDict,ab); /*以向文件末尾添加数据的方式打开文件*/ fwrite(&i,szProject,1,f); /*输出数据的地址*/ fclose(f); /*关闭文件*/ printf(词条已新增n);void Delete(void) /*删除词条*/ Project i; FILE *f=0; fpos_t p=0; memset(&i,0,szProject); /*将结构体szProject的指定位置清零*/ printf(please input the word you want:); scanf(%s,i.word); p=consult(i.word,0); if(p=0)printf(sorry do not find what you want!n); return; p-; memset(&i,0,szProject); /*将结构体szProject的指定位置清零
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子板供货合同范本
- 护士长工作质量评价标准
- 焦虑症状识别及护理指导
- 肺炎临床表现及护理知识介绍
- 胆囊炎症状分析与护理知识介绍
- 儿童液体疗法讲课课件
- 急性喉炎的健康宣教
- 2025-2026学年广东省广州市高三上学期八月阶段训练地理试题(B卷)
- 创新创业营养餐厅
- 泰康幸福有约产品介绍
- 2024年12月贵州高中学业水平考试化学试卷真题(含答案详解)
- 2025三亚市劳动合同范本
- 大型储罐拆除施工方案(3篇)
- Unit 4 Helping in the community 阅读理解专项训练(含答案解析)
- 时尚传播学赵春华课件
- 中药雾化法课件
- 2025年秋期学期国开电大本科《人文英语3》一平台机考总题库珍藏版
- 护理不良事件的处理及上报流程
- 医院信息安全管理制度培训
- 口腔大出血急救
- 人工智能赋能心理健康教育
评论
0/150
提交评论