用C++写出公司人事管理系统中的员工类employee:protected数据成员包括:个人编号individualEmpNo、姓名name、级别grade、月薪accumPay;public成员函数包括:设置姓名SetName(char *)、升级promote(int)、设置月薪SetAccumPay (float pa)、获取个人编号GetindividualEmpNo()、获取姓名GetName()、获取级别Getgrade()、获取月薪GetAccumPay()、计算薪资pay()、显示人员信息showInfo()。 公司员工分为:技术人员technician、销售人员salesman、管理人员manager、销售经理salesmanager。 其中:技术人员的薪资=每小时酬金hourlyPay*当月工作时数workHours 销售人员的薪资=当月销售额sales*按销售额提取的百分比CommRate 管理人员的薪资=固定月薪数monthlyPay 销售经理的薪资= monthlyPay+ sales*CommRate
时间: 2023-07-10 19:16:34 浏览: 36
下面是用C++实现的employee类:
```cpp
class employee {
protected:
int individualEmpNo; // 个人编号
char name[20]; // 姓名
int grade; // 级别
float accumPay; // 月薪
public:
void SetName(char* n) { strcpy(name, n); } // 设置姓名
void promote(int g) { grade = g; } // 升级
void SetAccumPay(float pa) { accumPay = pa; } // 设置月薪
int GetindividualEmpNo() { return individualEmpNo; } // 获取个人编号
char* GetName() { return name; } // 获取姓名
int Getgrade() { return grade; } // 获取级别
float GetAccumPay() { return accumPay; } // 获取月薪
virtual float pay() = 0; // 计算薪资
virtual void showInfo() = 0; // 显示人员信息
};
class technician : public employee {
private:
float hourlyPay; // 每小时酬金
float workHours; // 当月工作时数
public:
technician(int no, char* n, int g, float ap, float hp, float wh) {
individualEmpNo = no;
strcpy(name, n);
grade = g;
accumPay = ap;
hourlyPay = hp;
workHours = wh;
}
float pay() { return hourlyPay * workHours; } // 计算薪资
void showInfo() { // 显示人员信息
cout << "个人编号:" << individualEmpNo << endl;
cout << "姓名:" << name << endl;
cout << "级别:" << grade << endl;
cout << "月薪:" << accumPay << endl;
cout << "薪资:" << pay() << endl;
}
};
class salesman : public employee {
private:
float sales; // 当月销售额
float commRate; // 按销售额提取的百分比
public:
salesman(int no, char* n, int g, float ap, float s, float cr) {
individualEmpNo = no;
strcpy(name, n);
grade = g;
accumPay = ap;
sales = s;
commRate = cr;
}
float pay() { return sales * commRate; } // 计算薪资
void showInfo() { // 显示人员信息
cout << "个人编号:" << individualEmpNo << endl;
cout << "姓名:" << name << endl;
cout << "级别:" << grade << endl;
cout << "月薪:" << accumPay << endl;
cout << "薪资:" << pay() << endl;
}
};
class manager : public employee {
private:
float monthlyPay; // 固定月薪数
public:
manager(int no, char* n, int g, float ap, float mp) {
individualEmpNo = no;
strcpy(name, n);
grade = g;
accumPay = ap;
monthlyPay = mp;
}
float pay() { return monthlyPay; } // 计算薪资
void showInfo() { // 显示人员信息
cout << "个人编号:" << individualEmpNo << endl;
cout << "姓名:" << name << endl;
cout << "级别:" << grade << endl;
cout << "月薪:" << accumPay << endl;
cout << "薪资:" << pay() << endl;
}
};
class salesmanager : public manager {
private:
float sales; // 当月销售额
float commRate; // 按销售额提取的百分比
public:
salesmanager(int no, char* n, int g, float ap, float mp, float s, float cr)
: manager(no, n, g, ap, mp), sales(s), commRate(cr) {}
float pay() { return monthlyPay + sales * commRate; } // 计算薪资
void showInfo() { // 显示人员信息
cout << "个人编号:" << individualEmpNo << endl;
cout << "姓名:" << name << endl;
cout << "级别:" << grade << endl;
cout << "月薪:" << accumPay << endl;
cout << "薪资:" << pay() << endl;
}
};
```
注意,employee类中定义了纯虚函数pay()和showInfo(),这两个函数在继承employee的子类中必须被实现。在技术人员、销售人员、管理人员、销售经理四个类中,分别实现了这两个函数。其中销售经理类继承了管理人员类,所以在构造函数中需要调用manager的构造函数。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)