比赛评分系统c语言课程设计.doc
学号武汉理工大学华夏学院课程设计课程名称C语言课程设计题目比赛评分系统的设计专业软件工程班级软件1121班姓名成绩_________________指导教师王绪梅2月25日至3月1日课程设计任务书学生姓名专业班级软件1121指导教师王绪梅工作单位信息工程系设计题目比赛评分系统的设计要求完成的主要任务1任务描述学校要举办一个歌咏比赛,请设计一个比赛评分程序,对参赛的选手进行评分。(给分的原则为满分为10分;计分方法是裁判给出分数后,去掉两个最高分和两个最低分后的平均分为选手的最后得分(精确到小数点后两位))要求系统实现以下功能⑴设参赛人数为N位(NBXPNKP1KP0BP2P3输出第一名输出第二名输出第三名是是是是是否否否否否BV0VVBXPNKPV输出该选手成绩结束是是是K是是否否否否图图61比赛评分系统的算法流程图比赛评分系统的算法流程图62比赛评分系统的设计步骤比赛评分系统的设计步骤1宏定义符号常量N(选手数),M(评委数),P(评分选项数);2定义评委评分,选手得分的数组FEN50;3用FOR循环嵌套通过评委数量与选手数量控制评分项的完整输入,再用SCANF语句对应二维数组A使评分与选手结合,在KN时跳出循环;4用冒泡法将评分按大小排序,接着去除二个最高分与二个最低分算出选手最终得分;部分程序如下FORB0BHEXKPNKIFPV{PRINTF“第D号选手获得第D名成绩为F\N“,J,P,HEJBREAK}}}6用PRINTF函数和FOR循环将最后的比赛名次与获奖选手姓名一一对应的完整输出;7程序调试1第一次运行程序时,发现人数设定不符合题目要求,重新修改后运行结果良好;图71输入数据的运行截图第二次运行程序成功后,发现奖项设置不符合实际情况,返回程序做出修改后运行结果良好;图72运行结果截图8遇到的问题及不足81评价评价1程序没用复杂的结构,具有简洁性;2程序不够贴合实际,还需做出更进一步的设计;3程序设计的能力还需加强;4没有使用文件系统,程序中信息无法长期保存和连续使用;82修订修订1对程序中的人数和奖项设定做了修改,形成动态改变,使之更具有通用性;2对程序中的评分精确度做出了改正,使之保留得分的小数点后23位;3程序不能够做到灵活可变,但试着改进后发现不成功;4.应在程序中加入数据文件的应用。10参考文献1谭浩强C语言程序设计教程北京清华大学出版社,5月2王路明C语言程序设计教程北京北京邮电大学出版社,5月3谭浩强C程序设计北京清华大学出版社11实训体会通过这次实训也让我们同学之间的关系更加融洽。在制作作品的过程中我深深感受到了同学们互帮互助的融洽学习氛围。每当遇到困难时我身边的同学都会很热心的过来提供帮助。正是因为他们帮我解决了一个又一个的困难。我的作品才能够得以完成。通过这次实训我深刻体会到了同学之情的珍贵。我相信在今后的日子里一定会加倍的珍惜这份情谊。这次实训还让我体会到了成功的喜悦。当通过努力把那些作品完成的时候,那种成就感,我想只有设计者本人能够体会。有了这次经历我相信我以后一定会认真的对待每个任务,争取把每件事情都做到最好。这次的实训真真是苦不堪言啊,看着选好的题目,比赛评分系统的设计应该还算比较简单的了,但苦苦思索就是无法动手开编,那种完全没有头绪的感觉,直叫人为当初没有学好专业知识而叫苦不迭,可还是要将实训进行下去,只好依靠互联网的神奇力量找了一份参考,做出修改和设定后就算是完成了,运行成功后再次作了修改。虽然报告是勉强过关了,但我能感觉到的是通过这次的实训,我们除了抗压能力隐忍能力耍小聪明的能力强了那么一丁点而已,这次的实训让我们真真领会了学习的严谨性和学好专业知识的重要性,现在的我们明白了掌握专业知识的必要性,所以更加迫切的需要黄老师带领我们去学习真正的专业技能,更加真实的希望以后的实训更加有长进了。指导教师评语成绩评定等级指导教师(签名)2月17日设计过程中现场提问(或答辩)记载1问对于选手和评委的人数设定是否符和要求答是严格按照题目要求来做的,选手,评委都是可输入的。2问对于各奖项人数的设定是否符合实际情况答一等奖设定的是1名,二等奖设定的是2名,三等奖设定的是3名,还算符合实际。3问一等奖的选手得分好像过于精确了,小数点后的位数是否可以减少几位答是修改的时候没有改到的地方,在输出时F改为2F即可解决。附录源程序代码比赛评分系统的设计程序INCLUDEMAIN{INTN,M,B,S,I,J,X,A,FEN50,C0,K0,P,V,D,E,GDOUBLEF,ZHONG0,SUM0,PJ,HE51PRINTF“请输入比赛选手人数N以及裁判人数M中间以逗号隔开“SCANF“D,D“,FORB0BHEXKPNKIFP1PRINTF“第D名选手获得一等奖\N“,JIFP2PRINTF“第D名选手获得二等奖\N“,JIFP3PRINTF“第D名选手获得三等奖\N“,J}P0PRINTF“\N成绩表\N“FORV1VHEXKPNKIFPV{PRINTF“第D号选手获得第D名成绩为F\N“,J,P,HEJBREAK}}}FORG1G1{PRINTF“\N是否继续查询选手成绩1是2否\N“SCANF“D“,SWITCHE{CASE1PRINTF“输入选手序号查询成绩“SCANF“D“,PRINTF“该选手的最终成绩为F分“,HEDBREAKCASE2G0BREAKDEFAULTPRINTF“输入有误“BREAK}}}