编写一个学生类,要求该类完成如下功能:(1)输出每个学生的姓名、学号、成绩;(2)统计并输出学生的总人数、总成绩、平均成绩、最高成绩、最低成绩。C++编写
时间: 2024-12-26 22:29:16 浏览: 53
在C++中,你可以创建一个名为Student的类来满足上述需求。这个类会包含学生的姓名、学号和成绩属性,以及相应的构造函数、成员函数来设置和获取这些信息。同时,还会有一个静态成员函数来统计所有学生的统计数据。下面是简单的实现:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
class Student {
private:
std::string name;
int id;
double score;
public:
// 构造函数
Student(const std::string& name, int id, double score)
: name(name), id(id), score(score) {}
// 输出学生信息
void displayInfo() {
std::cout << "姓名: " << name << ", 学号: " << id << ", 成绩: " << score << std::endl;
}
// 获取学生信息
std::string getName() const { return name; }
int getId() const { return id; }
double getScore() const { return score; }
static void calculateStatistics(std::vector<Student>& students) {
int total_students = students.size();
double total_score = 0, max_score = *std::max_element(students.begin(), students.end(), [](const Student& a, const Student& b) { return a.score < b.score; }),
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.getScore();
}
double average_score = total_score / total_students;
std::cout << "总人数: " << total_students << std::endl;
std::cout << "总成绩: " << total_score << std::endl;
std::cout << "平均成绩: " << average_score << std::endl;
std::cout << "最高成绩: " << max_score << std::endl;
std::cout << "最低成绩: " << min_score << std::endl;
}
};
int main() {
std::vector<Student> students;
students.push_back(Student("张三", 1001, 85));
students.push_back(Student("李四", 1002, 92));
students.push_back(Student("王五", 1003, 96));
for (const auto& student : students) {
student.displayInfo();
}
Student::calculateStatistics(students);
return 0;
}
```
在这个示例中,我们创建了一个Student类,它有三个私有成员变量,对应于姓名、学号和成绩。`displayInfo()`函数用于打印学生的信息,而`calculateStatistics()`是一个静态成员函数,接受一个Student对象的向量,计算并输出学生的总数、总成绩、平均分、最高分和最低分。
在main函数中,我们创建了几个学生实例并调用了这两个方法。
阅读全文
相关推荐
















