课程设计说明书
课 程 名 称: 计算机实训
课 程 代 码:
题 目: 大赛现场评分系统
年级/专业/班: 14计科1班
学 生 姓 名: 鄢剑涛
学 号: **********
指 导 教 师:******************************
开 题 时 间: 2014 年 12 月 28 日
完 成 时 间: 2014 年 12 月 29 日
一、设计任务与目的
以往各类大奖赛的报分与统分脱节,参赛选手的最后得分总要等到下一个选手赛完后才报,影响竞赛的正常节奏,也不能满足观众期待的心理。因此,为大奖赛编写一个现场统分的程序是很有必要的。
本程序很好的解决了这个问题。在各评委打分之后,就能及时通报评分结果。并且,在统计学生成绩的同时,为了给评委一个约束,有利于竞赛的公平公正性,增加了给评委女打分和排序功能。
本程序的任务:
1.大赛共有n个选手参赛,m(m>2)个评委一次为参赛选手评判打分,最高分为10分,最低为0分;
2.统分规则,在每个选手所得的m个得分中,去掉一个最高分,再去掉一个最低分,取平均分为该选手的最后得分;
3.根据n个选手的最后得分,从高到低排出名次表,以便获取获奖名单;
4.根据各选手的最后得分与各评委给该选手所评分的差距,对每个评委的评分准确性给出一个定量的评价。
二、设计方案
1.设置5个数组:sh[i]为第i个选手的编号,sf[i]为第i个选手的最后得分,ph[j]为第j个评委的编号,f[i][j]为第j个评委给第i个选手的评分,pf[j]为第j个评委的得分,作为评委水准的代表。
2.对n个参赛选手设置i循环(i从1变化到n);第i个选手上场,输入该选手的编号sh[i],在j循环(j从1变化到m)中依次输入第i个选手的m个得分f[i][j],每一个得分f[i][j]都累加到sf[i]中,同时比较:若f[i][j]>max,则max=f[i][j];若f[i][j] 三、程序代码 程序1大赛现场评分系统 #include #include #include #define Athlete 40 #define Judge 20 /* 函数功能:统计参赛现场选手得分 函数参数:整型数组sh,存放选手的编号 实型数组sf,存放选手的最后得分 整型变量n,存放参赛选手的人数 实型数组f,存放每个裁判给选手的评分 整型变量m,存放评委的人数 */ void CountAthlereScore(int sh[], float sf[], int n, float f[],int m ) { 选手%d正在比赛\\n",i); 请输入选手的编号:"); 裁判%d给出的分数为:", j); 去除一个最低分:%.3f\\n",Max); 去除一个最低分:%.3f\\n",Min); 选手%2d的最终得分为%.3f\\n",sh[i], sf[i]); } /* 函数功能:对分数从高到低排序 函数参数:整型函数h,存放编号 实型数组f,存放最后得分 整型变量n,存放参评人数 */ void Sort (int h[], float f[], int n) { 用选择排序法对选手的最终成绩进行排序 交换分数 交换编号 编号:%d,成绩:%.3f\\n",h[i],f[i]); } /* 函数功能:对名次表进行打印 函数参数:整型数组h,存放编号 实型数组f1,存放最后得分 整型变量n,存放参评人员 */ void Print (int h[], float f[], int n) { 排名\编号\成绩\\n"); } /* 函数功能:统计评委的得分 函数参数:整型数组ph,存放评委的编号 实型数组pf,存放评委的得分 整型变量m,存放评委的人数 实型数组sf,存放选手的最后得分 实型数组f:存放每个评委给选手的评分 整型变量n,存放参赛选手的人数 */ void CountJudgeScore(int ph[], float pf[], int m, float sf[],float f[],int n) { 以下几行均为计算pf[j],pf[j]高的裁判的评判水平高 裁判%d的分数为:%.3f\\n",j,pf[j]); } int main () { 选手编号数组 int ph[Judge]; //裁判编号数组 float sf[Athlete]; //选手的最后得分 float pf[Judge]; //裁判的得分 评委给选手的评分 欢迎使用大赛现场评分系统 ************************\\n"); 请输入选手的人数:"); 请输入裁判的人数:"); 注:分数为十分制", j); 选手的分数:\\n"); 对分数从高到低排序 对名次表进行打印 计算各位评委的分数 裁判的分数如下:\\n"); 对评委的分数进行排名及打印 评委排名表*********\\n"); 评委得分排序 打印评委排名 printf (" ************************* \\n\\n"); 系统结束,谢谢使用!!\\n\\n"); } 五、测试和运行 1.大赛评分系统 六、总结 这个程序为大赛现场统分系统,很好的能简化在比赛中计分过程,并且能够在选手比赛之后就把分数统计出来,而且能在比赛之后就把比赛的排名列出来,大大减少了因为计算排名的时间,而且,本系统最出色的一点就是测定各位评委的评分水准,这也同时保证了比赛的准确性,公平性,公正性。这个程序也很好的考察了c语言中的各个知识点,for循环语气,if-else判断语气,函数还有一维数组和二维数组的应用,还有的就是充分的考察了c语言综合能力,将数组和函数紧密的联系在一起,灵活地运用了c语言。该程序也有许多不足之处,例如选手和评委人员的个数有限,程序还不够简介明了,画面还不够精美等等。我相信,在今后的学习和练习中,会努力的提高自己的水平! 七、个人心得 经过了短短的将近10天的实训,真的让我学到了许多东西,老师诙谐的讲课方式,活跃的课堂,无不让那呆板的课堂活跃了起来,最重要的是,我们在这快乐的学习中,学到了许多东西。在这课堂上,我们不再是像以前一样,简单的照着课本上抄程序,而是渐渐的学会了如何自己去敲程序,在练习中,也更加注重程序的书写规范,以及自己去查错,自己去写注释,自己也学到了查找一些bug的方法,在几个编写的项目中,也更加明白c语言的实用性和强大型,也更加让我明白c语言的重要性,当我写下自己的那个第一个程序hello world时,就让我走进了c语言的天地。在课堂中,也更加找到了c语言的乐趣,c语言是那么的富有乐趣,富有意义。下载本文