用C++建立一个学生类,要求完成以下功能:输出每个学生的姓名,学号,成绩;统计并输出学生的总人数,总成绩,平均成绩,最高成绩,最低成绩
时间: 2024-10-09 11:03:31 浏览: 33
在C++中,我们可以创建一个名为`Student`的类来实现这个需求。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含min和max函数
class Student {
public:
std::string name;
int id;
float score;
// 构造函数
Student(const std::string& name, int id, float score) : name(name), id(id), score(score) {}
// 输出学生信息
void display() const {
std::cout << "姓名:" << name << ", 学号:" << id << ", 成绩:" << score << std::endl;
}
};
// 定义一个StudentList用于存储和操作学生数据
class StudentList {
private:
std::vector<Student> students;
public:
// 添加学生
void addStudent(const Student& student) {
students.push_back(student);
}
// 显示所有学生的信息
void showAllStudents() const {
for (const auto& student : students) {
student.display();
}
}
// 统计总数、总成绩、平均成绩、最高成绩和最低成绩
void calculateStatistics() const {
int total_students = students.size();
float total_score = 0.0f;
float max_score = *std::max_element(students.begin(), students.end(), [](const Student& a, const Student& b) { return a.score < b.score; });
float min_score = *std::min_element(students.begin(), students.end(), [](const Student& a, const Student& b) { return a.score > b.score; });
for (const auto& student : students) {
total_score += student.score;
}
float average_score = total_score / total_students;
std::cout << "总人数:" << total_students << ", 总成绩:" << total_score << ", 平均成绩:" << average_score << ", 最高成绩:" << max_score << ", 最低成绩:" << min_score << std::endl;
}
};
```
你可以使用`StudentList`类来管理学生信息,并通过`addStudent`方法添加新学生,然后调用`showAllStudents`显示所有学生,以及`calculateStatistics`来计算统计结果。
阅读全文