用c++的iostream头文件完成题目某小型公司主要有4类人:经理、兼职技术人员、销售经理、兼职销售员,这些人 具有以下属性: 经理:姓名、编号、级别、固定工资、当月薪水、计算月薪、显示信息。 兼职技术人员:姓名、编号、级别、工作小时、每小时工资额、当月薪水、计算月 薪、显示信息。 兼职销售员:姓名、编号、级别、销售额、销售额提成、当月薪水、计算月薪、 示信息。 销售经理:姓名、编号、级别、固定工资、销售额、销售额提成、当月薪水、计算 月薪、显示信息。 要求: 1. 人员编号要求基数为1000,每输入一个人员信息编号顺序加1; 要有主函数,在主函数里定义不同类的对象,实现人员信息的输出。 3、月薪计算办法: 经理固定月薪8000元;兼职技术人员按100元/小时领取月薪;兼职推销员按当月 销售额的4%提成;销售经理固定月薪5000,销售提成为所管辖部门当月销售总额的 千分之五。
时间: 2023-08-11 07:07:00 浏览: 180
C语言头文件 IOSTREAM
5星 · 资源好评率100%
好的,这是一个比较典型的面向对象的编程问题,需要定义不同的类来表示不同的人员类型。我会给你提供一个示例代码,你可以参考这个代码来完成你的题目要求。
```c++
#include <iostream>
using namespace std;
// 定义人员基类
class Person {
public:
string name;
int id;
int level;
double salary;
virtual void calculate_salary() = 0;
virtual void display_info() = 0;
};
// 经理类
class Manager : public Person {
public:
Manager(string n, int l, double s) {
name = n;
level = l;
salary = s;
id = 1000 + count++;
calculate_salary();
}
void calculate_salary() {
salary = 8000;
}
void display_info() {
cout << "姓名:" << name << endl;
cout << "编号:" << id << endl;
cout << "级别:" << level << endl;
cout << "固定工资:" << salary << endl;
cout << "当月薪水:" << salary << endl;
}
private:
static int count;
};
int Manager::count = 0;
// 兼职技术人员类
class PartTimeTechnician : public Person {
public:
PartTimeTechnician(string n, int l, double h, double r) {
name = n;
level = l;
hour = h;
rate = r;
id = 1000 + count++;
calculate_salary();
}
void calculate_salary() {
salary = hour * rate;
}
void display_info() {
cout << "姓名:" << name << endl;
cout << "编号:" << id << endl;
cout << "级别:" << level << endl;
cout << "工作小时:" << hour << endl;
cout << "每小时工资额:" << rate << endl;
cout << "当月薪水:" << salary << endl;
}
private:
double hour;
double rate;
static int count;
};
int PartTimeTechnician::count = 0;
// 兼职销售员类
class PartTimeSalesman : public Person {
public:
PartTimeSalesman(string n, int l, double s, double r) {
name = n;
level = l;
sales = s;
rate = r;
id = 1000 + count++;
calculate_salary();
}
void calculate_salary() {
salary = sales * rate;
}
void display_info() {
cout << "姓名:" << name << endl;
cout << "编号:" << id << endl;
cout << "级别:" << level << endl;
cout << "销售额:" << sales << endl;
cout << "销售额提成:" << rate << endl;
cout << "当月薪水:" << salary << endl;
}
private:
double sales;
double rate;
static int count;
};
int PartTimeSalesman::count = 0;
// 销售经理类
class SalesManager : public Person {
public:
SalesManager(string n, int l, double s, double r) {
name = n;
level = l;
sales = s;
rate = r;
id = 1000 + count++;
calculate_salary();
}
void calculate_salary() {
salary = 5000 + sales * rate;
}
void display_info() {
cout << "姓名:" << name << endl;
cout << "编号:" << id << endl;
cout << "级别:" << level << endl;
cout << "固定工资:" << 5000 << endl;
cout << "销售额:" << sales << endl;
cout << "销售额提成:" << rate << endl;
cout << "当月薪水:" << salary << endl;
}
private:
double sales;
double rate;
static int count;
};
int SalesManager::count = 0;
int main() {
// 创建经理对象
Manager m("张三", 1, 8000);
m.display_info();
// 创建兼职技术人员对象
PartTimeTechnician ptt("李四", 2, 80, 100);
ptt.display_info();
// 创建兼职销售员对象
PartTimeSalesman pts("王五", 3, 10000, 0.04);
pts.display_info();
// 创建销售经理对象
SalesManager sm("赵六", 4, 5000, 0.005);
sm.display_info();
return 0;
}
```
这段代码定义了一个 Person 基类,然后分别定义了经理、兼职技术人员、兼职销售员和销售经理这四个子类,每个子类都继承了 Person 基类,并重写了 calculate_salary() 和 display_info() 两个虚函数。
在主函数中,我们分别创建了四个不同类型的对象,并调用了它们的 display_info() 函数来输出人员信息。
阅读全文