新冠疫情防控要求对校内所有人员进行健康监控。假设校内人员类型分为:教师,学生,员工三类。,—— (1)→定义插象基类_CWhulter.包括存储、输出两个纯虚函数;定义公有派生类 CTeachef,Cstudent,CEuployee,根据疫情防控要求以及所学知识,完成并丰富各类数据成员定义;(10分) . (2)-完成各个派生类的存储函数、输出函数代码编写;(5分)。 (3)-在 main函数中进行仿真,生成多个不同的人员对象,通过基类指针进行存储 及输出测试。(5分)|
时间: 2024-04-23 16:23:05 浏览: 54
好的,我已经明白了你的问题。以下是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
// 定义基类 CWhulter
class CWhulter {
public:
virtual void store() = 0; // 存储函数
virtual void output() = 0; // 输出函数
};
// 定义公有派生类 CTeacher
class CTeacher : public CWhulter {
protected:
string name; // 姓名
int age; // 年龄
string department; // 部门
string phone; // 联系电话
bool temperature; // 体温是否正常
public:
void store() { // 存储函数
cout << "请输入教师姓名:";
cin >> name;
cout << "请输入教师年龄:";
cin >> age;
cout << "请输入教师所在部门:";
cin >> department;
cout << "请输入教师联系电话:";
cin >> phone;
cout << "请输入教师体温是否正常(0代表否,1代表是):";
cin >> temperature;
}
void output() { // 输出函数
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "部门:" << department << endl;
cout << "联系电话:" << phone << endl;
if (temperature) {
cout << "体温正常" << endl;
} else {
cout << "体温异常" << endl;
}
}
};
// 定义公有派生类 CStudent
class CStudent : public CWhulter {
protected:
string name; // 姓名
int age; // 年龄
string major; // 专业
string phone; // 联系电话
bool temperature; // 体温是否正常
public:
void store() { // 存储函数
cout << "请输入学生姓名:";
cin >> name;
cout << "请输入学生年龄:";
cin >> age;
cout << "请输入学生所在专业:";
cin >> major;
cout << "请输入学生联系电话:";
cin >> phone;
cout << "请输入学生体温是否正常(0代表否,1代表是):";
cin >> temperature;
}
void output() { // 输出函数
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "专业:" << major << endl;
cout << "联系电话:" << phone << endl;
if (temperature) {
cout << "体温正常" << endl;
} else {
cout << "体温异常" << endl;
}
}
};
// 定义公有派生类 CEmployee
class CEmployee : public CWhulter {
protected:
string name; // 姓名
int age; // 年龄
string department; // 部门
string phone; // 联系电话
bool temperature; // 体温是否正常
public:
void store() { // 存储函数
cout << "请输入员工姓名:";
cin >> name;
cout << "请输入员工年龄:";
cin >> age;
cout << "请输入员工所在部门:";
cin >> department;
cout << "请输入员工联系电话:";
cin >> phone;
cout << "请输入员工体温是否正常(0代表否,1代表是):";
cin >> temperature;
}
void output() { // 输出函数
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "部门:" << department << endl;
cout << "联系电话:" << phone << endl;
if (temperature) {
cout << "体温正常" << endl;
} else {
cout << "体温异常" << endl;
}
}
};
int main() {
CWhulter* people[5]; // 定义基类指针数组
int type; // 人员类型
for (int i = 0; i < 5; i++) {
cout << "请输入人员类型(1表示教师,2表示学生,3表示员工):";
cin >> type;
switch (type) {
case 1:
people[i] = new CTeacher();
break;
case 2:
people[i] = new CStudent();
break;
case 3:
people[i] = new CEmployee();
break;
default:
cout << "输入有误,请重新输入!" << endl;
i--;
continue;
}
people[i]->store(); // 调用存储函数
}
for (int i = 0; i < 5; i++) {
people[i]->output(); // 调用输出函数
cout << endl;
}
return 0;
}
```
这段代码实现了定义基类 `CWhulter`,并定义了公有派生类 `CTeacher`、`CStudent`、`CEmployee`。每个类都有存储函数和输出函数,存储函数用于输入数据,输出函数用于输出数据。在 `main` 函数中,生成了多个不同类型的人员,并通过基类指针进行存储和输出测试。
阅读全文