模拟一个裁判给比赛选手打分。1.要求如下:⑴ 裁判人数为UMPIRE;⑵ 参赛选手为任意人;⑶ 裁判给选手打分;⑷ 去掉一个最高分一个最低分取其平均分为选手得分;⑸ 按参赛选手的序号显示选手得分;2.提示:⑴ 定义一个类名为Result的记分类为选手记分数据成员至少包括选手编号用整型、姓名用字符数组、裁判为选手的打分及得分用实型数组等成员函数自定必须有构造函数将类的定义保存在resulth中;⑵
result.h文件代码如下:
#ifndef RESULT_H
#define RESULT_H
#include <iostream>
#include <cstring>
using namespace std;
const int UMPIRE = 5; // 裁判人数
class Result {
private:
int number; // 选手编号
char name[20]; // 选手姓名
float score[UMPIRE]; // 裁判打分
float finalScore; // 最终得分
public:
Result(int n, char *na); // 构造函数
void inputScore(); // 输入裁判打分
void getFinalScore(); // 计算最终得分
void display(); // 显示选手得分
};
#endif
exp_105.cpp文件代码如下:
#include "result.h"
int main() {
int n; // 参赛选手人数
cout << "请输入参赛选手人数:";
cin >> n;
Result *players[n]; // 动态创建选手对象数组
// 输入选手编号和姓名
int num;
char name[20];
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "位选手的编号和姓名:";
cin >> num >> name;
players[i] = new Result(num, name);
}
// 裁判打分
cout << "比赛开始,请为选手打分:" << endl;
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "位选手的裁判打分:" << endl;
players[i]->inputScore();
players[i]->getFinalScore();
}
// 按得分排序
for (int i = 0; i < n-1; i++) {
for (int j = i+1; j < n; j++) {
if (players[i]->finalScore < players[j]->finalScore) {
Result *temp = players[i];
players[i] = players[j];
players[j] = temp;
}
}
}
// 显示选手得分
cout << "比赛结束,按编号显示选手得分:" << endl;
for (int i = 0; i < n; i++) {
players[i]->display();
}
// 释放动态分配的空间
for (int i = 0; i < n; i++) {
delete players[i];
}
return 0;
}
Result类的成员函数实现如下:
#include "result.h"
Result::Result(int n, char *na) {
number = n;
strcpy(name, na);
for (int i = 0; i < UMPIRE; i++) {
score[i] = 0;
}
finalScore = 0;
}
void Result::inputScore() {
for (int i = 0; i < UMPIRE; i++) {
cin >> score[i];
}
}
void Result::getFinalScore() {
float maxScore = score[0];
float minScore = score[0];
float sum = score[0];
for (int i = 1; i < UMPIRE; i++) {
if (score[i] > maxScore) {
maxScore = score[i];
}
if (score[i] < minScore) {
minScore = score[i];
}
sum += score[i];
}
finalScore = (sum - maxScore - minScore) / 3;
}
void Result::display() {
cout << number << " " << name << " " << finalScore << endl;
}
原文地址: https://www.cveoy.top/t/topic/bPKY 著作权归作者所有。请勿转载和采集!