C语言大赛现场评分系统.docx

上传人:牧羊曲112 文档编号:4883800 上传时间:2023-05-21 格式:DOCX 页数:10 大小:106.55KB
返回 下载 相关 举报
C语言大赛现场评分系统.docx_第1页
第1页 / 共10页
C语言大赛现场评分系统.docx_第2页
第2页 / 共10页
C语言大赛现场评分系统.docx_第3页
第3页 / 共10页
C语言大赛现场评分系统.docx_第4页
第4页 / 共10页
C语言大赛现场评分系统.docx_第5页
第5页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言大赛现场评分系统.docx》由会员分享,可在线阅读,更多相关《C语言大赛现场评分系统.docx(10页珍藏版)》请在三一办公上搜索。

1、宜春学院数学与计算机科学学院课程设计说明书课程名称:计算机实训课程代码:题目:年级/专业/班:14计科1班学生姓名:鄢剑涛学号:开题时间:2014年12月28日完成时间:2014年12月29日一、设计任务与目的以往各类大奖赛的报分与统分脱节,参赛选手的最后得分总要等到下一个选手赛完后才 报,影响竞赛的正常节奏,也不能满足观众期待的心理。因此,为大奖赛编写一个现场统分 的程序是很有必要的。本程序很好的解决了这个问题。在各评委打分之后,就能及时通报评分结果。并且,在 统计学生成绩的同时,为了给评委一个约束,有利于竞赛的公平公正性,增加了给评委女打 分和排序功能。本程序的任务:1. 大赛共有n个选手

2、参赛,m(m2)个评委一次为参赛选手评判打分,最高分为10分, 最低为0分;2. 统分规则,在每个选手所得的m个得分中,去掉一个最高分,再去掉一个最低分,取 平均分为该选手的最后得分;3. 根据n个选手的最后得分,从高到低排出名次表,以便获取获奖名单;4. 根据各选手的最后得分与各评委给该选手所评分的差距,对每个评委的评分准确性给 出一个定量的评价。二、设计方案1. 设置5个数组:shi为第i个选手的编号,sfi为第i个选手的最后得分,phj为第j个评 委的编号,fij为第j个评委给第i个选手的评分,pfj为第j个评委的得分,作为评委水 准的代表。2. 对n个参赛选手设置i循环(i从1变化到n

3、);第i个选手上场,输入该选手的编号shi, 在j循环(j从1变化到m)中依次输入第i个选手的m个得分fij,每一个得分fij都累 加到 sfi中,同时比较:若 fijmax,则 max=fij;若 fijmin,则 min=fij。当第 i 个 选手的m个得分输入完毕,去掉一个最高分max,去掉一个最低分min,第i个选手的最后 的分数为sfi = (sfi - Max - Min ) / (m -2),n个选手的最后得分为sfo,sf1,.,sfn全部 计算完后,将其从高到低排序,输出参赛选手的名次表。3. 评委给选手评分存在误差,即fijsfn是正常的,也是允许的。但如果某个评委给的某个

4、选手的评分与个选手得到的最后成绩相差太大,则说明该评委的评分有失水准。可用下 面的公式计算结果作为各个评委评分水准的定量评价。pfj = pfj + (fi*m+j - sfi) *(fi*m+j - sfi); pfj = 10 - sqrt(pfj / n); pfj高的评委的评判水平高,依据m个评委的 pfj值可打印出评委评测水平的高低的名次表。三、程序代码程序1大赛现场评分系统#include #include #include #define Athlete 40#define Judge 20/*函数功能:统计参赛现场选手得分函数参数:整型数组sh,存放选手的编号实型数组sf,存放

5、选手的最后得分整型变量n,存放参赛选手的人数实型数组f,存放每个裁判给选手的评分整型变量m,存放评委的人数*/ void CountAthlereScore(int sh, float sf, int n, float f,int m ) float Max, Min;int i, j;for (i = 1;i = n; i+)printf (n 选手d 正在比赛n,i);printf (请输入选手的编号:);scanf (%d, &shi);sfi = 0;Max = 0;Min = 100;for (j = 1;j = m;j+)printf (裁判d给出的分数为:”, j);scanf

6、(%f”,&f i*m+j);sfi = sfi + fi*m+j;if (Max fi*m+j)Min = fi*m+j;printf (去除一个最低分:%.3fn”,Max);printf (去除一个最低分:%.3fn”,Min);sfi = (sfi - Max - Min ) / (m -2);printf (选手%2d 的最终得分为.3fn”,shi, sfi);printf (n*nn);/*函数功能:对分数从高到低排序函数参数:整型函数h,存放编号实型数组f,存放最后得分整型变量n,存放参评人数*/ void Sort (int h, float f, int n)int i,

7、j, k, temp2;float tempi;/用选择排序法对选手的最终成绩进行排序for (i = 1; i = n-1; i+)k = i;for (j = i+1; j fk)k = j;if (i != k)交换分数tempi = fk;fk = fi;fi = tempi;/交换编号temp2 = hk;hk = hi;hi = temp2;/for (i = 1;i = n; i+)/ printf (编号:%d,成绩:.3fn”,hi,fi);/*函数功能:对名次表进行打印函数参数:整型数组h,存放编号实型数组f1,存放最后得分整型变量n,存放参评人员*/void Print

8、(int h, float f, int n)printf (排名七编号t成绩n);for (int i = 1; i = n; i+)printf (%2dt%2dt%.3fn”,i, hi, fi);/*函数功能:统计评委的得分函数参数:整型数组ph,存放评委的编号实型数组pf,存放评委的得分整型变量m,存放评委的人数实型数组sf,存放选手的最后得分实型数组f:存放每个评委给选手的评分整型变量n,存放参赛选手的人数*/void CountJudgeScore(int ph, float pf, int m, float sf,float f,int n) int i, j;以下几行均为计算

9、pfj,pfj高的裁判的评判水平高for(j=1; j=m; j+)pfj = 0;for (i=1; i=n; i+)pfj = pfj + (fi*m+j - sfi) * (fi*m+j - sfi);pfj = 10 - sqrt(pfj / n);printf (裁判d 的分数为:%.3fn,j,pfj); int main () int j, m, n;int shAthlete;int phJudge;float sfAthlete;float pfJudge;选手编号数组/裁判编号数组选手的最后得分/裁判的得分float fAthlete Judge;/评委给选手的评分prin

10、tf(“ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ 个个个个个个个个个个个个个个个个个个个大赛现场评分系*n );printf (-请输入选手的人数:);scanf (%d”,&n);printf (n请输入裁判的人数:”); scanf (%d”,&m);printf (注:分数为十分制”,j);for (int j = 1; j = m; j+)ph j = j ;printf (选手的分数:n);CountAthlereScore(sh, sf, n, *f, m);对分数从高到低排序Sort (sh, sf, n);/对名次表进行打印Print (sh,

11、sf, n);计算各位评委的分数printf (裁判的分数如下:n);CountJudgeScore(ph, pf, m, sf, *f, n);对评委的分数进行排名及打印printf (* 评委排名表 *n);Sort (ph, pf, m);Print (ph, pf, m);/评委得分排序/打印评委排名. j r* /1f “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “tf printf (n*n);printf (printf (“*系统结束,谢谢使用! nn);nn);pr

12、intf (*n );printf (*n);system(pause);五、测试和运行1.大赛评分系统C:Use r55jiyD&skto p快赛现场评分球已X 急,迎审目 士土初评亓、系:统 N XX M: X X N K X M: K X X K X X 御 N X T M: X请输入选手的人数:44活手的分教:汪:分戮为is5 12 3 - 02 7 7 7 7 01 匚 - 习.M/捋数致数以.霭分父务4匕甘勺勺勺hoo=?2ffi手修手选请|0去选002H S 17 或碧取七人馅.躇孩始一一126 8 2 3 -U3 8 8 8 8 -Ui Q寐|萍露Fk手酣惘坊增取*曷*手哥除除

13、手IIX X X H X,MX H141 i3 1F - vlm“_|7 V 口习/习/寻,.fi 6 8 7 9 LH - - H 007 4- 9 9 9 9 0 M- - 1 9 6 9 - i .9 9 .-. _1-习.M/H.M. . Et手蜩坊址曹成 玮矗4ffi 手修手 选请甘去选成绩9.7509.7008.4507.25B8.3898.1G98.2448.206号 编14牌-又.!分分 4.由.也内白. hJTB .n .B .B 12 3 4C: J se rssjxyD? s kto p 大亳现场丧分,exe138.45048.16933H.2444 土系纬结真,谢谢伸用

14、! !村*t*t 村* * *:KHX XKXKJCHK XJOCKJCM:Process exited after 65.24 seconds with return ualne 0请按任意键批续 六、总结这个程序为大赛现场统分系统,很好的能简化在比赛中计分过程,并且能够在选手比 赛之后就把分数统计出来,而且能在比赛之后就把比赛的排名列出来,大大减少了因为计算 排名的时间,而且,本系统最出色的一点就是测定各位评委的评分水准,这也同时保证了比 赛的准确性,公平性,公正性。这个程序也很好的考察了 c语言中的各个知识点,for循环 语气,if-else判断语气,函数还有一维数组和二维数组的应用,还

15、有的就是充分的考察了 c 语言综合能力,将数组和函数紧密的联系在一起,灵活地运用了c语言。该程序也有许多不 足之处,例如选手和评委人员的个数有限,程序还不够简介明了,画面还不够精美等等。我 相信,在今后的学习和练习中,会努力的提高自己的水平!七、个人心得经过了短短的将近10天的实训,真的让我学到了许多东西,老师诙谐的讲课方式,活 跃的课堂,无不让那呆板的课堂活跃了起来,最重要的是,我们在这快乐的学习中,学到了 许多东西。在这课堂上,我们不再是像以前一样,简单的照着课本上抄程序,而是渐渐的学 会了如何自己去敲程序,在练习中,也更加注重程序的书写规范,以及自己去查错,自己去 写注释,自己也学到了查找一些bug的方法,在几个编写的项目中,也更加明白c语言的实 用性和强大型,也更加让我明白c语言的重要性,当我写下自己的那个第一个程序hello world 时,就让我走进了c语言的天地。在课堂中,也更加找到了c语言的乐趣,c语言是那么的 富有乐趣,富有意义。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号