某学校对教师每月工资的计算公式如下:固定工资+额外补贴。教授的固定工资为5000元,每个课时补贴50元;副教授的固定工资为3000元,每个课时补贴为30元;讲师的固定工资为2000元,每个课时补20元。定义教师抽象类,派生不同职称的教师类,编写程序求若干教师的月工资。,用c++
时间: 2024-03-11 13:50:57 浏览: 100
学校教师工资管理系统课设C++
5星 · 资源好评率100%
好的,以下是用 C++ 实现的代码:
```cpp
#include <iostream>
using namespace std;
// 定义教师抽象类
class Teacher {
public:
virtual int calculateSalary() = 0; // 计算工资的纯虚函数
};
// 派生教授类
class Professor : public Teacher {
public:
Professor(int hours) : hours(hours) {} // 构造函数
int calculateSalary() { // 实现计算工资的函数
return 5000 + hours * 50;
}
private:
int hours; // 上课小时数
};
// 派生副教授类
class AssociateProfessor : public Teacher {
public:
AssociateProfessor(int hours) : hours(hours) {} // 构造函数
int calculateSalary() { // 实现计算工资的函数
return 3000 + hours * 30;
}
private:
int hours; // 上课小时数
};
// 派生讲师类
class Lecturer : public Teacher {
public:
Lecturer(int hours) : hours(hours) {} // 构造函数
int calculateSalary() { // 实现计算工资的函数
return 2000 + hours * 20;
}
private:
int hours; // 上课小时数
};
int main() {
// 创建教师对象并计算工资
Professor p(80);
AssociateProfessor ap(60);
Lecturer l(40);
// 输出工资
cout << "教授的月工资为:" << p.calculateSalary() << "元" << endl;
cout << "副教授的月工资为:" << ap.calculateSalary() << "元" << endl;
cout << "讲师的月工资为:" << l.calculateSalary() << "元" << endl;
return 0;
}
```
输出结果为:
```
教授的月工资为:9000元
副教授的月工资为:4800元
讲师的月工资为:2800元
```
希望能解决你的问题!
阅读全文