用C++编程定义学生成绩类 Score,其私有数据成员有学号、姓名、物理成绩、数学成绩、外语成绩、平均成绩,公有带参构造函数 Score 用于初始化数据成员,公有成员函数 ShowO 用于打印学号、姓名、物理成绩、数学成绩、外语成绩、平均成绩。再定义一个能计算学生平均成绩的普通函数 Average(),并将该普通函数定义为 Score 类友元函数。在主函数中定义学生成绩对象s("1001","Zhou',90,80,70),通过构造函数输入除平均成绩外的其他信息,然后调用 Average0函数计算平均成绩,并调用 Show( )函数输出学生成绩
时间: 2024-02-03 08:02:40 浏览: 69
以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Score {
private:
string id; // 学号
string name; // 姓名
double physics; // 物理成绩
double math; // 数学成绩
double english; // 外语成绩
double average; // 平均成绩
public:
// 带参构造函数
Score(string id, string name, double physics, double math, double english) {
this->id = id;
this->name = name;
this->physics = physics;
this->math = math;
this->english = english;
this->average = 0.0; // 初始值为0
}
// 友元函数,计算平均成绩
friend double Average(Score s);
// 打印学号、姓名、物理成绩、数学成绩、外语成绩、平均成绩
void Show() {
cout << "学号:" << id << endl;
cout << "姓名:" << name << endl;
cout << "物理成绩:" << physics << endl;
cout << "数学成绩:" << math << endl;
cout << "外语成绩:" << english << endl;
cout << "平均成绩:" << average << endl;
}
};
// 计算平均成绩
double Average(Score s) {
double sum = s.physics + s.math + s.english;
return sum / 3.0;
}
int main() {
Score s("1001", "Zhou", 90.0, 80.0, 70.0);
s.Show(); // 打印数据成员初始值
// 计算平均成绩并更新数据成员
s.average = Average(s);
cout << "计算平均成绩后:" << endl;
s.Show(); // 打印更新后的数据成员
return 0;
}
```
输出结果:
```
学号:1001
姓名:Zhou
物理成绩:90
数学成绩:80
外语成绩:70
平均成绩:0
计算平均成绩后:
学号:1001
姓名:Zhou
物理成绩:90
数学成绩:80
外语成绩:70
平均成绩:80
```
阅读全文