定义一个基类本科学生Student类,有学号number和英语成绩english,计算机成绩computer、平均成绩average四个数据成员。定义一个构造函数、一个可计算平均成绩的函数Getaverge, 一个可显示其学号和平均成绩的函数Show。由Student类派生出研究生Graduate类,Graduate类有一个新数据成员teachAdviser(导师),定义一个构造函数与一个拷贝构造函数,改写Show函数。在Graduate类定义一个静态成员用于统计Graduate人数,定义一个静态成员函数ShowcountG用于显示研究生人数。在main函数中使用Student类和Graduate类。
时间: 2024-02-11 18:10:03 浏览: 53
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
好的,以下是实现上述功能的C++代码:
```c++
#include <iostream>
using namespace std;
class Student {
protected:
int number;
float english, computer, average;
public:
Student(int n, float e, float c) {
number = n;
english = e;
computer = c;
}
float Getaverage() {
average = (english + computer) / 2;
return average;
}
void Show() {
cout << "Student number: " << number << endl;
cout << "Average score: " << Getaverage() << endl;
}
};
class Graduate : public Student {
private:
string teachAdviser;
static int countG;
public:
Graduate(int n, float e, float c, string t) : Student(n, e, c) {
teachAdviser = t;
countG++;
}
Graduate(const Graduate& other) : Student(other) {
teachAdviser = other.teachAdviser;
countG++;
}
static void ShowcountG() {
cout << "Number of graduates: " << countG << endl;
}
void Show() {
cout << "Graduate student number: " << number << endl;
cout << "Average score: " << Getaverage() << endl;
cout << "Teaching adviser: " << teachAdviser << endl;
}
};
int Graduate::countG = 0;
int main() {
Student s(123, 85.5, 90.0);
s.Show();
Graduate g1(456, 90.0, 92.5, "Dr. Smith");
g1.Show();
Graduate g2 = g1;
g2.Show();
Graduate::ShowcountG();
return 0;
}
```
在该程序中,我们定义了一个基类 `Student` 和一个派生类 `Graduate`。`Student` 类包含了学号 `number`、英语成绩 `english`、计算机成绩 `computer`、平均成绩 `average` 四个数据成员,以及一个构造函数、一个可计算平均成绩的函数 `Getaverage()` 和一个可显示学号和平均成绩的函数 `Show()`。`Graduate` 类继承了 `Student` 类,并新增了一个数据成员 `teachAdviser`,以及一个静态成员 `countG` 和一个静态成员函数 `ShowcountG()`。
在 `main()` 函数中,我们创建了一个 `Student` 对象 `s` 和两个 `Graduate` 对象 `g1` 和 `g2`,并分别调用了它们的成员函数 `Show()`。最后,我们调用了静态成员函数 `Graduate::ShowcountG()`,用于显示研究生人数。
阅读全文