您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《C程序设计》课程设计报告格式
南京晓庄学院信息技术学院《C语言程序设计》课程设计报告题目:单项选择题标准化考试系统专业:计算机科学与技术班级:2008级2班学号:08413232姓名:黄霖指导教师:杨立林成绩:二00九年二月十六日摘要本次课题是设计一个单项选择题标准化考试系统,采用C语言编译,其中包含了菜单选择模块,试题操作模块等,各个功能模块都用函数来实现,通过模块整合成一个完整的系统。程序实现了用文件保存试题库;试题录入;试题抽取;答题;自动判卷的功能,同时实现一些新功能。报告中包含了设计目的、设计任务、程序设计流程图、模块功能说明、开发过程与调试以及源程序。关键字:单项选择题考试系统;文件保存;结构体;指针;循环结构。目录摘要.........................................................................................................1关键字.........................................................................................................1设计目的....................................................................................................1设计任务....................................................................................................1总体设计....................................................................................................1详细设计....................................................................................................2开发过程与调试........................................................................................4总结与体会………………………………………………………………4第1页共16页1.设计目的(1)进一步巩固和复习C语言所学基本课程;(2)培养结构化程序、模块化程序设计的方法和能力;(3)提高分析问题、解决问题以及综合利用C语言进行程序设计的能力;(4)熟练掌握应用MicrosoftVisualC++6.0的方法;(5)学会软件开发的基本方法以及C语言程序的编译、调试方法;(6)熟练掌握C语言中关于文件的建立过程和程序,掌握文件的保存、录入以及使用文本菜单界面的程序。。2.设计任务(1)用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案);(2)试题录入:可随时增加试题到试题库中;(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入);(4)答题:用户可实现输入自己的答案;(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。3.总体设计程序中用到的函数及功能:(1)主函数main()是C程序的主函数,也是入口函数,所有C程序的执行都从main开始至main结束。在主函数中定义一个变量choice,通过判断choice的值,来决定是添加选择题、回答选择题,还是退出,进而实现向列表中插入试题、抽取试题、回答试题、系统自动判卷的函数功能;(2)MenuChoice()是选择菜单函数,在程序执行时出现在菜单界面上,程序中定义了一个变量choice,让用户选择所要进行的操作;(3)question*InsertList()功能是向列表中插入试题;(4)question*ListRandSeek()功能是随机选取一个读题目的位置;(5)GetQuestion(structquestion*src)功能是获取问题,选项,以及正确答案;(6)SaveFile(conststructquestion*ed,FILE*saf)功能是将列表中的试题保存在文件中;(7)question*LoadFile(structquestion*td,long*count,FILE*laf)功能是从文件中读取题目,将题目添加到列表中;(8)ExplainQuestion(structquestion*que,intn,intlen)功能是回答问题,并统计答对题目数,显示得分。第2页共16页Main函数流程图:4.详细设计(1)主函数mainmain()函数是C程序的主函数,也是入口函数,所有C程序的执行都从main开始至main结束。主函数使用了while语句和if语句,在主函数中定义一个变量choice,通过判断choice的值,来决定是添加选择题、回答选择题,还是退出,进而实现向列表中插入试题、抽取试题、回答试题、系统自动判卷的函数功能。(2)MenuChoice()MenuChoice()是选择菜单函数,在程序执行时出现在菜单界面上,程序中定义了一个变量choice,让用户选择所要进行的操作。用户每执行完一个模块,菜单界面中便会出现一个菜单来让用户决定下一步操作。开始打开文件从文件中读取题目,并添加至列表关闭文件显示系统菜单响应用户选择保存试题在文件中打开文件关闭文件结束是否退出NY是否答题Y输入答题数量回答问题,并统计答对题目数,显示得分N输入问题,选项,以及正确答案第3页共16页(3)question*InsertList()该函数功能是向列表中插入试题。(4)question*ListRandSeek()该函数功能是随机选取一个读题目的位置,seek是找到指定的位置,len代表要读取的答案数,max代表列表的长度。(5)GetQuestion(structquestion*src)该函数功能是获取问题,选项,以及正确答案,src是指向结构体question的指针。(6)SaveFile(conststructquestion*ed,FILE*saf)该函数功能是将列表中的试题保存在文件中,以写的方式打开saf文件,保存试题后,关闭文件,退出函数。(7)question*LoadFile(structquestion*td,long*count,FILE*laf)该函数功能是从文件中读取题目,将题目添加到列表中,td指向读取的题目,count用来计数读取的题目数量,laf是文件,函数在用户选择添加题目时被调用。(8)ExplainQuestion(structquestion*que,intn,intlen)该函数功能是回答问题,并统计答对题目数,显示得分,que是指向结构体question的指针,len是题目的长度,在用户回答完问题后该函数被调用显示用户成绩。第4页共16页4.开发过程与调试(1)首先将程序框架理清楚,写出需要的结构体和函数,再写出函数体,将函数功能实现,最后写出主函数,通过在主函数中调用,将各函数联系起来。程序完成后,按BuildExecute键来编译并且执行程序,出现错误和警告,双击错误提示,可显示有错误的那行,按照错误出现的顺序,从上到下依次修改,直到程序没错误并且可执行为止。(2)遇到的问题及解决措施:1.Main函数前返回值是int(整型),而在函数体内最后没有返回值,系统报错,在main前面加上void,或者在函数体内最后加上return0;即可;2.输入的选择题中不能有空格,将输入scanf改成gets也不行,还没解决问题;3.函数体中用到了随机选题的操作,而头文件中没有写#includetime.h,导致随机抽取的题目错误,不是文件中保存的题目,加上#includetime.h,即可;4.随机抽取题目时容易抽到重复的题,用一个flag做标记,通过限定flag的值来确保抽到的题目不重复。第5页共16页5.总结与体会程序中用到了结构体来定义选择题的题目、选项和正确答案,用while和if循环来选择菜单,用指针来查找和插入,还用到了for循环,程序中用到了文件的保存、打开和关闭等相关知识。C语言设计中,上机实验是学习程序设计语言必不可少的实践环节,特别是C语言灵活、简洁,更需要通过编程的实践来真正掌握它。编程的过程中感触颇多,实训编程的同时暴露出了许多我自身存在的问题,同时也对自身有了很大的提高。检查程序和编程的过程当中弥补了我许多知识上的缺陷,弄清楚了我不懂的地方和似是而非的地方。综合试验设计使我的知识形成了一个完整的框架结构,而不再是零散的知识个体,使我在使用时更加的方便。第6页共16页参考文献[1]GaryJ.Bronson.《标准C语言基础教程(第四版)》,北京,电子工业出版社,2007.[2]谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社,2007.[3]谭浩强《C程序设计题解与上机指导(第3版)》,清华大学出版社,2005.[4]张基温《C语言程序设计教程》北京,高等教育出版社.[5]王家志《C语言程序设计技巧与应用》上海,上海外文图书公司软件出版部.第7页共16页致谢经过几周的思考与设计,也问了很多的同学、老师,查阅了好多的资料,终于将编程与设计报告完成,这其中,不仅有我的辛苦与汗水,也有好多人的帮助。首先要感谢我的指导老师杨立林老师,给我一个这样的锻炼和学习的机会,让我提升了自己,也要感谢他对我们的指导和帮助,并为我们提供了良好的科研环境,让我学到了知识,掌握了科研的方法,也获得了实践锻炼的机会。他严谨的治学态度将使我终身受益。他对程序设计的研究与热爱让我对这个学科更有信心和决心。其次要感谢我的专业任课老师曲波和郭小梅老师,他们教给了我计算机编程的知识,让我有编程的知识和能力,也为我将来从事计算机行业打下了基础,他们的辛勤劳动才换来了我今天的成绩,谢谢他们!还要感谢我的父母,是他们对我无怨无悔的付出和辛苦的教育,给了我今天,给了我健康的身体和美好的品德,以及严谨的学习态度和吃苦耐劳的精神,谢谢他们!还要感谢我的同学,尤其是室友,她们不厌其烦地回答我的一个又一个问题,对我的编程提供了很大的帮助和启发,给了我面对困难以及克服困难的勇气和信心,谢谢她们!最后,衷心感谢此刻正认真审阅本报告的老师!第8页共16页源程序清单#includestdio.h#includestdlib.h#includetime.hstructquestion{charask[200];/*选择题题目*/charanswer[4][80];/*选择题选项*/intright;/*正确答案*/structquestion*next;};intMenuChoice(void);structquestion*InsertList(structquestion*fst,conststructquestion*ad);structquestion*ListRandSeek(structquestion*seek,intlen,int*posi);structquestion*ListSeek(structquestion*seek,intposi);voidGetQuestion(structquestion*src);voidSaveFile(conststructquestion*ed,FILE*saf);structquestion*LoadFile(structquestion*td,long*count,FILE*laf);intGetAnswer(void);voidExplainQuestion(structquestion*que,intn,intlen);main(){structquestion*start=NULL
本文标题:《C程序设计》课程设计报告格式
链接地址:https://www.777doc.com/doc-3294520 .html