用c++开发一个工资发放系统,根据工作类别自动计算发放工资。基类为Employee类,派生类有boss,领取固定的周薪;salesman的工资是基本工资加上一定的销售额;hourlyworker按照小时获得报酬,外加加班费。设计一个通用的计算不同类型工资的函数。
时间: 2024-02-27 13:55:48 浏览: 99
C++开发的工资管理系统
好的,根据您的要求,我可以给您提供一个简单的工资发放系统的框架。首先,我们需要定义一个基类 Employee 类,里面包含了员工的基本信息,如姓名、工号、工作类别等等。然后,我们需要定义三个派生类,分别是 Boss、Salesman 和 HourlyWorker,分别对应不同的工作类别。
以下是代码示例:
```c++
#include <iostream>
#include <string>
using namespace std;
class Employee {
public:
Employee(string name, int id, string type) : name(name), id(id), type(type) {}
virtual double getSalary() = 0; // 纯虚函数,用于计算工资
protected:
string name; // 姓名
int id; // 工号
string type; // 工作类别
};
class Boss : public Employee {
public:
Boss(string name, int id) : Employee(name, id, "Boss") {}
double getSalary() override {
return 10000.0; // 固定的周薪
}
};
class Salesman : public Employee {
public:
Salesman(string name, int id, double basicSalary, double sales) : Employee(name, id, "Salesman"), basicSalary(basicSalary), sales(sales) {}
double getSalary() override {
return basicSalary + sales * 0.1; // 基本工资加上销售额的 10%
}
private:
double basicSalary; // 基本工资
double sales; // 销售额
};
class HourlyWorker : public Employee {
public:
HourlyWorker(string name, int id, double hourlyIncome, int hours, int overtimeHours) : Employee(name, id, "HourlyWorker"), hourlyIncome(hourlyIncome), hours(hours), overtimeHours(overtimeHours) {}
double getSalary() override {
return hourlyIncome * hours + hourlyIncome * 1.5 * overtimeHours; // 按小时获得报酬,加班费按照 1.5 倍计算
}
private:
double hourlyIncome; // 每小时报酬
int hours; // 工作小时数
int overtimeHours; // 加班小时数
};
// 计算工资的通用函数
double calculateSalary(Employee* e) {
return e->getSalary();
}
int main() {
Boss boss("张三", 1001);
Salesman salesman("李四", 1002, 5000.0, 10000.0);
HourlyWorker hourlyWorker("王五", 1003, 50.0, 160, 20);
cout << boss.name << " 的工资是:" << calculateSalary(&boss) << " 元" << endl;
cout << salesman.name << " 的工资是:" << calculateSalary(&salesman) << " 元" << endl;
cout << hourlyWorker.name << " 的工资是:" << calculateSalary(&hourlyWorker) << " 元" << endl;
return 0;
}
```
以上代码定义了一个 Employee 基类,以及三个派生类 Boss、Salesman 和 HourlyWorker。每个派生类都有自己的计算工资的方法,这里使用了虚函数实现动态多态性。最后,我们还定义了一个通用的 calculateSalary 函数,用于计算不同类型员工的工资。在主函数中,我们创建了不同类型的员工对象,分别计算其工资并输出。
希望这个简单的工资发放系统的框架对您有所帮助。
阅读全文