21xrx.com
2025-06-02 02:44:05 Monday
登录
文章检索 我的文章 写文章
C++运动会分数统计
2023-07-08 01:08:58 深夜i     21     0
C++ 运动会 分数统计 编程语言 数据分析

最近,小学举行了一次运动会,班级数学老师想要使用C++编写一个程序,对各班参赛同学的成绩进行统计分析,以便更好地进行课堂教学。

在开始编写程序之前,班级数学老师首先明确了需求和目标。程序需要实现以下功能:

1. 统计每个班级参加比赛的人数和总分数。

2. 将各个班级的平均分从高到低排序输出,并显示各班级的排名和平均分。

3. 输出每个班级成绩最高的同学的姓名和分数。

班级数学老师在编写程序的过程中,采用了以下代码实现了上述功能:

#include <iostream>
#include <string>
using namespace std;
int main() {
  const int C = 5; // 班级总数
  const int S = 3; // 学生总数
  int scores[C][S]; // 每个班级的学生成绩
  string names[C][S]; // 学生姓名
  int totalScores[C] = { 0 }; // 每个班级的总分数
  int totalStudents[C] = { 0 }; // 每个班级的参赛人数
  float avgScores[C]; // 每个班级的平均分
  // 输入每个班级的学生成绩和姓名
  for (int i = 0; i < C; i++) {
    cout << "请输入班级 " << i + 1 << " 的学生姓名和分数:" << endl;
    for (int j = 0; j < S; j++) {
      cin >> names[i][j] >> scores[i][j];
      totalScores[i] += scores[i][j];
      totalStudents[i]++;
    }
    avgScores[i] = float(totalScores[i]) / totalStudents[i];
  }
  // 输出各个班级平均分排序并显示排名和平均分
  int rank[C]; // 存储排名
  for (int i = 0; i < C; i++) {
    rank[i] = i;
  }
  for (int i = 0; i < C - 1; i++) {
    for (int j = i + 1; j < C; j++) {
      if (avgScores[i] < avgScores[j]) {
        swap(avgScores[i], avgScores[j]);
        swap(rank[i], rank[j]);
      }
    }
  }
  cout << "各班级平均分排序显示:" << endl;
  for (int i = 0; i < C; i++) {
    cout << "第" << rank[i] + 1 << "班级,平均分:" << avgScores[i] << endl;
  }
  // 输出各个班级成绩最高的同学姓名和分数
  for (int i = 0; i < C; i++) {
    int maxScore = -1;
    string maxName = "";
    for (int j = 0; j < S; j++) {
      if (scores[i][j] > maxScore) {
        maxScore = scores[i][j];
        maxName = names[i][j];
      }
    }
    cout << "班级" << i + 1 << "的成绩最高的同学是" << maxName << ",分数为" << maxScore << endl;
  }
  return 0;
}

以上程序很好地实现了统计和分析各个班级的成绩,可以帮助数学老师更好地掌握班级同学的学习情况,以便更好地进行课堂教学。

  
  

评论区