c++ 公司员工
Problem Description
某公司有老板Boss、雇员Employee、小时工HourlyWorker和营销人员CommWorker,
每类人员都有姓名、职工编号、年龄、性别、工资等数据。
他们的薪金计算方法如下:
老板实行年薪制,如一年15万;
雇员按月计酬,方法是,基本工资+奖金;
小时工按工作时间计算报酬,方法是,工作小时 _每小时单价;
营销人员按月计酬,方法是,基本工资+销售利润_5%。
设计计算各类人员报酬的程序,打印输出各位工作人员的所有数据。
//你的代码将被嵌在这里
int main() {
Person* pb=new Boss(“张华”, “N001”, 30, “男”);
pb->print();
Person* pe=new Employee(“李明”, “N002”, 40, “男”, 900,1000);
pe->print();
Person* ph=new HourlyWorker(“向力”, “N003”, 38, “男”,30,60);
ph->print();
Person* pc=new CommWorker(“刘晓云”, “N004”, 28, “女”,1600,10000);
pc->print();
delete pb;
delete pe;
delete ph;
delete pc;
return 0;
}
Sample Output
老板
姓名:张华
职工编号:N001
年龄:30
性别:男
年薪:15万元
雇员
姓名:李明
职工编号:N002
年龄:40
性别:男
基本工资:900元
奖金:1000元
月薪:1900元
小时工
姓名:向力
职工编号:N003
年龄:38
性别:男
每小时单价:60元
工作时间:30小时
报酬:1800元
营销人员
姓名:刘晓云
职工编号:N004
年龄:28
性别:女
基本工资:1600元
销售利润:10000元
月酬:2100元
#include <iostream>
using namespace std;
#include<string>
class Person
{
public:
string name, id, sex;
int age;
// Person(){}
virtual void print() = 0;
};
class Boss :public Person//老板
{
public:
Boss(string a, string b, int c, string d)
{
name = a;
id = b;
age = c;
sex = d;
}
void print()
{
cout << "********************老板********************" << endl;
cout << "姓名:" << name << endl;
cout << "职工编号:" << id << endl;
cout << "年龄:" << age<< endl;
cout << "性别:" << sex << endl;
cout << "年薪:" << "15万元" << endl;
}
};
class Employee :public Person//雇员
{
public:
int jiben, jiangjin;
Employee(string a, string b, int c, string d, int e, int f)
{
name = a;
id = b;
age = c;
sex = d;
jiben = e;
jiangjin = f;
}
void print()
{
cout << "********************雇员********************" << endl;
cout << "姓名:" << name << endl;
cout << "职工编号:" << id << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << sex << endl;
cout << "基本工资:" << jiben << "元" << endl;
cout << "奖金:" << jiangjin << "元" << endl;
cout << "月薪:" << jiben + jiangjin << "元" << endl;
}
};
class HourlyWorker :public Person//小时工
{
public:
int time, price;
HourlyWorker(string a, string b, int c, string d, int e, int f)
{
name = a;
id = b;
age = c;
sex = d;
time = e;
price = f;
}
void print()
{
cout << "********************小时工********************" << endl;
cout << "姓名:" << name << endl;
cout << "职工编号:" << id << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << sex << endl;
cout << "每小时单价:" << price << "元" << endl;
cout << "工作时间:" << time << "小时" << endl;
cout << "报酬:" << price * time << "元" << endl;
}
};
class CommWorker :public Person//营销人员
{
public:
int jibeng, lirun;
CommWorker(string a, string b, int c, string d, int e, int f)
{
name = a;
id = b;
age = c;
sex = d;
jibeng = e;
lirun = f;
}
void print()
{
cout << "********************营销人员********************" << endl;
cout << "姓名:" << name << endl;
cout << "职工编号:" << id << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << sex << endl;
cout << "基本工资:" << jibeng << "元" << endl;
cout << "销售利润:" << lirun << "元" << endl;
cout << "月酬:" << jibeng + lirun * 0.05 << "元" << endl;
}
};
int main() {
Person* pb = new Boss("张华", "N001", 30, "男");
pb->print();
Person* pe = new Employee("李明", "N002", 40, "男", 900, 1000);
pe->print();
Person* ph = new HourlyWorker("向力", "N003", 38, "男", 30, 60);
ph->print();
Person* pc = new CommWorker("刘晓云", "N004", 28, "女", 1600, 10000);
pc->print();
delete pb;
delete pe;
delete ph;
delete pc;
return 0;
}
