定义含有一个纯虚函数Show的抽象类person,含姓名:char *Name;派生出两个类,学生类Student及教师类,如果学生的三门课考试成绩都在75分以上的学生为优等生,教师一年发表的论文数量在3篇以上(含3篇)为合格教师,并用main( )函数进行测试。
时间: 2024-02-11 15:09:18 浏览: 23
好的,这是一个关于面向对象编程的问题,下面是代码实现:
```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) {
Name = name;
score1 = s1;
score2 = s2;
score3 = s3;
}
void Show() {
int sum = score1 + score2 + score3;
if (score1 >= 75 && score2 >= 75 && score3 >= 75) {
cout << "学生 " << Name << " 的总成绩为:" << sum << ",是优等生。" << endl;
}
else {
cout << "学生 " << Name << " 的总成绩为:" << sum << ",不是优等生。" << endl;
}
}
};
class Teacher : public person {
public:
int papers;
Teacher(char* name, int p) {
Name = name;
papers = p;
}
void Show() {
if (papers >= 3) {
cout << "教师 " << Name << " 发表了 " << papers << " 篇论文,是合格教师。" << endl;
}
else {
cout << "教师 " << Name << " 发表了 " << papers << " 篇论文,不是合格教师。" << endl;
}
}
};
int main() {
Student stu("Tom", 80, 76, 90);
Teacher tea("Lily", 2);
stu.Show();
tea.Show();
return 0;
}
```
在这个程序中,我们先定义了一个抽象类`person`,并在其中定义了一个纯虚函数`Show()`。然后我们又派生出两个类`Student`和`Teacher`,分别实现了`Show()`函数。在`Student`类中,我们判断了学生三门课成绩是否均在75分以上,以确定学生是否为优等生;在`Teacher`类中,我们则判断了教师发表的论文数量是否大于等于3篇,以确定教师是否为合格教师。最后在`main()`函数中,我们分别创建了一个学生对象和一个教师对象,并调用它们的`Show()`函数来输出结果。