用C++编写一个程序,要求您提供 10 条学生记录。每条记录都包含一个名称(不带空格)和三门课程的分数(整数,1 到 5)。输出如下列表,并计算每个学生和每个课程的平均分数 (in)。输出每门课程的最低和最高分数
时间: 2024-09-19 17:15:15 浏览: 33
在C++中,你可以创建一个结构体(struct)来存储学生的姓名和成绩,然后用向量(vector)来存储10条学生记录。下面是一个简单的示例程序:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
// 定义学生记录结构体
struct StudentRecord {
std::string name;
int course1, course2, course3;
};
int main() {
// 存储10条学生记录的向量
std::vector<StudentRecord> students;
// 提示用户输入10条记录
for (int i = 0; i < 10; ++i) {
StudentRecord student;
std::cout << "请输入第" << i + 1 << "名学生的信息(例如:John 4 3 5):" << std::endl;
std::cin >> student.name >> student.course1 >> student.course2 >> student.course3;
students.push_back(student);
}
// 计算每个学生和每门课程的平均分数
double total_course_scores[3] = {0};
for (const auto& student : students) {
total_course_scores[0] += student.course1;
total_course_scores[1] += student.course2;
total_course_scores[2] += student.course3;
std::cout << "学生 " << student.name << " 的平均分数: "
<< (total_course_scores[0] / 3) << " 分\n";
}
// 计算每门课程的最低和最高分数
int min_scores[3] = {INT_MAX}, max_scores[3] = {INT_MIN};
for (StudentRecord const& student : students) {
if (student.course1 < min_scores[0]) min_scores[0] = student.course1;
if (student.course1 > max_scores[0]) max_scores[0] = student.course1;
if (student.course2 < min_scores[1]) min_scores[1] = student.course2;
if (student.course2 > max_scores[1]) max_scores[1] = student.course2;
if (student.course3 < min_scores[2]) min_scores[2] = student.course3;
if (student.course3 > max_scores[2]) max_scores[2] = student.course3;
}
std::cout << "课程1的最低分: " << min_scores[0] << ", 最高分: " << max_scores[0] << "\n";
std::cout << "课程2的最低分: " << min_scores[1] << ", 最高分: " << max_scores[1] << "\n";
std::cout << "课程3的最低分: " << min_scores[2] << ", 最高分: " << max_scores[2] << "\n";
return 0;
}
```
运行此程序后,它会提示用户输入10名学生的姓名和成绩,然后计算并显示每个学生和各课程的平均分数,以及每门课程的最低和最高分数。
阅读全文