设计一个学生类,包括学号、姓名、成绩、总成绩(静态成员变量),计算所有学生总成绩的静态成员函数及构造函数和析构函数。创建3个学生对象进行功能验证并求学生的平均成绩
时间: 2024-10-18 20:10:37 浏览: 27
在设计一个学生类时,我们可以按照以下步骤进行:
```cpp
class Student {
private:
static int totalGrades; // 静态成员变量 - 总成绩
int id; // 学号
string name; // 姓名
double score; // 成绩
public:
// 构造函数
Student(int id, const string& name, double score) : id(id), name(name), score(score) {
totalGrades += score;
}
// 计算总成绩的静态成员函数
static double calculateTotalGrades() {
return totalGrades;
}
// 获取学生信息
void displayInfo() {
cout << "学号:" << id << ", 姓名:" << name << ", 成绩:" << score << endl;
}
// 析构函数 (默认)
~Student() {}
// 计算平均成绩(非静态)
double getAverageScore() {
return score;
}
};
// 初始化静态总成绩为0
int Student::totalGrades = 0;
int main() {
// 创建三个学生对象
Student student1(1, "张三", 85);
Student student2(2, "李四", 92);
Student student3(3, "王五", 78);
// 功能验证和求平均成绩
student1.displayInfo();
student2.displayInfo();
student3.displayInfo();
// 计算所有学生总成绩
double total = Student::calculateTotalGrades();
cout << "所有学生总成绩:" << total << endl;
// 求平均成绩(这里只对单个学生有效,如果是所有学生的平均成绩需要遍历)
double average = student1.getAverageScore(); // 只取第一个学生的平均成绩作为示例
cout << "学生" << student1.id << "的平均成绩:" << average << endl;
return 0;
}
```
在这个例子中,我们定义了一个包含学号、姓名、成绩属性的学生类,并实现了构造函数、静态总成绩计算函数、显示学生信息和个人平均成绩的成员函数。在`main()`函数中,创建了三个学生对象,并进行了功能验证以及计算总成绩和一个学生(这里假设是第一个学生)的平均成绩。
阅读全文