C语言电子词典报告.docx

上传人:牧羊曲112 文档编号:2036491 上传时间:2023-01-02 格式:DOCX 页数:48 大小:562.22KB
返回 下载 相关 举报
C语言电子词典报告.docx_第1页
第1页 / 共48页
C语言电子词典报告.docx_第2页
第2页 / 共48页
C语言电子词典报告.docx_第3页
第3页 / 共48页
C语言电子词典报告.docx_第4页
第4页 / 共48页
C语言电子词典报告.docx_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《C语言电子词典报告.docx》由会员分享,可在线阅读,更多相关《C语言电子词典报告.docx(48页珍藏版)》请在三一办公上搜索。

1、 北京联合大学 课 程 设 计 报 告课程名称: C语言程序设计课设项目名称: 电 子 生 词 库 软 件学院: 自动化学院 专业:信息处理与只能技术姓名: 彭霜辰(组长) 刘轩 张鑫学号: 2007100322721 2007100322712 2007100322703指导教师: 梁军 成绩:2008年7 月1日C语言程序设计实训报告-071003227班 目录第一部分 课程设计题目与要求21.问题描述22.功能要求23.大致任务分工2第二部分 电子生词库软件的设计与功能实现31.总体设计:32.数据结构43.算法设计54.程序代码设计125.测试与调试14第三部分 课程设计总结201.个

2、人总结202.结束语29附录 程序清单30附录 用户使用说明书46参考文献47第一部分 课程设计题目与要求1.问题描述题目名称:电子生词库软件主要用途:解决学生查找单词的问题,提高查找单词的速度。 2.功能要求功 能:(1)创建生词库。用文件创建一个单词库,中英文单词均有,对于英语单词,给出中文解释,对于英文单词给出中文解释。(2)显示词库。显示所有单词和单词数、所有中文单词和单词数、所有英文单词和单词数,显示英文单词是按字母小到大的顺序排列。(3)编辑词库。首先确认密码后才允许添加新词、删除旧词、修改旧词。(4)查找生祠。显示所要查找的单词和其含义。(5)实现创新功能。此项功能学生自由发挥,

3、根据本组爱好增加与本题目相关的新功能。3.大致任务分工彭霜辰:4查找生词、3编辑词库、5创建新功能、0退出系统。刘轩: 1创建生词库、2显示词库。张鑫:1创建生词库、编辑实训报告。第二部分 电子生词库软件的设计与功能实现1.总体设计:主菜单2.数据结构1. 结构体变量struct wordchar ch30;char en30;定义一个词库的结构体。struct word persN;各个单词信息的输入。struct word* pword;struct word tempword;struct word word_listN2. 无参数的函数: int mainmenu();主菜单名称。in

4、t showmenu();显示菜单函数。int editmenu();显示词库内容,功能是全部显示,显示中文或英文。int createfile();创建生词库函数。int wordadd();编辑词库中的添加,功能是添加新词。int worddel();编辑词库中的删除,功能是删除旧词。int wordfind();查找单词的函数,功能是便于查找单词。3. 利用文件作为参数完成值与值的互相传递。3.算法设计主函数及各模块流程图主函数模块流程图Createfile()函数流程图Showall()函数流程图Showen()函数流程图Showch()函数流程图wordadd()函数流程图Wordd

5、el()函数流程图Wordfind()函数流程图4.程序代码设计举例:switch(function)case W_MAINMENU:function=mainmenu();break;case W_SHOWMENU:function=showmenu();break;case W_EDITMENU:function=editmenu();break;case W_CREATEFILE:function= createfile();break;case W_SHOWALL:function=editmenu();break;case W_SHOWCH:function=editmenu();b

6、reak;case W_SHOWEN:function=editmenu();break;case W_WORDADD:function=wordadd();break;case W_WORDDEL:function=worddel();break;case W_WORDEDIT:function=wordedit();break;case W_WORDFIND:function=wordfind();break;default:printf(Error!n);function=W_EXIT;以上编码是主函数中的switch语句,根据输入数据不同,进入不同的函数,实行相应的功能。5.测试与调试

7、主菜单显示创建生词库显示子菜单显示所有显示中文显示英文编辑子菜单添加新词删除单词修改单词查找单词第三部分 课程设计总结1.个人总结C语言程序设计报告总结这个学期,最让我感到获益匪浅的就是C语言实训这门课程了。这是再学习完C语言这门课程后,对其知识的巩固与拓展。这次实训的目的就是为了巩固C语言所学基本课程;提高C语言编程的综合应用能力;以及C语言程序的编译、调试方法。这次我们组的实训内容就是电子生词库的编程。内容要求就是掌握C语言中的基本数据输入、输出; 熟练掌握C语言中的三种基本结构的使用;熟练使用C语言中的函数;熟练使用C语言中的结构体;和熟练掌握C语言中的文件使用。在当今社会的发展中,科技

8、的不断精化占据社会发展中的主要地位。当今的IT人才的急切需要也促使编程方面的软件不断更新,以至于C语言的使用变得少了,更多简洁方便的软件层出不穷。可是C语言是这些新发编程的基础,所以要想更好的融入社会,更好的使用计算机,学习好这门特殊的语言是很有必要的。出于专业的选择,和对电脑的热爱,我一直对这学期的C语言课程用心的学习。所以刚开始接触实训的时候,以为会很容易。可是开始的第一天后,我就见识到了它的难度。由于对文件知识的接触较少,练习较少,以至于刚开始操作时没有思路,不知道如何下手。在这次分组中,我和一位我们班的电脑尤其在编程方面的高手分在了同一组,这让我感到很幸运,我一定能从他那儿学到更多的东

9、西。这次的编辑任务是“电子生词库软件”,主要分为五个大部分,分别是创建新词库,显示词库,编辑词库,查找生词,创新功能。我就负责创建生词库和显示词库,由于刚开始对程序的编写毫无思路,同学就建议我先画流程图,我就从一个很简单的框架图一点点地细化,这过程中真是让我增加了不少知识同时也巩固了很多知识。最让我高兴得就是我没有用word文档画出流程图,而是用了一个新程序来构画,就是vsd文件,我学会了一个新程序的使用,这让我开心不已。在同学们的齐心协力下,和老师的帮助下,我们组终于圆满地完成了这次任务。这次的实训,让我感触最深的就是:上机实验是学习程序设计语言必不可少的实践环节,特别是C语言灵活、简洁,更

10、需要通过编程的实践来真正掌握它。所以,对于当今缺少动手实践的大学生们,这次的实训就显得更有意义。历时两周的C语言程序设计实训,已经结束了,在这几天编程的过程中暴露出了许多我自身存在的问题,同时也对自身有了很大的提高。我以前做题做事非常马虎,经常会少定义一个字母,或丢几个分号。在这几天编程的过程中的锻炼,我现在做题比以前仔细多了,会小心翼翼地去看每一个地方,会仔细地检查程序的每一个字母、标点。而且这次的编程过程让我弥补了许多知识上的缺陷,弄清楚了我不懂的地方和似是而非的地方,使我及时补上了欠缺。不光如此,我的知识通过流程图的画写和对其的不断精化,细化,已经逐步形成了一个完整的框架结构,而不再是零

11、散的知识个体,使我在使用时更加的方便。作为一名自动化专业的大学生,不仅要学习专业知识,更需要掌握专业技能。我把本次为期两周的集中实训看作是“理论与实践相结合的桥梁”。我们以班级为主体,以小组为单位,互相合作,共同探讨。经过两周的专业实训,我学到了许多知识,受益菲浅。实训是对每个同学综合能力的检验。要想做好任何事,除了自己平时要有一定的功底外,我们还需要一定的实践动手能力,操作能力。此次实训,我深深体会到了积累知识的重要性。由于平时对知识掌握得不够透彻,在编程中经常找不到思考的方向。通过这两周的实训和学习,我知道了此次实训的目的,也清楚目前自己的不足,那就是缺乏相应的知识与经验,对所学的C语言知

12、识不能够很好地运用于实践操作。但是我也有许多收获,在这次实训中,我第一次体会到编译上百条语句有多么的困难,也发现了很多以前不曾注意到的细节。相信这对我接下来所要学习专业知识会起到很有效的帮助。总之,这次实训,让我体会了与众不同的学习方法,从书本被动的学习改为自身实践的主动学习,为我将来走上社会打下了扎实的基础。再这次的实训操作中,我总结出一些属于自己的实践经验,我想,任何一个单位也不愿意聘请一位没有实践经验的员工。所以我们要从现在就开始,多多参与类似这样的锻炼,严格自我,完善自我。我相信通过我们的努力奋斗,不管在以后的社会工作中遇到多少困难,我们一定会克服困难,开拓一片属于我们自己的新天地。2

13、007100322712 刘轩C语言程序设计报告总结 经过了紧张的一学期学习,我们这一学年的C语言学习已经圆满结束了,在这学期对C语言的学习过程中,我对C语言这门课程有了初步了解,经过1个学期的学习我已经能够初步掌握C语言的基本操作,大体学会了C语言的基础知识并且能够进行一些实际的应用。在期末阶段,我们迎来了C语言的实训。C语言的实训与我们在本学期中学习C语言时并不相同。代替老师在在讲台上讲解为主的是以自己动手以及团队协作为主,以前每节课都不厌其烦指导我们的老师这时只是以提出自己的意见和传授经验为主,而这次得实训却是主要让我们根据在以前C语言课程中学到的知识来解决,而老师只是在当我们一筹莫展的

14、情况下才对我们进行些指点,可以说这次的实训才是对我们平时的C语言学习再实际上的应用的第1次试练。所以在这次实训过程中我们也懂得了在编程时不依靠老师,自主独立完成比较复杂的程序的重要性。也许我们在编程的过程中不管在什么方面都依靠老师我们也许也能编出所需要的东西,但是这却不能说明我们在进行C语言学习过程中已经完全掌握了C语言这门功课了,所以这次对C语言的实训对我们的C语言的学习有着相当重要的促进作用,因为在这次的实训过程中我们也许会因为不去依靠老师进行独自团队形式的编程而遇到相当多的困难,但是我们可以在这次得实训过程中学到在课堂上我们还没有完全学会的东西,从而使我们在C语言的学习上更进一步。这次实

15、训我们组分到的题目是电子生词库这个程序。这个程序的主要用途是解决同学们在平时学习C语言过程中应为编程出错而且在进行错误查询时其中的单词不认识的问题,有效避在C语言学习过程中的的种种不便。与以前在课堂上编辑的C语言相比,这次我们接到的题目更具有实用性,在程序上的编写更为复杂,对我们的C语言学习更是一种考察。在我刚刚开始进行编程时,老师用上学期的学章的成果来对我们讲解实训编程需要注意的事项和格式,当我刚刚看到那厚厚的一摞复印上一个个密密麻麻的自负的时候我的心里有些发慌了,因为那摞复印纸居然有十多页那么厚,就光编码就有45页,我感到任务相当的艰巨,我不禁的为我的实训成绩担忧,但是老师却对我们说其实这

16、没什么,只是把这2周每个小组成员所完成的任务进行下综合,并且写出在这2个星期进行编程的实际体会就行了,听到这我悬着的心落下了一半,因为那密密麻麻的程序编码深深地印在了我的脑子里,一想起来就有些担心,终于老师对我们讲解完了我们进行我们的自助编程,在编程过程中我逐渐发现其实那厚厚的一摞果然如老师说的那样只要一点点地编我们也能编出来的,虽然在编程过程中因为编程出错而产生的麻烦总是在困扰着我们,但是在我们逐渐的询问老师的过程中都一一解决了。我觉得在这次的实训过程中我们所得到的要比我们所付出的要多的多,因为在这次的实训过程中我们不仅仅学会了C语言的基本编程,我们还学会了C语言的实际应用,还有在我们实际独

17、自完成一个编程任务时我们该如何进行我们的编程任务,才能使我们在编程过程中变得得心应手、不慌不乱,同时在这次实训中我们收获的还有在我们编程编出成果的喜悦和与团队合作的重要性,随意说这次得实训对我们的帮助是相当大的。2007100322703 张鑫C语言程序设计报告总结c语言程序设计课程教学的基本内容是c语言编程基础,基本方法和基本操作技能等。其内容体系结构包括两个方面的层次:一是c语言编程基础,主要包括算法的基本概念、c语言基本数据类型、运算符与表达式、程序三大控制结构(顺序、选择、循环)等;二是c语言编程提高,主要包括c语言数组、函数、编译预处理、指针、结构体与共用体及文件等内容。两个层次相互

18、联系,编成基础为编程提高服务,编成提高是本课程的主体。两个层次相互依赖,构成了一个逻辑严密、结构完整的坑成内容体系。教学中采用“任务驱动”的方法,以实例为先导,注重在应用学习,以有趣的实际应用例子来提高学习者的兴趣,帮助学生理解和接受枯燥的概念和规则。在这次的实训中,我很荣幸的被选为了本小组的组长,由我来分配小组成员的工作。也就是这样,我遇到了实训中的第一个问题按各人情况分工。这项工作看起来很容易,但其实并不简单,我要根据每人的不同情况有不同的分配,还要做到合理有序,这的确不简单。 这次实训让我们的知识更加巩固,让我们的知识面更加广泛,让我们更加了解C语言程序设计这门课的教学内容,这门课的基本

19、内容包括C语言编程基础、基本方法和基本操作技能等等,其内容体系结构包括两个方面的层次:一是C语言编程基础,主要包括算法的基本概念、C基本数据类型、运算符与表达式、程序三大控制结构(顺序、选择、循环)等;二是C语言编程的提高,主要包括C语言数组、函数、编译预处理、指针、结构体与共用体积文件等内容。两个层次相互联系,编程基础为编程提高服务,编程提高才是C语言的主体。两个层次相互依赖,构成了一个逻辑严密、结构完整的C语言课,并让我们重分了解了C语言课程的精髓。通过这次实训我们增进了同学之间,老师和同学之间的友谊,在这短短的两星期中,我们一起讨论问题;一起解决问题;一起探讨问题;一起忍受着夏日的酷暑高

20、温,其中我们也不知道留下了多少汗水。当同学们一起亲手制作的系统诞生之时,我们是兴奋的;当同学们皱着眉头找不到那的错误的时候,我们是着急的;总之,C语言让我们既兴奋又失落,然后从失落中又一次兴奋。在这一次次辛酸与欢乐中我觉得实训不过是一种让我们更成熟的桥,他让我们的大学生活更加精彩,让我们在步上社会之前先体验了一次什么叫工作的苦,什么叫收获的甜。在这次的实训中,我们遇到了不少困难,有易解决的,也有难解决的,但不管它是什么样的错误,在我们小组的配合下,我们都成功地突破了他,没有使之成为我们的阻碍,从而在比较顺利的情况下,圆满地完成了这次的实训工作。C语言程序设计试验可乘让我们收获良多:它使我们学会

21、了使用visio软件绘制流程图,它使我们进一步的夯实了C语言课上所学的基础知识,更重要的是,它使我们学会了团队合作精神,这是什么物质也换不来的可贵的“财产”。在以后的学习生活中,我们会继续发扬这样的精神,使我们的集体更团结,使我们更好的工作与学习,让我们以后的学习和生活更上一层楼。2.结束语感谢在编程过程中梁老师给予的帮助,和机房老师为我们创造的舒适的环境,以及在编程中帮助我们的同学。这次的实训让我们受益匪浅。附录 程序清单#include #include #include #include #define N 100#define MAX_PATH 100#define PATH .dat

22、astruct wordchar ch30;char en30;int mainmenu();int showmenu();int editmenu();int createfile();int wordadd();int worddel();int wordedit();int wordfind();int find(struct word* s,int tn,char* w);enumW_MAINMENU,W_SHOWMENU,W_EDITMENU,W_CREATEFILE,W_SHOWALL,W_SHOWCH,W_SHOWEN,W_WORDADD,W_WORDDEL,W_WORDEDIT

23、,W_WORDFIND,W_EXIT,;int function=W_MAINMENU;void main()for(;)switch(function)case W_MAINMENU:function=mainmenu();break;case W_SHOWMENU:function=showmenu();break;case W_EDITMENU:function=editmenu();break;case W_CREATEFILE:function= createfile();break;case W_SHOWALL:function=editmenu();break;case W_SH

24、OWCH:function=editmenu();break;case W_SHOWEN:function=editmenu();break;case W_WORDADD:function=wordadd();break;case W_WORDDEL:function=worddel();break;case W_WORDEDIT:function=wordedit();break;case W_WORDFIND:function=wordfind();break;default:printf(Error!n);function=W_EXIT;if(function=W_EXIT) break

25、;int mainmenu()char key;for(;)system(cls);printf(|-|n);printf(| 请输入选项编号(0-7): |n);printf(|-|n);printf(| 1-创建生词库 |n);printf(| 2-显示词库. |n);printf(| 3-编辑词库. |n);printf(| 4-查找生词 |n);printf(| 5-创新功能. |n);printf(| 0-退出系统 |n);printf(|-|n);/if(chuangxin=open)/printf(目前被选入的词库为:%s,)printf(n);key=getch();switc

26、h(key)case 1:return W_CREATEFILE;case 2:return W_SHOWMENU;case 3:return W_EDITMENU;case 4:return W_WORDFIND;case 5:return 12345;case 0:return W_EXIT;default :printf(n%c为非法选项!n,key);printf(n要继续选择吗(Y/N)?n);for(;)key=getch( );switch(key)case Y:return W_MAINMENU;case y:return W_MAINMENU;case N:return W_

27、EXIT;case n:return W_EXIT;int showmenu()char key;for(;)system(cls);printf(|-|n);printf(| 请输入选项编号(0-4): |n);printf(|-|n);printf(| 1-显示所有单词 |n);printf(| 2-显示中文单词 |n);printf(| 3-显示英文单词 |n);printf(| 4-返回 |n);printf(| 0-退出 |n);printf(|-|n);/if(chuangxin=open)/printf(目前被选入的词库为:%s,)printf(n);key=getch();sw

28、itch(key)case 1:return W_SHOWALL;case 2:return W_SHOWCH;case 3:return W_EDITMENU;case 4:return W_MAINMENU;case 0:return W_EXIT;default :printf(n%c为非法选项!n,key);printf(n要继续选择吗(Y/N)?n);for(;)key=getch( );switch(key)case Y:return W_SHOWMENU;case y:return W_SHOWMENU;case N:return W_EXIT;case n:return W_E

29、XIT;int editmenu()char key;for(;)system(cls);printf(|-|n);printf(| 请输入选项编号(0-4): |n);printf(|-|n);printf(| 1-添加新词 |n);printf(| 2-删除旧词 |n);printf(| 3-修改旧词 |n);printf(| 4-返回 |n);printf(| 0-退出 |n);printf(|-|n);/if(chuangxin=open)/printf(目前被选入的词库为:%s,)printf(n);key=getch();switch(key)case 1:return W_WOR

30、DADD;case 2:return W_WORDDEL;case 3:return W_WORDEDIT;case 4:return W_MAINMENU;case 0:return W_EXIT;default :printf(n%c为非法选项!n,key);printf(n要继续选择吗(Y/N)?n);for(;)key=getch( );switch(key)case Y:return W_EDITMENU;case y:return W_EDITMENU;case N:return W_EXIT;case n:return W_EXIT;int createfile()struct

31、word persN; FILE *fp; int i, n; fp=fopen(d:exp5-2.txt, wb); if(fp=NULL) printf(nt 打开文件失败!); printf(nt 欲建立的生词库的单词数n (n%d), N); scanf(%d,&n); printf(t 将输入%d个记录:n,n); for(i=0; in; i+) printf(t 请输入第%d个记录:n,i+1); printf(t 英文单词、相应中文解释:n); scanf(%s%s, persi.en, persi.ch); fwrite(&persi, sizeof(struct word)

32、, 1, fp); fclose(fp);return W_CREATEFILE;int showall() struct word pers; FILE *fp; int i=0; fp=fopen(d:exp5-2.txt, rb); if(fp=NULL) printf(nt 打开文件失败!); printf(n编号 英文 中文 n); fread(&pers, sizeof(struct word), 1, fp); while(feof(fp)=0) printf(%s %s , pers.en, pers.ch); fread(&pers, sizeof(struct word),

33、 1, fp); i+; if(i=0) printf(nt文件中无记录!); else printf(nt文件中有%d个记录!, i); fclose(fp);return W_SHOWALL;intshowch()struct word pers; FILE *fp; int i=0; fp=fopen(d:exp5-2.txt, rb); if(fp=NULL) printf(nt 打开文件失败!); printf(n编号 中文 n); fread(&pers, sizeof(struct word), 1, fp); while(feof(fp)=0) printf(%s %s , p

34、ers.ch); fread(&pers, sizeof(struct word), 1, fp); i+; if(i=0) printf(nt文件中无记录!); else printf(nt文件中有%d个记录!, i); fclose(fp);return W_SHOWCH;int showen()struct word pers; FILE *fp; int i=0; fp=fopen(d:exp5-2.txt, rb); if(fp=NULL) printf(nt 打开文件失败!); printf(n编号 英文 n); fread(&pers, sizeof(struct word),

35、1, fp); while(feof(fp)=0) printf(%s , pers.en); fread(&pers, sizeof(struct word), 1, fp); i+; if(i=0) printf(nt文件中无记录!); else printf(nt文件中有%d个记录!, i); fclose(fp);return W_SHOWEN;/W_WORDADDint wordadd()FILE* fp;char key;int i;int tn;struct word* pword;struct word tempword;struct word word_listN;int n

36、;char filenameMAX_PATH;pword=word_list;printf(请输入需要增加单词的词库名:n);scanf(%s,&filename);fp=fopen(data.x,rb);if(fp=NULL)printf(未找到词库,是否继续?(Y/N);key=getch();switch(key)case Y:return W_WORDADD;case y:return W_WORDADD;case N:return W_EDITMENU;case n:return W_EDITMENU;for(i=0;feof(fp)=0;i+)fread(pword,sizeof(struct word),1,fp);pword+;n=i;fclose(fp);printf(词库导入成功!);/if(chuangxin=null)/printf(请输入需要增加的单词:n);scanf(%s%s,&tempword.en,&tempword.ch);for(i=1;i0)tn=i+1;break;pword=word_list;fopen(data.x,wb);for(i=1;itn;i+)fwrite(pword,sizeof(struct word),1,fp);pword+

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号