某学校对教师每月工资的计算公式如下: 固定工资+额外补贴(课时数*补贴单价)。 1. 教授的固定工资为5000元,每个课时补贴50元; 2.副教授的固定工资为3000元,每个课时补贴为30元; 3. 讲师的固定工资为2000元,每个课时补20元。 4.。定义教师抽象类,派生不同职称的教师类,用c++编写一个完整的程序求若干教师的月工资
时间: 2024-02-18 12:02:13 浏览: 78
好的,根据您的要求,我来为您用 C++ 编写一个完整的程序,求若干教师的月工资。
首先,我们需要定义一个教师抽象类,包含固定工资和课时补贴两个成员变量,以及一个计算月工资的纯虚函数:
```cpp
class Teacher {
public:
Teacher(double base_salary, double bonus_per_hour)
: base_salary(base_salary), bonus_per_hour(bonus_per_hour) {}
virtual double calculate_monthly_salary(int total_hours) = 0;
protected:
double base_salary;
double bonus_per_hour;
};
```
然后,我们派生出三个不同职称的教师类,并实现它们的计算月工资的函数:
```cpp
class Professor : public Teacher {
public:
Professor() : Teacher(5000, 50) {}
virtual double calculate_monthly_salary(int total_hours) override {
return base_salary + total_hours * bonus_per_hour;
}
};
class AssociateProfessor : public Teacher {
public:
AssociateProfessor() : Teacher(3000, 30) {}
virtual double calculate_monthly_salary(int total_hours) override {
return base_salary + total_hours * bonus_per_hour;
}
};
class Lecturer : public Teacher {
public:
Lecturer() : Teacher(2000, 20) {}
virtual double calculate_monthly_salary(int total_hours) override {
return base_salary + total_hours * bonus_per_hour;
}
};
```
最后,我们来测试一下这些教师的月工资:
```cpp
int main() {
Professor prof;
std::cout << prof.calculate_monthly_salary(80) << std::endl; // 9000
AssociateProfessor asso_prof;
std::cout << asso_prof.calculate_monthly_salary(60) << std::endl; // 4800
Lecturer lec;
std::cout << lec.calculate_monthly_salary(40) << std::endl; // 3000
return 0;
}
```
以上就是这个问题的解答,希望能够帮到您!
阅读全文