设计一个学生类(Student),包含一个根据实际学生人数计算平均分的成员函数。 建立一个对象数组,存放3个学生的数据(学号、成绩),调用该成员函数求这3个学生的平均成绩。
时间: 2023-11-22 11:53:48 浏览: 63
以下是一个C++的实现:
```c++
#include <iostream>
using namespace std;
class Student {
private:
int id;
double score;
public:
Student(int i, double s) {
id = i;
score = s;
}
double getScore() {
return score;
}
static double averageScore(Student students[], int n) {
double total = 0.0;
for (int i = 0; i < n; ++i) {
total += students[i].getScore();
}
return total / n;
}
};
int main() {
Student students[3] = {Student(1, 90.5), Student(2, 80.0), Student(3, 95.0)};
double average = Student::averageScore(students, 3);
cout << "The average score of the three students is: " << average << endl;
return 0;
}
```
在这个实现中,我们定义了一个 `Student` 类,它包含了学号和成绩两个私有成员变量,以及一个构造函数和一个成员函数 `getScore()`。我们还定义了一个静态成员函数 `averageScore()`,它接受一个 `Student` 对象数组和数组的长度作为参数,计算出这些学生的平均成绩,并返回这个平均成绩。
在 `main()` 函数中,我们创建了一个 `Student` 对象数组,存放了3个学生的学号和成绩。然后我们调用了静态成员函数 `averageScore()`,传入这个数组和数组长度作为参数,并将返回值赋给了 `average`。最后我们输出了这3个学生的平均成绩。
注意到这里我们使用了 `static` 关键字来定义静态成员函数。这是因为 `averageScore()` 函数不需要访问任何 `Student` 对象的成员变量,所以它可以被定义成一个类的公共方法,而不需要实例化一个对象。
阅读全文