有5 个学生,每个学生的数据包括学号、姓名、3 门课的成绩。从键盘输入5个学生数据,要求输出每个学生的各项数据及3 门课平均成绩,以及最高平均分的学生各项数据(包括学号、姓名、3 门课的成绩、平均分数) 用 c++语言
时间: 2024-09-12 17:08:24 浏览: 46
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
要实现这个需求,我们可以创建一个学生类(Student),该类包含学生的基本信息和成绩数据。然后通过输入学生数据,计算每个学生的平均分数,并记录最高平均分的学生信息。最后,输出所有学生的详细信息和平均分,以及平均分数最高的学生信息。
下面是一个简单的C++代码实现:
```cpp
#include <iostream>
#include <iomanip> // 用于格式化输出
using namespace std;
class Student {
public:
string id;
string name;
float scores[3];
float average;
Student() {
id = "";
name = "";
average = 0.0;
}
void calculateAverage() {
average = (scores[0] + scores[1] + scores[2]) / 3;
}
};
int main() {
Student students[5];
Student highestAverageStudent;
float highestAverage = 0.0;
// 输入学生数据
for (int i = 0; i < 5; ++i) {
cout << "输入第 " << i + 1 << " 个学生的信息:" << endl;
cout << "学号:";
cin >> students[i].id;
cout << "姓名:";
cin >> students[i].name;
for (int j = 0; j < 3; ++j) {
cout << "第 " << j + 1 << " 门课的成绩:";
cin >> students[i].scores[j];
}
students[i].calculateAverage();
// 更新最高平均分学生信息
if (students[i].average > highestAverage) {
highestAverage = students[i].average;
highestAverageStudent = students[i];
}
}
// 输出所有学生信息及平均分
cout << fixed << setprecision(2); // 设置输出小数点后两位
cout << "学生信息及平均分:" << endl;
for (int i = 0; i < 5; ++i) {
cout << "学号:" << students[i].id << ", 姓名:" << students[i].name << ", 课程成绩分别为:"
<< students[i].scores[0] << ", " << students[i].scores[1] << ", " << students[i].scores[2]
<< ", 平均分:" << students[i].average << endl;
}
// 输出最高平均分学生信息
cout << "平均分数最高的学生信息:" << endl;
cout << "学号:" << highestAverageStudent.id << ", 姓名:" << highestAverageStudent.name << ", 课程成绩分别为:"
<< highestAverageStudent.scores[0] << ", " << highestAverageStudent.scores[1] << ", " << highestAverageStudent.scores[2]
<< ", 平均分:" << highestAverageStudent.average << endl;
return 0;
}
```
阅读全文