21xrx.com
2024-09-19 10:14:05 Thursday
登录
文章检索 我的文章 写文章
C++运动会分数统计
2023-07-08 01:08:58 深夜i     --     --
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;

}

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复