前言《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,课程设计的课题比平时的习题复杂得多,也更接近实际。
课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。
为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。
学习委员将课程设计报告与磁盘(缺一不可)收齐后交指导老师。
课程要求一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、基本情况课程类别:必修课课程学分:1学分课程学时:1周课程对象:电气工程0781、0782、0783、0784、0785、0786三、时间安排四、调试过程规范化要求1)需要分析分析系统功能需求以及用户操作流程。
2)概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。
3)详细设计定义数据储存结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。
4)代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。
源程序要求书写规范,结构清晰。
重点函数的重点变量。
重点功能部分均要求给出清晰的程序注释。
5)程序调试程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。
如果程序不能正常进行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。
如果程序能够基本正确地运行,可考虑增加若干基本的容错功能;另外尽量对现有的算法给出改进方案,并比较不同算法之间的优缺点。
五、设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。
课程设计报告的内容应包括以下五个部分:1)需求分析:包括设计题目、设计要求以及系统功能需求分析;概要设计:包括系统总体设计框架和系统功能模块图;2)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;3)主要源程序代码:包括存储结构设计说明,以及完整源程序清单;4)调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);5)总结:包括课程设计过程中的学习体会和收获、对c语言和本次课程设计的认识以及自己的建议等内容。
书写格式严格按所附要求书写。
附1:●课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
●正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
●正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。
正文总字数要求在5000字以上(不含程序原代码)。
目录一.封面 -------------------------------------------------------------------------1二.前言--------------------------------------------------------------------------2三.课程要求--------------------------------------------------------------------3四.需要分析--------------------------------------------------------------------7五.详细设计--------------------------------------------------------------------8六. 流程图---------------------------------------------------------------------10七. 调试分析-------------------------------------------------------------------12八. 心得体会------------------------------------------------------------------13九. 附录(源程序清单)----------------------------------------------------14【需要分析】课题三:电子英汉词典设计一、问题描述:英汉词典作为一个常用的学习工具,是我们经常要使用的。
该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。
二、功能描述:1)本词典采用一个包含N个数据的结构体数组,每个数据的结构应当包括:英文单词、词性、拼读音标、中文(汉语拼音)。
2)对单词和释义字符串长度的限定分别为不少于50个词条。
3)本系统显示这样的菜单:--------电子英汉词典--------1、输入新词汇2、删除词汇3、查找词汇4、修改词汇信息5、退出系统请选择系统功能项(1…5):三、算法提示:1、数据结构:结构体数组2、数据库结构:该系统的基本数据库如下表。
英文词性音标中文1char char char char四、测试数据:要求被选用的词条有50个左右,以中学的单词为主。
对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。
【详细设计】一、总体方案的选定:在了解该系统的功能后,可以通过运用函数、编译语句、数据类型来实现。
由于数据多,数据结构相似的特点,自然的想到用数组实现数据的存储,且总体数据结构应用文件的数据。
文件类型为结构体数据,数据库结构用文件来实现。
二、概要设计程序的模块组成及各个函数的功能:1.程序的模块组成:主函数: main();显示菜单函数:caidan();1〕查找单词函数:chaxun();2〕删除单词函数:zhuxiao();3〕添加单词函数:在caidan()中;读取字符函数:getch();2.各函数的主要功能:显示菜单函数:显示各菜单,并有添加功能。
查找单词函数:输入需要查找的单词,并输出单词的意思。
删除单词函数:输入需要的删除的单词,回车就能删除。
三、程序的抽象数据类型定义:词典的结构体数组:单词{ 单词;中文解释;}四、相关数据类型:英汉词典结构体数组struct hk{Char zhang[11];/*单词的长度,限度10个字母*/Char mi[22]/*中文解释的长度,限度10个汉字*/struct hk next;/*建立链表用的后指针*/}【流程图】(1)统计函数的下属子功能函数及调用示意图:(2)函数的下属子功能函数及其调用示意图:【调试分析】1、程序编译成功之后开始调试:1)根据提示将单词“word”添加入库,在效果查看中存在该单词则添加成功。
2)对词进行保存3)对存在的单词进行删除,在效果查看中不存在该单词则删除成功。
4)对已经存在的单词查询,能查询到则说明单词保存成功。
2.对结果进行分析:只对单词进行表面删除,而实质上并未删除。
应该将该链表中对应的该单词的节点删除。
【心得体会】课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说是无处不在。
因此,作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。
回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,经过一周的课程设计,我学到了许多,不仅巩固了以前所学过的知识,而且学到了很多在书上所没有学到过的知识,使我自己对C语言有了重新的认识,觉得它十分的重要,但掌握它又不是一件容易的事。
只要通过自己不停的思考,不断的上机实践。
才能够比较熟练的掌握好,在其中我们遇到了比较多的困难,因为其中有些知识我们并没有学到过,要自己去查找资料来完成。
在设计过程中遇到问题,可以说是困难重重,因为毕竟是第一次做的,难免会遇到各种各样的问题,同时在设计过程中发现了自己的不足之处,对以前的所学过的知识理解的不够深刻,掌握的不够牢固,比如说结构体……通过这次课程设计之后,觉得以前学过的知识要重新温习。
刚开始听说我们要设计英汉字典时心里没有一点底,毕竟C语言才刚学一学期就要编写如此复杂的应用程序。
但参考了许多资料和与几个有经验的学长们讨论后,编写思路漫漫清楚,开始了解它的基本方式和操作方法。
在不太熟悉的部分,我们能够充分体会到自己的自学能力,并发挥它,以及在设计过程中的团队作用,提高自己解决问题的能力。
在设计程序是也增加了自己的实践能力,通过翻阅有关文献获得了些自己原来不了解的知识。
从接触C语言到了解C语言是一个过程,是自身学习的过程。
俗话说师傅领进门,修行靠自身。
在编写过程中遇到的不解和麻烦都基本上是通过自身的反复琢磨和学长的帮助而解决的。
通过这段时间的课程设计,我认识到C语言是一门比较难的课程。
需要多花时间上机练习,这次的程序训练培养了我的实际分析问题的能力,实际编程能力。
随着程序的一步步完善,自己也在慢慢进步,达到了预期目的。
这次课程设计终于完成了,在设计中遇到了许多的问题,但在王颖老师的指导下,终于解决,同时在王颖老师的身上我学到了很多实用的知识。
在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次感谢。