北京联合大学课程设计报告课程名称:C语言程序设计课设项目名称:电子生词库学院:自动化学院专业:姓名:学号:指导教师:鞠慧敏成绩:2010年6月18日目录第1部分课程设计题目与要求.......................................11.问题描述.....................................................12.功能要求.....................................................13.任务分工.....................................................1第2部分《电子生词库系统》的设计与功能实现.......................21.总体设计.....................................................22.数据结构.....................................................23.算法设计.....................................................24.程序代码设计.................................................85.测试与调试...................................................8第3部分课程设计总结.............................................91.个人总结.....................................................92.结束语.....................................................12附录Ⅰ程序清单..................................................13附录Ⅱ用户使用说明书............................................34参考文献.........................................................341第1部分课程设计题目与要求1.问题描述根据需要,建立属于自己的生词库,使用起来方便。生词选自本人常需要的单词中,对于英语单词,给出中文含义,对于中文单词给出英文含义。2.功能要求循环显示所有菜单。在主菜单中选择1:创建生词库。用文件建立一个单词库,中英文单词均有,对于英语单词,给出中文件事,对于中文单词给出英文解释。在主菜单中选择2:进入子菜单,并显示词库。显示是哟有单词和单词数、所有中文单词和单词数、所有英文单词和单词数,显示英文单词时按字母从小到大的顺序排列。在子菜单选择4,返回主菜单;选择0,推出整个系统。在主菜单中选择3:首先确认密码。然后进入子菜单,并编辑词库,如添加新词、删除旧词、修改旧词。在子菜单中选择4,返回主菜单,选择0,推出整个程序。在主菜单中选择4:查找生词。显示所要查找的单词和其含义。在主菜单中选择5:记忆单词。在主菜单中选择0:显示结束信息。按任意键后退出主序。3.任务分工创建生词库、显示词库由制作,编辑生词、查找生词由制作,记忆单词、显示结束信息由制作。2第2部分《电子生词库系统》的设计与功能实现1.总体设计主函数(main)1、创建单词库:voidmycreate2、显示单词库:voidmydisplay3、编辑单词库:voidmybianji(1)增加单词:voidadd(2)删除单词:voidmydelete(3)修改单词:voiddele4、查找单词:voidmysearch5单词记忆:voidmynew2.数据结构structenglish{charword[20];charexplain[20];};structchinese{charexplain[20];charword[20];};3.算法设计采用模块化的思想,按照“自顶向下,逐步细化”的原则设计算法。主模块:3主模块显示词库编辑词库创建生词库查找生词单词记忆写文件显示所有单词读取文件4主函数:开始显示主菜单输入choose的值choose=?程序结束调用mycreat调用mysearch调用mymodify调用mydisplay调用mydelete调用mybianji调用myadd非法选项继续吗?yesnoyesno=n或y或Y或Nyesno=y或Y结束真假其他5创建函数:入口输入1输入E或C进入文件创建单词存记录出口真假6显示函数:编辑函数:输入输入密码输入0到4选择功能返回主菜单添加单词修改单词删除单词退出程序结束显示子菜单输入显示子菜单输入0到4选择功能返回主菜单显示所有单词显示英文单词显示中文单词退出程序结束7查找函数:单词记忆:开始回答正确输入英文解释回答错误关闭程序入口输入查询方式按英文查按中文查调用sch_num调用sch_name出口提示非法ec假84.程序代码设计voidmyprint1();voidmode();voidmodc();voidmysearch();voidsch_chinese();voidsch_english();voidmynew();oidmyprint2();voidmyprint3();voidmycreate();voidmycreatee();voidmycreatec();voidmydisplay();voidmydisplaya();voidmydisplaye();voidmydisplayc();voidmybianji();voidmydelete();voiddele();voiddelc();voidmyadd();voidadde();voidaddc();voidmymodify();5.测试与调试本函数在同学的设计下第一次编译共有65个错误,其中有函数输入错误、函数重复、缺少标点等错误。在同学一起的努力下将其中的错误逐一的解决掉。9第3部分课程设计总结1.个人总结陶冶的总结:为期一星期的C语言实训已经基本结束,但是给我的影响是相当大的。通过这次实训,使我明白C语言这门课程光仅仅是听课是远远不够的,上机训练也不容忽视。通过上机训练,才能够明白自己知识的不足,才能够有的放矢,更加深刻的理解C语言中的知识点。通过实训,我找到了许多知识漏点,学到了很多以前不懂的知识,以前认为自己已经懂了的知识点也理解更加深刻了。尤其是遇到了自己当时不知道如何编写的C语言题目如何编写,通过自己的学习和同同学的交流后,试编和改错,最后能够顺利的编写出来,带来的也有成就感。并增加了我们对C语言的兴趣和学好C语言的信心。与同学们交流的过程中,了解了程序的多种解决方法,知道了不同编写方法有不同的特点。总结C语言实训的几个重要作用:1.加深对课堂讲授内容的理解课堂上要讲授许多关于C语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用C语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握C语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差。学习C语言不能停留在学习它的语法规则,而是利用学到的知识编写C语言程序,解决实际问题。即把C语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握C语言、自己编写的程序是否能够正确地解题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对C语言的理解和程序开发能力。2.熟悉程序开发环境、学习计算机系统的操作方法一个C语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓环境就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握C语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。3.学习上机调试程序完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。通过这次为数不多的几天计算机实践学习,我们更好的了解了一些关于C语言的知识,理解巩固了我们C语言的理论知识。C语言这门课程对于我们应用电子专业的同学也相当重要,我们会再将来继续学习并熟悉这门课程。10张雪冰个人总结:忙碌了一个多星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,要解决我们的问题,对他们来说只是smallcase。在设计这个程序时,我们刚开始是根据老师给我们提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,计算是个关键和难点,我们也查了相应的资料,但是它上面用得是坐标来做的,所以为了方便设计程序,我们也改为坐标来做的,这样计算问题解决了。接下去就是按键问题,我们的资料是用鼠标做的,所以关于按键这个函数就只能我们自己设计,还好手头有类似的资料,经过自己的反复尝试以及与与同学的讨论,这也不难,最好还是被我们搞定了。最后就是闪烁,这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,要确定好它的位置,但是这些只要你自己愿意去尝试,问题都可以迎刃而解的。从这一个多星期的设计过程中,我看到了大家的拼搏与努力,也让我知道团队精神得难能可贵,尽管一年下来大家不怎么有多大接触,但是彼此之间的友谊已经在我们心里扎根生底,在遇到问题时,我们会共同进退,每个人都很慷慨不会因为是通过自己艰辛劳动设计出来的东西而不准他人剽窃了。总之,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会。林凯楠的个人总结:两周的C语言实训终于完成了,可以说这次的实训还是很成功的。虽然我们在实训过程中遇到了不少困难,但最终完成了电子声词库的所有要求内容以及创新部分。按照一个星期前的现在,当听到老师布置给我们的这个题目时,我们都很诧异了,这么难的题目我们怎么搞的定呢,我们都开始抱怨,抗议,可是一切都是徒劳,我们只能尽我们自己最大的努力把程序给写出来。首先是主框架部分。对于我们这些刚接触编程的学生来说,开始的部分最为困难。拿到题目后,我们组对题目进行了讨论,然后分组。虽然我的c语言学的并不扎实,期末成11绩也并不理想。但我希望通过这次的实训真正学到东西。于是我自告奋勇,选择了比较难的两个大部分,编辑和查找。也算是对自己的一个挑战。之后,我便按照题目的要求创建函数,定义变量,进行查找等等。经过第一便得尝试,我发现了很多问题。字符串不会比较,文件打不开等等。一下出现了这么多错误,而我自己又查不出错误在哪。一时间没有主意。后来在同学的帮助下,我尝试先按照题目要求画出了流程图,再根据流程图来编程。我发现,有了流程图的帮助让我找到了程序中很多的错误。同时我发现以前编的程序逻辑上很混乱。而流程图恰好帮我整理的思路。这便是我在这次实训中的第一个收获。经过了3天,我所负责的部分已经有了大概的框架。我