设计一个简单的人事管理系统,其中包括以下类: (1)员工类(Employee),包含员工编号、姓名、性别、年龄、工资等属性,以及计算工资(calculateSalary)和显示信息(showInfo)两个抽象方法。(2)经理类(Manager),是员工类的子类,增加了部门(Department)属性,以及计算工资(calculateSalary)和显示信息(showInfo)两个方法的具体实现。
时间: 2024-01-21 20:02:51 浏览: 81
好的,下面是一个简单的人事管理系统的设计:
```
// 员工类
class Employee {
protected:
int id; // 员工编号
string name; // 员工姓名
char gender; // 员工性别
int age; // 员工年龄
double salary; // 员工工资
public:
Employee(int id, string name, char gender, int age): id(id), name(name), gender(gender), age(age), salary(0) {}
virtual ~Employee() {}
virtual double calculateSalary() = 0; // 抽象方法:计算工资
virtual void showInfo() = 0; // 抽象方法:显示信息
};
// 经理类
class Manager: public Employee {
private:
string department; // 经理所在部门
public:
Manager(int id, string name, char gender, int age, string department): Employee(id, name, gender, age), department(department) {}
~Manager() {}
double calculateSalary() { // 实现计算工资方法
return salary + 10000; // 基本工资 + 经理津贴
}
void showInfo() { // 实现显示信息方法
cout << "员工编号:" << id << endl;
cout << "员工姓名:" << name << endl;
cout << "员工性别:" << gender << endl;
cout << "员工年龄:" << age << endl;
cout << "员工工资:" << calculateSalary() << endl;
cout << "所在部门:" << department << endl;
}
};
```
在这个系统中,我们定义了一个抽象的员工类 `Employee`,其中包括了员工的基本信息和两个抽象方法 `calculateSalary` 和 `showInfo`。然后我们定义了一个具体的经理类 `Manager`,继承自员工类 `Employee`,增加了部门属性,并实现了父类的两个抽象方法。在 `calculateSalary` 方法中,我们给经理增加了一个津贴,而在 `showInfo` 方法中,我们输出了经理的所有信息。
当需要增加其他类型的员工时,只需要继承自员工类 `Employee`,实现抽象方法即可。这个简单的人事管理系统可以用来管理公司中的员工信息,包括经理、普通员工等。
阅读全文