c语言大作业成绩分析问题,河南科技大学c语言课程设计-综合排序设计报告-成绩分析问题.doc...

本文详细阐述了河南科技大学学生在C语言综合排序课程设计中的成绩分析任务,包括结构体数组的设计、数据读取、成绩统计与输出,以及遇到的问题和解决方案。报告涉及成绩最高者、平均成绩比较、分数段占比等功能,旨在提升学生的程序设计能力。
摘要由CSDN通过智能技术生成

41528d3028836879cd698677c3999917.gif河南科技大学c语言课程设计-综合排序设计报告-成绩分析问题.doc

河南科技大学综合程序设计报告成绩分析问题学院电气工程学院年级专业电子161学号161404110104学生姓名李恺指导教师赵老师1、题目内容和要求(重述)C语言综合训练是为了提高学生综合使用本学期我们所学的C语言知识编写大型程序的能力,了解大型程序设计的开发步骤,以上机为主,每个学生按照要求使用C语言设计一个大型程序,并提供相关的设计文档和源程序,从网站提交。1、C语言综合训练程序设计要求已知在磁盘上有一个文本文件(STUINTXT,此文件存放了一组学生的成绩信息,按照如下格式存放1001STUNAME1891002STUNAME2781003STUNAME3601100STUNAME10087请按照如下要求编写程序A定义一个结构体类型数组,结构体类型含有学号、姓名和成绩三个域;B将文本文件的内容读入到结构体数组中;C显示成绩最高的人的学号、姓名和成绩(如果有相同的人要全部显示);D显示平均成绩高于、低于和等于平均成绩的人数;E显示成绩为优秀90~100、良好80~89、中等70~79、及格60~69、不及格0~59的人数和所占百分比;F将以上显示的信息存放到STUOUTTXT文件中;2、C语言综合训练设计报告要求A结合教材第二章的内容,写出本次综合训练的分析文档;B文档要求以WORD排版,语言简练,条理清楚;C测试过程中遇到的主要问题及采取的解决措施;E文档以“设计报告DOC”名字保存。3、作业提交要求A.需要提交的文件源程序、可执行文件以及STUINTXT、STUOUTTXT文件和设计报告DOC文件、设计报告TXT版。B所有提交文件保存在一个文件夹中,文件夹名字为“专业班级姓名”,如“电气162张三”;C.设计报告TXT使用设计报告DOC另存为TXT类型得到,课程设计报告TXT将用计算机做复制比检测。特别强调所有命名文件不要加空格。4、作业提交截止日期2017/5/22,以班级为单位提交。2、总体设计框图请用WEB版视图查看(1)功能设计(2)数据设计根据问题设计,进行数据设计定义一个包含学号,姓名,成绩三个成员的结构体类型,作为学生信息的储存类型;定义一个结构体的数组存放若干学生记录;(3)函数设计根据功能设计,为学生成绩分析软件设计如下函数来实现学生成绩分析软件数据的输入数据的处理数据的保存统计各分数段人数及所占比例,和分数最高的人的学号,名字和分数;低于,高于,等于,平均成绩的人数。定义一个结构体数组,然后将STUIUTXT数据输入进去将所得的数据保存到STUOUTTXT中程序各模块的功能。OPEN函数原型VOIDREAD,是数据输入函数,从磁盘数据文件STUINTXT中读取学生初始信息,储存到程序中对应的结构体数组中。DEAL函数原型VOIDSOLVE,显示统计各分数段学生人数及所占百分比,显示高于,等于,低于平均成绩的的人数和最高成绩同学的学号,姓名,成绩(同时显示)并且将所得到信息存储到STUOUTTXT文件中。MAIN函数原型VOIDMAIN,是学生成绩分析系统的主函数,控制各功能函数模块的调用,实现整个程序的各项功能。(4)函数的调用关系以上函数的调用关系如图所示。3、详细设计(1)函数的设计MAIN函数OPEN函数DEAL函数1VOIDMIAN函数MAIN函数的模块流程图如图所示2VOIDOPEN函数流程图模块流程图如图所示开始变量定义函数声明调用READ函数结束调用VOID函数定义函数中的所需变量成功打开磁盘文件从文件中读取学生信息输入到结构体中输出“CANNOTOPENFILE”YN把记录的条数记入变量N中,关闭数据文件函数内部定义N0(3)VOIDDEAL函数模块的设计如图所示返回主函数定义下标变量I,H,L,定义5个计数器变量,存放个分数段人数以只读方式打开文件成绩90NYY求平均成绩,求最高分数,并输出最高成绩学生的信息SCOERAVERAGESCOER80成绩70成绩60成绩MAXMAXSISCOREAVERAGESISCORE}AVERAGE/NPUTS“最高分的人““最高分的人\N“,FPFORI0IAVERAGEHELSEEIFSISCORE90SCORE90_100ELSEIFSISCORE80SCORE80_89ELSEIFSISCORE70SCORE70_79ELSEIFSISCORE60SCORE60_69ELSESCORE0_59IFSISCOREMAXCONTINUEPRINTF“SS0LF\N“,SINUM,SINAME,SISCOREFPRINTFFP,“SS0LF\N“,SINUM,SINAME,SISCORE}PRINTF“\N“FPRINTFFP,“\N“PRINTF“平均成绩LF\N“,AVERAGEPRINTF“高于平均D人\N“,HPRINTF“等于平均D人\N“,EPRINTF“低于平均D人\N“,LFPRINTFFP,“平均成绩LF\N“,AVERAGEFPRINTFFP,“高于平均D人\N“,HFPRINTFFP,“等于平均D人\N“,EFPRINTFFP,“低于平均D人\N“,LPUTS““““,FPPRINTF“优秀90~100D人数,百分比;1F\N“,SCORE90_100,1000SCORE90_100/NPRINTF“良好80~89D人数,百分比;1F\N“,SCORE80_89,1000SCORE80_89/NPRINTF“中等70~79D人数,百分比;1F\N“,SCORE70_79,1000SCORE70_79/NPRINTF“及格60~69D人数,百分比;1F\N“,SCORE60_69,1000SCORE60_69/NPRINTF“不及格00~50D人数,百分比;1F\N“,SCORE0_59,1000SCORE0_59/NFPRINTFFP,“优秀90~100D人数,百分比;1F\N“,SCORE90_100,1000SCORE90_100/NFPRINTFFP,“良好80~89D人数,百分比;1F\N“,SCORE80_89,1000SCORE80_89/NFPRINTFFP,“中等70~79D人数,百分比;1F\N“,SCORE70_79,1000SCORE70_79/NFPRINTFFP,“及格60~69D人数,百分比;1F\N“,SCORE60_69,1000SCORE60_69/NFPRINTFFP,“不及格00~50D人数,百分比;1F\N“,SCORE0_59,1000SCORE0_59/NFCLOSEFPPRINTF“\N结果已经写入文件S\N“,FILEO}//函数的功能将最高成绩的人的信息输出,输出高于,低于,等于平均成绩的人数,求出不同分数段的人所占的比例VOIDMAIN{INTI0OPENDEALGETCHAR}五、调试过程中的问题在调试的过程中出现了不少的BUG,警告和一些其他的问题。(1)首先,为了进行百分比的显示,进行了一番的调试,首先需要进行百分号的显示,用两个百分号进行百分号的打印,然后再定义一下数字的输出格式,拿各分数段成绩除以总的人数再乘以100。这样得到的组合就是一个百分比数。(2)在定义数组存储数据的时候我只定义了存放50个数据的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值