用c++定义学生结构体,用一个函数实现学生数据的输入,一个函数计算每个学生三门课的平均成绩,一个函数输出平均分最高的学生的数据,要求语句简单,学生三门成绩用数组表示。
时间: 2024-12-15 09:13:10 浏览: 18
在C++中,你可以首先定义一个名为`Student`的结构体,包含姓名、学号以及用于存储三门课程成绩的数组。然后,可以创建三个函数分别负责输入学生信息、计算平均成绩和找出最高平均分的学生。以下是简单的示例:
```cpp
#include <iostream>
#include <algorithm> // 使用算法库来进行排序
// 定义学生结构体
struct Student {
std::string name;
int id;
float scores[3]; // 用于存储三门课程的成绩
};
// 函数:输入学生数据
void inputStudent(Student& student) {
std::cout << "请输入学生姓名: ";
std::cin >> student.name;
std::cout << "请输入学生学号: ";
std::cin >> student.id;
for (int i = 0; i < 3; ++i) {
std::cout << "请输入第" << (i+1) << "门课程的成绩: ";
std::cin >> student.scores[i];
}
}
// 函数:计算并返回平均成绩
float calculateAverage(const Student& student) {
float sum = 0;
for (float score : student.scores) {
sum += score;
}
return sum / 3;
}
// 函数:找出平均分最高的学生
void findHighestAverage(Student students[], int size) {
Student maxScoreStudent;
maxScoreStudent = students[0]; // 假设第一个学生有最高分
for (int i = 1; i < size; ++i) {
if (calculateAverage(students[i]) > calculateAverage(maxScoreStudent)) {
maxScoreStudent = students[i];
}
}
std::cout << "平均分最高的学生:\n";
std::cout << "姓名: " << maxScoreStudent.name << "\n";
std::cout << "学号: " << maxScoreStudent.id << "\n";
std::cout << "平均成绩: " << calculateAverage(maxScoreStudent) << std::endl;
}
int main() {
const int numStudents = 5; // 假设有5个学生
Student students[numStudents];
for (int i = 0; i < numStudents; ++i) {
inputStudent(students[i]);
}
// 调用函数计算平均成绩并输出最高分学生信息
findHighestAverage(students, numStudents);
return 0;
}
```
阅读全文