编写一个程序,已有若干学生的数据,包括学号、姓名、成绩,要求输出这些学生的数据并计算出学生人数和平均成绩(要求将学生人数和总成绩用静态数据成员表示)。
时间: 2023-06-05 22:47:03 浏览: 308
以下是一个示例程序,实现了上述要求:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
public:
Student(int id, string name, double score) {
m_id = id;
m_name = name;
m_score = score;
s_count++;
s_totalScore += score;
}
void print() {
cout << "学号:" << m_id << ",姓名:" << m_name << ",成绩:" << m_score << endl;
}
static int getCount() {
return s_count;
}
static double getAverageScore() {
return s_totalScore / s_count;
}
private:
int m_id;
string m_name;
double m_score;
static int s_count;
static double s_totalScore;
};
int Student::s_count = 0;
double Student::s_totalScore = 0;
int main() {
Student s1(1, "张三", 80);
Student s2(2, "李四", 90);
Student s3(3, "王五", 85);
s1.print();
s2.print();
s3.print();
cout << "学生人数:" << Student::getCount() << endl;
cout << "平均成绩:" << Student::getAverageScore() << endl;
return 0;
}
```
程序中定义了一个`Student`类,包含学号、姓名、成绩等属性,以及静态数据成员`s_count`和`s_totalScore`,分别表示学生人数和总成绩。在`Student`类的构造函数中,每创建一个学生对象,就将`s_count`加1,将`s_totalScore`加上该学生的成绩。在`print`函数中,输出学生的信息。在`getCount`和`getAverageScore`函数中,分别返回`s_count`和`s_totalScore / s_count`,即学生人数和平均成绩。
在`main`函数中,创建了三个学生对象`s1`、`s2`、`s3`,并分别输出它们的信息。最后,调用`Student`类的静态函数`getCount`和`getAverageScore`,输出学生人数和平均成绩。