比赛评分系统C++程序设计.docx
- 文档编号:9971053
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:18
- 大小:158.32KB
比赛评分系统C++程序设计.docx
《比赛评分系统C++程序设计.docx》由会员分享,可在线阅读,更多相关《比赛评分系统C++程序设计.docx(18页珍藏版)》请在冰豆网上搜索。
比赛评分系统C++程序设计
《C++程序设计》项目
项目设计题目(比赛评分系统)
学号:
姓名自评成绩:
成绩:
1.选题意义、依据
学校经常举行十佳歌手等比赛,没有专门的打分系统,都是评委给出分数后一块公布每位选手的成绩,这样比较麻烦,而且没有体现出公平性,为了体现公平公正,且满足观众急于知道选手得分情况的心理,于是做了这个项目。
2.系统功能设计与分析(功能模块说明)
开头定义M(选手数),N(评委数),针对比赛的选手数、评委数,可以相应的调整符号常量的值,达到了“一改全改”的效果。
要求如下:
(1)去掉最高分最低分,要保证评委人数不少于3,参赛选手人数不少于2
(2)成绩在0--10分之间,超出范围则有错误提醒
循环调用函数floatCountAthleteScore(int,floatave,intn,floats[],intm),每次实现以下功能:
输入每位评委给定该位选手的得分,并将所得的n个得分中,去掉一个最高分,去掉一个最低分,然后平均为该选手的最后得分。
并将每位选手的成绩一次存入数组a[M],b[M]中。
调用函数voidSort(floata[],intn),对参赛选手成绩进行排序,由高到低输出。
调用函数voidPrint(floata[],intn,intbh[]),输出冠军,亚军,季军的成绩和编号,并对成绩相等的情况做了相关处理。
3.涉及的主要知识点说明
1、数组的使用
2、冒泡排序
3、函数调用
4、输出格式
5、选择控制语句的使用
4.创新性说明
将平均值存入数组a[]中,对它排序后,分值对应的地址发生改变,输出编号与成绩不对应。
将平均值存入两个数组a[],b[]中,对数组a[]中的值排序,分值依次与数组b[]中的值比较,找到相等的便输出对应的编号。
这样便解决了编号输出问题。
5.源代码
#include
#include
#defineN20//评委的人数最多为20
#defineM50//参赛选手的人数最多为50
usingnamespacestd;
floatCountAthleteScore(int,floatave,intn,floats[],intm);
voidSort(floata[],intn);
voidPrint(floata[],intn,intbh[]);
floatb[M];
intbh[M];
intmain()
{
inti=0,n,m,r=0;
floats[N],a[M],ave=0.0,sum=0.0;
cout<<"******欢迎使用评分系统******"< cout<<"请输入评委个数(>=3): "; cin>>n; cout<<"请输入参赛选手个数(>=2): "; cin>>m; cout< for(i=0;i {cout<<"选手参赛中"< cout<<"编号为: "; cin>>bh[i]; a[r++]=CountAthleteScore(bh[i],ave,n,s,m); } cout< "< for(r=0;r cout< cout< Sort(a,m); Print(a,n,bh); return0; } floatCountAthleteScore(int,floatave,intn,floats[],intm) { intj,k,r=0; staticintw=0; floatt,sum=0.0; ave=0.0; cout<<"请输入该选手的成绩: "< for(k=0;k { cout< cout<<"输入第"< "; cin>>s[k]; if((s[k]>10)||(s[k]<0)) { cout<<"第"< k--; } } for(k=0;k { for(j=k+1;j if(s[k] { t=s[k]; s[k]=s[j]; s[j]=t; } } cout<<"对评委给分由高到低进行排序: "< for(k=0;k cout< cout< cout<<"去掉一个最高分"< "< for(k=0;k { cout< sum=sum+s[k+1]; } cout< ave=sum/float(n-2); b[w++]=ave; cout<<"该选手平均分="< returnave; cout<<"*************************"< } voidSort(floata[],intm) { intj; intr; floatt; for(r=0;r { for(j=0;j if(a[j] { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } cout<<"由高到低排序后的成绩为: "< for(r=0;r cout< cout< cout<<"************************"< cout<<"************************"< } voidPrint(floata[],intm,intbh[]) { inti; if((a[0]! =a[1])&&a[1]! =a[2]) { if(m>2){ cout< cout<<"冠军: "; for(i=0;i { if(b[i]==a[0]) break; } cout< cout< cout<<"亚军: "; for(i=0;i { if(b[i]==a[1]) break; } cout< cout< cout<<"季军: "; for(i=0;i { if(b[i]==a[2]) break; } cout< cout< } else{ cout< cout<<"冠军: "; for(i=0;i { if(b[i]==a[0]) break; } cout< cout< cout<<"亚军: "; for(i=0;i { if(b[i]==a[1]) break; } cout< cout< } } elseif((a[0]==a[1])&&(a[1]! =a[2])) { cout<<"**两位选手并列第一"< if(m>2) { cout<<"冠军编号为: "; for(i=0;i { if(b[i]==a[0]) cout< } cout<<"成绩为: "< cout<<"亚军编号为: "; for(i=0;i { if(b[i]==a[2]) break; } cout< cout<<"成绩为: "< } else { cout<<"冠军编号为: "; for(i=0;i { if(b[i]==a[0]) break; } cout< cout<<"成绩为: "< } } elseif((a[0]! =a[1])&&(a[1]==a[2])) { if(m>2) { cout<<"**几位选手并列第二"< for(i=0;i { if(b[i]==a[0]) break; } cout<<"冠军编号为: "< cout<<"成绩为: "< cout<<"亚军编号为: "; for(i=0;i { if(b[i]==a[1]) cout< } cout<<"成绩为: "< } else { for(i=0;i { if(b[i]==a[0]) cout<<"冠军编号为: "< cout<<"成绩为: "< for(i=0;i { if(b[i]==a[1]) cout<<"亚军编号为: "< } cout<<"成绩为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 比赛 评分 系统 C+ 程序设计