使用对象数组,计算3个学生某门功课的最终成绩。(提示:定义类Score,数据成员包括学生学号、姓名、平时成绩、期末考试成绩,成员函数包括计算最终成绩、显示成绩)。用cpp编写,使用指针的方式
时间: 2024-10-09 15:16:23 浏览: 23
定义一个学生类(Student),要求: (1)初始化数据成员数据成员(_Sno,_Sname,_Sage); (2)通过属性装饰器定义数据成员(Sno,Sname,Sage); (3)定义特殊方法
首先,我们假设有一个名为`Student`的类,用于存储学生的相关信息,如学号、姓名以及平时成绩和期末考试成绩。然后我们可以创建一个`Score`类来表示单科成绩的计算,并包含相关的成员函数。
```cpp
#include <iostream>
using namespace std;
// 定义Student类
class Student {
public:
int id;
string name;
double average_score; // 平时成绩
// 构造函数
Student(int id, string name, double average)
: id(id), name(name), average_score(average) {}
// 计算总成绩
double calculateTotalScore(double exam_score) {
return average_score + exam_score;
}
// 显示成绩
void displayScore() {
cout << "学生 " << id << " - " << name << " 的总成绩: " << calculateTotalScore(0) << endl;
}
};
int main() {
// 创建3个学生对象并分配内存
Student* students[3] = {new Student(1, "张三", 85),
new Student(2, "李四", 90),
new Student(3, "王五", 80)};
// 学生们参加期末考试
double exam_scores[] = {95, 92, 97};
// 计算每个学生最终成绩
for (int i = 0; i < 3; ++i) {
students[i]->displayScore(); // 使用指针调用显示成绩
students[i]->calculateTotalScore(exam_scores[i]); // 更新总成绩
}
// 打印所有学生的新成绩
for (int i = 0; i < 3; ++i) {
students[i]->displayScore();
}
// 释放内存
for (int i = 0; i < 3; ++i) {
delete students[i];
}
return 0;
}
```
在这个示例中,我们使用了对象数组`students`存储3个`Student`类型的指针,每个元素代表一个学生。通过指针访问`Student`类的成员函数,实现了对每个学生总成绩的计算和显示。在`main`函数结束时,记得使用`delete`操作符释放动态分配的内存以避免内存泄漏。
阅读全文