英汉电子词典C语言课程设计.doc_第1页
英汉电子词典C语言课程设计.doc_第2页
英汉电子词典C语言课程设计.doc_第3页
英汉电子词典C语言课程设计.doc_第4页
英汉电子词典C语言课程设计.doc_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

C语言程序设计 课程设计(论文)题目: 英汉电子词典 院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 课程设计(报告)任务及评语院(系):软件学院 教研室:软件教研窒学 号学生姓名专业班级程序设计(报告)题目程序设计(报告)任务程序设计的任务与要求:(1)掌握C语言编程的基础知识。(2)较熟练地编写C语言应用程序。(3)了解C语言的常用标准函数、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2009 年 1 月 10 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1程序功能介绍22.2程序整体设计说明22.2.1设计思路22.2.2数据结构设计及用法说明32.2.3程序结构(流程图)4.2.4.4各模块的功能及程序说明52.2.5程序结果6输出结果是:delete word success82.3程序源代码及注释8第3章 课程设计总结16参考资料17第1章 课程设计的目的与要求1.1 课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序设计语言(C)课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力1.2 课程设计的实验环境硬件要求能运行Windows 2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。1.3 课程设计的预备知识熟悉C语言及C语言开发工具。1.4 课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告第2章 课程设计内容2.1程序功能介绍英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。对单词和释义字符串长度的限定分别为不少于10个与15个字符,词条数限定为不多于1000条。2.2程序整体设计说明程序共有五个子函数和一个主函数。1search是查找函数,用户通过系统提示输入要查找的单词,只要单词库中含有此单词便能找到相应的中文解释。这个查找函数使用的是从头到尾的线性查找发,虽然查找效率在数据很大上午时候无法容忍的。但是因为这里涉及的数据量很小,使用线性查找对系统性能没有很大上午损害。2.add是增加函数,用户可通过此函数来增加单词库单词的数量。3.modify是修改函数,程序提示用户输入要修改的单词,还是用线性查找的方法查找相应的纪录,如果找到,则提示输入新单词及中文解释。4.delete是删除函数,程序提示用户输入要删除的单词,使用线性查找的方法找到相应的纪录,如果找到,提示用户确认删除才做。在得到确认后,删除这个单词的纪录。5.主程序通过无限循环来接收输入的命令,并且根据命令调用相应的函数处理。2.2.1设计思路英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。1、在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。2、词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。3、对单词和释义字符串长度的限定分别为不少于10个与15个字符,词条数限定为不多于1000条。4、采用菜单工作方式。在一个操作执行之后,程序询问是否继续执行该操作。如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。2.2.2数据结构设计及用法说明 1 建立单词数据库(包含英文单词、中文意思解释)2 用fopen函数访问单词数据库文件。3 还用到标准的输出输入函数,按需输出输入或删除数据。 进入菜单页面以后,有四个选项,1.是查找单词;2.是增加单词;3.修改单词;4.,删除单词;5.退出菜单进入菜单:输入1 ,按回车就会出现提示语,然后输入你想查询的单词,并按回车。如果程序里面存有这个单词就会输出这个单词和它的中文意思。如果不存在就提示你“no this word”。输入2,按回车就进入增词的程序了。如果里面存储的单词达到200个了,就会提醒你“the dictionaryis full”。如果没有超过,那就引导你输入你想增加的单词及其意思。这样就增加了单词。输入4,回车。在出现“please press the word you want to update”后面输进你想修改的单词,然后根据提示语输入单词及其意思,之后就会告诉你修改完成了。2.2.3程序结构(流程图)显示菜单输入选项开始返回?返回?返回?执行查找函数Search( )执行添加函数Creat( )执行删除函数Delete( )执行break语句退出= =1= =2= =3= =4= =5YYYNNN.2.4.4各模块的功能及程序说明采用菜单工作方式。在一个操作执行之后,程序询问是否继续执行该操作。如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。查询单词:输入想要查找的单词单词库有此词?输出找不到此词N输出此词Y添加单词功能模块输入你想添加的单词单词库有此词吗?添加有错Y添加成功N删除单词功能模块输入想要删除的单词词库有此词吗?删除不成功N删除成功Y2.2.5程序结果查询单词:输入:preciatian屏幕显示:输出结果:sorry do not find what you want 添加单词:选择2功能输入你想添加的单词:Hello输入它的意思:你好屏幕显示: 输出结果是:add word success三:删除单词:输入你想要删除的单词:Hello屏幕显示:输出结果是:delete word success 2.3程序源代码及注释#include #include #include #include #include void Search() /*查找单词*/ FILE *fp; char insert20; char word40; printf(Please input the word you want:n); ges(insert); fp=fopen(wordcage,r); if(fp=NULL);/*没有找到文件*/ printf(nnSorry do not find what you want.nn); fclose(fp); return ;while (!feof(fp)/*查询单词词库*/ fread(&wordcage,sizeof( wordcage),1,fp); printf(%s,word); fclose(fp); void addword()/*添加单词*/ FILE *fp; fp=fopen(wordcage,r);/*以读方式打开文件*/ if(fp=NULL) fp=fopen(wordcage,w);/*以写方式打开文件*/ else /*如果有单词添加*/ fclose(fp); fp=fopen(wordcage,a);/*以追加方式打开文件*/ char insert20; printf(Inser the new word:n); gets(insert);printf(Givinig the meaning:n); scanf(%s,word); fclose(fp);printf(nnadd word success.nn); void worddel(); FILE *fp; Word *head,*p,*q; char word20; fp=fopen(Wordcage,rb);/*读方式打开文件*/ if(fp=NULL) printf(Error!); fclose(fp); return; head=p=q=(Word*)malloc(sizeof(Word);/*将文件内容放入链表*/ while(!feof(fp) q=p; p=(Word*)malloc(sizeof(Word); fread(p,sizeof(Word),1,fp); /*读记录*/ q-next=p;/*新记录插入到链表的尾*/ p-next=NULL;/*最后一个结点的后继为空*/ fclose(fp); clrscr(); printf(Input the word: );/*输入要删除的单词*/ gets(word); /*输入单词*/ p=head; while(p!=NULL)/*按名字查找要删除的图书*/if(strcmp(p-name,word)=0)/*找到要删除的单词*/ if(p=head) /*如果是第一个结点*/ head=head-next; else q-next=p-next;/*不是第一个结点*/ break; q=p; /*指针后移*/ p=p-next; fp=fopen(Word.txt,wb);/*删除后从链表的头开始重新保存*/ while(head!=NULL) fwrite(head,sizeof(Word),1,fp);/*块写*/ head=head-next; fclose(fp); clrscr(); void cleanscrean() printf(nnnnnnnnnnnnnnnnnnnnnnnn); int main() int numble; MENU: printf(*MENU*nn); /*显示主菜单*/ printf(nn); printf(nn); printf( nn); printf(nn); printf(nn);printf(nn);printf(nn); printf(*n); do printf(Please choice form 1 to 7:n); /*选择你所要的功能*/ scanf(%d,&numble); while(numble8); switch(numble) case 1: Search(); goto MENU; case 2: addword(); goto MENU; case 3: worddel(); goto MENU; case 4: cleanscrean();return 0; case 5: break;case 6: goto MENU;break;case 7:break; return 0; #include#includemain() static int n=32;char m; struct char eng10; char ci15; char yin10; char chi30; word1000=good,a,goud,hao,aide,n,eid,zhushou,bone,n,boun,gutou,ball,n,bo:,qiu,cat,n,cat,mao,cattle,n,katl,niu,clean,adj+d+v,kli:n,1.gan jin 2.gongzheng,a,num,ei,yi ge,finally,ad,fainens,zuizhong,fine,adj+ad+v+n,fain,1.shushi2.hao,finish,v+n,finish,wancheng,girl,n,ge:l,nvhai,five,v,giv,gei,go,n+v,gou,zou,help,int+n,help,bangzhu,he,pron,hi:,ta,here,ad+ini,hie,zheli,high,aadj+ad+n,hai,gao,ice,n,ais,bing,idea,n,aidie,zhuyi,imagine,v,imadgin,xiangxiang,in,v,in:,zailimian,kill,v,kil,shasi,king,n,king,guowang,kiss,v+n,kis,wen,knight,n+v,nait,qishi,late,adj+ad,leit,1.chi de 2.yihoude,left,adj+ad+n,left,zuobian,line,n+v,lain,xian,name,n+v,neim,mingzi,mission,v,mision,rengwu; clrscr();loop:for(;) clrscr(); printf(nt *Please make a choise*n); printf(nnt 1.Add the new wordn); printf(t 2.Del wordn); printf(t 3.find wordn); printf(t 4.Exit the processnn); printf( Please choose 14 to entern); printf( Please press the key:); scanf(%c,&m); switch(m) case 1: char j10,k15,l10,p30;+n;printf(n Add new word);printf(nn please enter the Danci: );scanf( %s,j);printf(n Enter the Cixing:);scanf( %s,k);printf(n Enter the Yingbiao:);scanf( %s,l);printf(n Enter the Chinese:);scanf( %s,p); strcpy(wordn.eng,j); strcpy(wordn.ci,k); strcpy(wordn.yin,l); strcpy(wordn.chi,p);printf(n Please check it:); printf(nn English. %s,wordn.eng); printf(nn Cixing: %s, wordn.ci); printf(nn Yinbiao: %s, wordn.yin); printf(nn Chinese: %snn,wordn.chi);printf(n Please press any key with Enter key back!);scanf(%s,m); goto loop;第3章 课程设计总结然这次的课程设计有些功能实现的不是很好,总的来说这次课程设计效果还是可以的,在短短的两天时间内,我们看的书的数量是非常多的,很多没见过的函数都学了,但是自学确实是很难,很多函数虽然用的语法没错,但是不能应用自如,为自己所用。这只能说明自己还需加把努力,希望在以后的学习中得到大的进步。通过课程设计使握进一步掌握和利用C语言进行程设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;而且通过这次课程设计让我学会了认真的精神态度是多么的重要,认真思考对学

温馨提示

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

评论

0/150

提交评论