c++学生成绩管理:有5个学生,每个学生的数据包括学号、姓名、班级、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及平均分最高的学生并输出该学生的数据(包括学号、姓名、班级、三门课成绩,平均分)。
时间: 2024-09-19 17:03:36 浏览: 23
在C++中,我们可以创建一个简单的结构体或者类来表示一个学生,并使用一个数组或者动态容器如vector来存储五个学生的数据。这里我们假设使用结构体Student,并包含成员变量如学号(id)、姓名(name)、班级(class)、以及课程成绩(scores[])。以下是基本步骤:
1. 首先,定义一个Student结构体:
```cpp
struct Student {
int id;
string name;
string class_name;
float scores[3]; // 学生有三门课的成绩
};
```
2. 创建一个函数来读取用户输入的学生信息并计算平均分:
```cpp
void inputAndCalculateAverage(Student& student) {
// 读取学生信息
cin >> student.id >> student.name >> student.class_name;
for (int i = 0; i < 3; ++i) {
cin >> student.scores[i];
}
float average = calculateAverage(student.scores); // 计算平均分
cout << "学生 " << student.id << ": 名称 - " << student.name
<< ", 班级 - " << student.class_name
<< ", 平均成绩 - " << average << endl;
}
```
3. 函数calculateAverage用于计算总分除以3得到平均分:
```cpp
float calculateAverage(float scores[]) {
float sum = 0;
for (int i = 0; i < 3; ++i) {
sum += scores[i];
}
return sum / 3.0f;
}
```
4. 主函数部分,遍历学生数组,找到平均分最高的学生:
```cpp
int main() {
Student students[5]; // 存储5个学生数据
for (int i = 0; i < 5; ++i) {
inputAndCalculateAverage(students[i]);
}
// 找到平均分最高者
Student maxAverageStudent;
float highestAverage = students[0].average;
for (int i = 1; i < 5; ++i) {
if (students[i].average > highestAverage) {
maxAverageStudent = students[i];
highestAverage = students[i].average;
}
}
cout << "平均分最高的学生: 学号 - " << maxAverageStudent.id
<< ", 名称 - " << maxAverageStudent.name
<< ", 班级 - " << maxAverageStudent.class_name
<< ", 平均成绩 - " << maxAverageStudent.average << endl;
return 0;
}
```