学术休假期 大奖赛计分系统进阶版

问题及代码:

/* *copyright (c) 2014,烟台大学计算机学院 *all rights reserved. *文 件 名 : 大奖赛记分系统.cpp *作 者 :冷基栋 *完成日期 :2015年3月5号 *版 本 号 :v1.0 * *问题描述 :大奖赛记分系统 *输入描述 :选手人数,评委人数,选手得分 *程序输出 :选手最后得分,排名 */#include <iostream>#include <iomanip>#include <cstdio>#include <fstream>#include <cstdlib>using namespace std;double s[100][20],r[100][2];void mark(double s[][20],int m,int n,int max1,int min1);void rank(double r[][2],int m,int n);int main(){char d;do{int max1,min1,n,m;cout<<"请输入评委人数:";cin>>n;cout<<"请输入选手人数:";cin>>m;cout<<"请输入打分范围:"<<endl;cout<<"最高分:";cin>>max1;cout<<"最低分:";cin>>min1;mark (s,m,n,max1,min1);cout<<"选手排名为:"<<endl;rank (r,m,n );cout <<"********************SUCCESS********************"<<endl;cout <<"按n退出,,其他继续: ";cin >>d;}while(d!='n');//进行判断return 0;}void mark(double s[][20],int m,int n,int max1,int min1){int i,j;cout<<"请输入选手的成绩("<<min1<<"–"<<max1<<"):"<<endl;cout<<"———————————————–"<<endl;ofstream outfile("mark.txt",ios::out);if(!outfile){cerr<<"open error!"<<endl;exit(1);}for(i=0; i<m; i++){cout<<"第"<<i+1<<"位选手得分:";double sum=0,max=-1,min=101,average=0,b;for(j=0; j<n; j++){cin>>s[i][j];if(s[i][j]>max1||s[i][j]<min1){cout<<"请重新输入分数"<<endl;i=i-1;continue;}b=s[i][j];sum+=s[i][j];if(b>=max&&b<=max1) max=b;if(b<=min&&b>=min1) min=b;}cout << "去掉一个最高分:" <<max;cout << " 去掉一个最低分:" <<min<< endl;average=(sum-max-min)/(n-2);cout <<"第"<<i+1<<"位选手的最后得分是:"<<average<<endl;//输出结果r[i][1]=average;outfile<<average<<endl;cout<<"———————————————–"<<endl;}outfile.close();}void rank(double r[][2],int m,int n){int i,j,k;double t;for(i=0; i<n; i++){r[i][0]=i;}for(j=0; j<=m-1; j++)for(i=0; i<m-j-1; i++)if (r[i][1]<r[i+1][1]){t=r[i][1];r[i][1]=r[i+1][1];r[i+1][1]=t;k=r[i][0];r[i][0]=r[i+1][0];r[i+1][0]=k;}for(i=0; i<m; i++)cout<<"第"<<i+1<<"名:"<<"选手"<<r[i][0]+1<<endl;}

运行结果:

知识点总结:

成绩保存到文档

学习心得:

好好学习 天天向上

感谢党和国家领导人



或许人生就是一场旅行,在旅行中遇到的每一个人,

学术休假期 大奖赛计分系统进阶版

相关文章:

你感兴趣的文章:

标签云: