Problem B: 合唱比赛开始了!
来源:互联网 发布:网络电视江苏卫视直播 编辑:程序博客网 时间:2024/05/16 00:56
Problem B: 合唱比赛开始了!
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1127 Solved: 631
[Submit][Status][Web Board]
Description
为迎接计算机科技文化节的到来,我院面向一年级学生举办了一场合唱比赛。邀请了若干位专家担任评委,并为每个参赛队评分。现在,请设计一个程序来展示这个比赛过程。
其中,类 Team描述了参赛队的信息,包括:专业名称、每个专家给该参赛队的评分以及最终得分等。类Contest描述了竞赛的信息,包括各个参赛队的列表,并提供
1. void Input()方法:用于输入所有参赛队的信息;
2. void Compute()方法:计算每个代表带队的最终得分。
3. void Show()方法:显示所有代表队的信息。
4. void Sort()方法:根据代表队的最终得分进行排序。
要求:
1. 假设有M个代表队参加比赛,有N个评委进行评分,且评分标准包括P项。
2. 每个评委将为每个代表队打出P个分项分,每项得分都在0~100之间,一个评委为一个代表队评出的最终分数是所给出的所有分项分的平均分。如:P=3,评委1给代表队x打的3个分数为100,90,80,则x代表队得到的来自于评委1的分数为(100+90+80)/3=90。
3. 每个代表队得到的最终分数是N个评委的给出的N个分数值,去掉1个最高分,1个最低分,剩余分数的平均值。如:经过上一步的计算,x代表队得到的来自N=4个评委的得分分别是100,90,80,70,则x代表队的最终得分是(90+80)/2=85。
Input
输入有多行。第一行分别输入M>1,N>3,P>0表示代表队数量、评委人数以及评分标准数。
之后分别输入M个代表的信息。每个代表队信息的第一行是队伍的专业名(10个字母以内),之后的N行是N个评委为该代表队打的分数,其每行有P个数,分别是该评委为该代表队打出的各个分项分。
Output
输出有M行,根据每个代表队的得分,按照从大到小的顺序输出。其中专业名称靠左输出,占11个字符,之后输出成绩。成绩输出2位小数。假定所有队伍的得分都不相同。
Sample Input
Sample Output
HINT
用left来让输出左对齐。
Append Code
한국어< 中文 فارسی English ไทย
All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin
#include <iostream>#include <iomanip>using namespace std;class Team{protected: string majorname; double score[30][30]; double finalscore[110]; double fs; int nn, pp;public: Team() { } ~Team() { }public: void setname(string name) { majorname = name; } void setsore(int n, int p) { nn = n; pp = p; for(int i = 0; i < n; i++) { finalscore[i] = 0; for(int j = 0; j < p; j++) { cin >> score[i][j]; finalscore[i] += score[i][j]; } finalscore[i] /= p; } } void T_Compute(int n) { double _max, _min; for(int i = 0; i < n; i++) { if(i == 0) { _min = finalscore[0]; _max = finalscore[0]; fs = finalscore[0]; } else { if(_min > finalscore[i] ) _min = finalscore[i]; if(_max < finalscore[i] ) _max = finalscore[i]; fs += finalscore[i]; } } fs = (fs - _max - _min) / (n - 2); } void T_show() const { cout <<setiosflags(ios::left) << setw(11) << majorname << fixed << setprecision(2) << fs << endl; } double getfs() const { return fs; }public: Team &operator =(const Team & t) { majorname = t.majorname; fs = t.fs; for(int i = 0; i < pp; i++) { for(int j = 0; j < nn; j++) score[i][j] = t.score[i][j]; finalscore[i] = t. finalscore[i]; } return *this; }};class Contest{private: Team team[100]; int num; int n, p;public: Contest() { } ~Contest() { }public: void Input() { string name; cin >> num >> n >> p; for(int i = 0; i < num; i++) { cin >> name; team[i].setname(name); team[i].setsore(n, p); } } void Compute() { for(int i = 0; i < num; i++) team[i].T_Compute(n); } void Show() const { for(int i = 0; i < num; i++) team[i].T_show(); } void Sort() { Team temp; for(int i = 0; i < num; i++) for(int j = i + 1; j < num; j++) if(team[i].getfs() < team[j].getfs()) { temp = team[i]; team[i] = team[j]; team[j] = temp; } }}; int main(){ Contest contest; contest.Input(); contest.Compute(); contest.Sort(); contest.Show(); return 0;}
- Problem B: 合唱比赛开始了!
- Problem B: 合唱比赛开始了!
- Problem B: 合唱比赛开始了!
- Problem C: 合唱比赛开始了!
- Problem C: 合唱比赛开始了!
- 合唱比赛
- 微软imagine cup 2008 比赛开始了
- Problem B: 选举班干部了!
- 世界游泳锦标赛的游泳比赛终于开始了
- 观看12.9合唱比赛:为了忘却的纪念
- 开始准备比赛
- 搜索比赛B题
- B - 确定比赛名次
- 选课,我选了舞蹈和合唱
- 他选歌太纠结了,有时临比赛开始的前一天才能
- 2014第十三届小金话筒奖比赛(简章)报名开始了
- 雕龙杯Revit中国用户BIM应用大赛开始了真正属于使用者的比赛
- 小菜鸟,开始准备飞思卡尔智能车比赛了。
- 深入理解javascript原型和闭包(3)——prototype原型
- 集合类Collections.sort()的源码分析
- 移动端数据库神器-Realm 项目配置(入门一)
- Windows I/O操作
- Problem A: 求平均年龄
- Problem B: 合唱比赛开始了!
- log4j的基本配置
- Problem C: 向量的运算
- windows环境下python2.7、pycharm、numpy_mkl、scipy、sklearn、Matplotlib、jupyter完整安装教程
- 如何快速构建用户画像?
- 守护进程
- Problem D: 模板是个好东西
- Codeforces Round #373 (Div. 2) A. Vitya in the Countryside —— 基础题
- 同一个电脑安装两个jdk版本