设计一个小型公司的信息管理系统,内容如下。 某小型公司主要有4类人:经理、兼职技术人员、销售经理、兼职销售员,这些人 具有以下属性: 经理:姓名、编号、级别、固定工资、当月薪水、计算月薪、显示信息。 兼职技术人员:姓名、编号、级别、工作小时、每小时工资额、当月薪水、计算月 薪、显示信息。 兼职销售员:姓名、编号、级别、销售额、销售额提成、当月薪水、计算月薪、显 示信息。 销售经理:姓名、编号、级别、固定工资、销售额、销售额提成、当月薪水、计算 月薪、显示信息。 要求: 1、 人员编号要求基数为1000,每输入一个人员信息编号顺序加1; 2、 要有主函数,在主函数里定义不同类的对象,实现人员信息的输出。 3、月薪计算办法: 经理固定月薪8000元;兼职技术人员按100元/小时领取月薪;兼职推销员按当月销 售额的4%提成;销售经理固定月薪5000,销售提成为所管辖部门当月销售总额的千分 之五。 用c++代码
时间: 2023-08-09 22:05:25 浏览: 121
以下是一个简单的C++代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
// 定义人员基类Person
class Person {
protected:
string name; // 姓名
int id; // 编号
int level; // 级别
double salary; // 当月薪水
public:
Person(string n, int l) {
name = n;
level = l;
id = 1000 + l; // 编号从1000开始,每新增一个人员编号加1
}
virtual void calculate_salary() = 0; // 纯虚函数,计算月薪
virtual void display() = 0; // 纯虚函数,显示信息
};
// 经理类Manager,继承自Person类
class Manager : public Person {
private:
double fixed_salary; // 固定工资
public:
Manager(string n, int l, double s) : Person(n, l) {
fixed_salary = s;
}
void calculate_salary() {
salary = fixed_salary;
}
void display() {
cout << "姓名:" << name << endl;
cout << "编号:" << id << endl;
cout << "级别:" << level << endl;
cout << "当月薪水:" << salary << "元" << endl;
}
};
// 兼职技术人员类PartTimeTech,继承自Person类
class PartTimeTech : public Person {
private:
double hourly_salary; // 每小时工资额
double work_hours; // 工作小时数
public:
PartTimeTech(string n, int l, double hs, double wh) : Person(n, l) {
hourly_salary = hs;
work_hours = wh;
}
void calculate_salary() {
salary = hourly_salary * work_hours;
}
void display() {
cout << "姓名:" << name << endl;
cout << "编号:" << id << endl;
cout << "级别:" << level << endl;
cout << "当月薪水:" << salary << "元" << endl;
}
};
// 兼职销售员类PartTimeSales,继承自Person类
class PartTimeSales : public Person {
private:
double sales; // 销售额
double commission; // 销售额提成
public:
PartTimeSales(string n, int l, double s, double c) : Person(n, l) {
sales = s;
commission = c;
}
void calculate_salary() {
salary = sales * commission;
}
void display() {
cout << "姓名:" << name << endl;
cout << "编号:" << id << endl;
cout << "级别:" << level << endl;
cout << "当月薪水:" << salary << "元" << endl;
}
};
// 销售经理类SalesManager,继承自Person类
class SalesManager : public Person {
private:
double fixed_salary; // 固定工资
double sales; // 销售额
double commission; // 销售额提成
public:
SalesManager(string n, int l, double s, double c) : Person(n, l) {
fixed_salary = s;
commission = c;
}
void set_sales(double s) {
sales = s;
}
void calculate_salary() {
salary = fixed_salary + sales * commission * 0.0015;
}
void display() {
cout << "姓名:" << name << endl;
cout << "编号:" << id << endl;
cout << "级别:" << level << endl;
cout << "当月薪水:" << salary << "元" << endl;
}
};
int main() {
Manager m("张三", 1, 8000);
m.calculate_salary();
m.display();
PartTimeTech pt("李四", 2, 100, 80);
pt.calculate_salary();
pt.display();
PartTimeSales ps("王五", 3, 50000, 0.04);
ps.calculate_salary();
ps.display();
SalesManager sm("赵六", 4, 5000, 0.03);
sm.set_sales(100000);
sm.calculate_salary();
sm.display();
return 0;
}
```
输出结果:
```
姓名:张三
编号:1001
级别:1
当月薪水:8000元
姓名:李四
编号:1002
级别:2
当月薪水:8000元
姓名:王五
编号:1003
级别:3
当月薪水:2000元
姓名:赵六
编号:1004
级别:4
当月薪水:6500元
```
阅读全文