定义含有一个纯虚函数Show的抽象类person,含姓名:char *Name;派生出两个类,学生类Student及教师类,如果学生的三门课考试成绩都在75分以上的学生为优等生,教师一年发表的论文数量在3篇以上(含3篇)为合格教师,并用main( )函数进行测试。
时间: 2024-02-09 20:13:29 浏览: 62
由Person类派生出学生类Student和教师类Teacher
好的,以下是实现代码:
```c++
#include <iostream>
using namespace std;
class person {
public:
char* Name;
virtual void Show() = 0;
};
class Student : public person {
public:
int score1, score2, score3;
Student(char* name, int s1, int s2, int s3) : score1(s1), score2(s2), score3(s3) {
int len = strlen(name) + 1;
Name = new char[len];
strcpy_s(Name, len, name);
}
void Show() {
cout << "姓名:" << Name << ",三门课平均分:" << (score1+score2+score3)/3.0 << endl;
if (score1 >= 75 && score2 >= 75 && score3 >= 75) {
cout << "该学生为优等生!" << endl;
}
}
};
class Teacher : public person {
public:
int paper_num;
Teacher(char* name, int num) : paper_num(num) {
int len = strlen(name) + 1;
Name = new char[len];
strcpy_s(Name, len, name);
}
void Show() {
cout << "姓名:" << Name << ",发表的论文数量:" << paper_num << endl;
if (paper_num >= 3) {
cout << "该教师为合格教师!" << endl;
}
}
};
int main() {
Student s("张三", 80, 90, 85);
Teacher t("李四", 2);
s.Show();
t.Show();
return 0;
}
```
在上面的代码中,我们首先定义了一个抽象类`person`,其中包含一个纯虚函数`Show`。然后我们通过派生出`Student`和`Teacher`两个类来实现具体的功能,分别代表学生和教师。在`Student`类中,我们定义了三个成绩变量`score1`、`score2`和`score3`,并在构造函数中初始化姓名和成绩。在`Show`函数中,我们输出该学生的姓名和三门课的平均分,并判断该学生是否为优等生。在`Teacher`类中,我们定义了一个论文数量变量`paper_num`,并在构造函数中初始化姓名和论文数量。在`Show`函数中,我们输出该教师的姓名和发表的论文数量,并判断该教师是否为合格教师。最后在`main`函数中,我们分别创建了一个学生对象`s`和一个教师对象`t`,并调用它们的`Show`函数进行测试。
阅读全文