学生模拟改卷系统课程设计报告C语言

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1目录1.概述...................................................................................................................................21.1设计题目.........................................................................................................................21.2题目描述.........................................................................................................................21.3题目要求.........................................................................................................................22.需求分析.........................................................................................................................32.1设计思想........................................................................................................................32.2程序流程图....................................................................................................................32.3相关处理函数................................................................................................................33.程序设计及代码分析................................................................................................43.1程序主模块设计............................................................................................................53.2程序详细模块设计........................................................................................................54.实验数据及运行结果................................................................................................64.1实验数据........................................................................................................................64.2主菜单............................................................................................................................74.3计算参考答案及频次....................................................................................................74.4输出成绩分析................................................................................................................85.课设心得总结...............................................................................................................96.程序源代码....................................................................................................................92§1.概述(正文宋体5号字,单倍行距,标题黑体3号字,小标题黑体5号字;题目内5个小标题间空两行,两个题目之间分页。正反面打印)1.1.设计题目模拟改卷系统。1.2.题目描述改卷系统程序主要功能为改卷。同时,该系统程序可以实现成绩查询、成绩排序、成绩统计等一系列功能。通过接收数据文件格式为文本文件的数据流,其中文本文件由若干行组成,每行表示一名学生的考试答案信息,根据同学的答题情况,计算参考答案并统计学生的答题情况。1.3.题目要求输出参考答案,及各题参考答案选项的频次。支持按姓名查询学生成绩。能够按照指定需求进行排序,如按成绩的降序或升序对学生信息进行排序。输出成绩单及试卷分析(分数段人数,计算最高分、最低分、平均分、及格率)到外部文件。以功能菜单的形式选择执行各项操作。3§2.需求分析2.1.设计思想该系统采用模块化设计。程序设计一个简单、明了的主菜单供用户选择操作。程序初始化阶段,读取文本文件“data.txt”,获取学生选择答案信息进行处理,若没有输入,则提示;系统自动统计学生答案并输出参考答案。同时,用户可根据主菜单对学生成绩进行排序、分析、查询等操作。2.2.程序流程图图2程序主流程图2.3.相关处理函数voidClearQueue()从缓冲区中不断获取多余字符,直到遇到回车才进行下一步操作,即清除缓存流。charInputChar(charconst*msg)获取有效的字符输入。char*InputLine(charconst*msg,char*str)获取有效的字符串输入。intInputIntInRange(charconst*msg,intl,intr)用来得到有效的整型输入,整型范围为[l,r]4§3.程序设计及代码分析3.1.学生结构体设计设计结构体,用来保存学生的姓名、答案以及分数信息,方便操作。typedefstructtagData{charname[10];//姓名charasn[TEST_NUM+1];//作答intgrade;//分数}Data;记录相关信息的全局变量:Datadata[MAX_LEN];//保存数据inttotal=0;//总人数intans[TEST_NUM][4];//每题的选择人数频次charanswer[TEST_NUM];//参考答案3.2.文件读取模块通过C语言文件读取函数,对数据文件进行读取,同时将学生的姓名、成绩写入结构体数组中。主要函数:voidLoadData()3.3.参考答案计算模块遍历整个结构体数组,获取保存所有学生的答案选择,并获得所有题目答案选择的最大数量,最终获得参考答案。主要函数:voidGetAswer()通过用户选择,可将保存的参考答案以及频次输出。主要函数:voidPrintAnswer()3.4.按姓名查询模块通过用户输入的姓名信息,遍历结构体数组,并获取姓名与之相同的学生信息输出,若没有匹配到该学生,则输出提示信息。主要函数:voidSearchByName()3.5.成绩计算模块遍历整个结构体数组,对学生的选择答案根据参考答案进行评分,其中1-15题计2分,16-35题计3分,其余题目4分,最后获得总分保存至结构体数组中。主要函数:voidGetGrade()3.6.成绩降序排序模块5对于保存在学生结构体数组中的成绩,通过冒泡排序进行降序排序并输出。主要函数:voidSort()3.7.成绩单分析模块对学生的成绩信息进行分析,首先按学生成绩排名,然后计算学生的最高分、最低分、平均分、及格率等信息,同时统计0~59,60~80,81~100分数段同学个数。最后将所有统计信息通过C语言文件操作写入到文件“result.txt”。主要函数:voidOutputData()3.8.程序主模块提供系统程序的入口,可循环打印程序的主菜单供用户选择,并调用相关处理函数完成相关操作。主菜单函数:voidMainMenu()图3系统程序主要功能模块图6§4.实验数据及运行效果截图4.1.实验数据74.2.主菜单4.3.计算参考答案以及频次4.4.按姓名查询成绩84.5.输出试卷分析Result.txt9§5.课设心得总结通过本次课程设计,我更加熟练掌握C语言编程相关知识。对于C语言中结构体设计、全局变量、文件读写、冒泡排序等算法也有了深入了解。同时,通过本次课程设计,我更加了解了模块化编程的重要性。将一个大的系统程序分成多个小模块,不仅将问题简单化了,同时也使得整个系统简洁明了,对用户也是一目了然。总之,本次课程设计对我今后的学习有很大的指导作用。§6.程序源代码#includeSTDIO.H#includestring.h#includestdlib.h#defineMAX_LEN100//最多人数#defineTEST_NUM35//题目数量typedefstructtagData{charname[10];//姓名charasn[TEST_NUM+1];//作答intgrade;//分数}Data;Datadata[MAX_LEN];//保存数据inttotal=0;//总人数intans[TEST_NUM][4];//每题的选择人数频次charanswer[TEST_NUM];//参考答案//清除无用输入缓存流voidClearQueue(){while(getchar()!='\n')continue;}//输入charcharInputChar(charconst*msg){charresult;printf(%s,msg);10while(scanf(%c,&result)!=1){ClearQueue();printf(%s,msg);}ClearQueue();returnresult;}/*参数说明:msg:提示语str:用来得到输入的字符串功能说明:用来得到有效的字符串输入*/char*InputLine(charconst*msg,char*str){intj=0;intc;printf(%s,msg);while(1){c=getchar();if(c=='\n'||c==EOF)break;str[j++]=c;}str[j]='\0';returnstr;}/*参数说明:msg:提示语功能说明:用来得到有效的整型输入*/intInputInt(charconst*msg){intresult;printf(%s,msg);while(scanf(%d,&result)!=1)11{ClearQueue();printf(%s,msg);}ClearQueue();returnresult;}/*参数说明:msg:提示语l:下限

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功