C++创建一个教工类,包含工号、姓名、工资等,输出部分教工资料;派生一个教师类、实验员类,计算工资,并输出资料
时间: 2024-10-18 16:05:44 浏览: 41
在C++中,我们可以创建一个基础的教工类(Employee),然后通过继承和多态来派生出教师类(Teacher)和实验员类(LabAssistant)。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
// 教工基类
class Employee {
public:
int id;
std::string name;
double salary;
// 构造函数
Employee(int _id, std::string _name, double _salary)
: id(_id), name(_name), salary(_salary) {}
// 输出基本信息
void display() const {
std::cout << "工号:" << id << ", 姓名:" << name << ", 工资:" << salary << std::endl;
}
};
// 教师派生类
class Teacher : public Employee {
public:
// 计算教师工资,假设额外有教学补贴
double calculateSalary() const {
return salary + 0.1 * salary; // 假设每千元工资有100元补贴
}
// 重写显示信息
void display() const override {
std::cout << "我是教师," << Employee::display() << ", 补贴后的工资:" << calculateSalary() << std::endl;
}
};
// 实验员派生类
class LabAssistant : public Employee {
public:
// 计算实验员工资,可能基于小时计酬
double calculateSalary() const {
return 20 * salary / 8; // 假设按8小时工作制,每小时20元
}
// 重写显示信息
void display() const override {
std::cout << "我是实验员," << Employee::display() << ", 按小时计算的工资:" << calculateSalary() << std::endl;
}
};
int main() {
// 创建实例并输出资料
Teacher teacher(1001, "张三", 5000);
teacher.display();
LabAssistant labAssistant(2001, "李四", 6000);
labAssistant.display();
return 0;
}
```
在这个例子中,`display()`方法在各个派生类中被重写,实现了多态。当你打印教师或实验员的资料时,会根据他们的特定类别计算和显示工资。
阅读全文