编写一个程序实现小型公司的工资管理。该公司主要有4类人员:经理,兼职技术人员,销售员和销售经理。要求存储这些人员的编号(编号从1000起)、姓名和月工资,计算月工资并显示全部信息。月工资的计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;销售员按当月销售额的4%提成;销售经理既拿固定工资也领取销售提成,固定月工资5000元,提成为所管辖部门当月销售总额的5%。设基类中的数据成员为保护成员。
2条回答 默认 最新
- CSDN专家-link 2022-09-12 19:00关注
#include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; #include <string> class person { protected: int id; string name; public: person(int id,string name) : id(id),name(name) {} string getName() {return name;} virtual double getSalary() = 0; }; class manager : public person { public: manager(int id,string name) : person(id,name) {} double getSalary() {return 8000;} }; class technical : public person { private: double workHours; public: technical(int id,string name,double workhours) : person(id,name),workHours(workhours) {} double getSalary() {return 100*workHours;} }; class saler : public person { private: double sales; public: saler(int id,string name,double sales) : person(id,name),sales(sales) {} double getSalary() {return sales * 0.04;} }; class salermanager: public person { private: double sales; public: salermanager(int id,string name,double sales) : person(id,name),sales(sales){} double getSalary() {return sales*0.05 + 5000;} }; int main() { person *p[4]; p[0] = new manager(1001,"zhangs"); p[1] = new technical(1002,"gaolong",40); p[2] = new saler(1003,"wangw",300000); p[3] = new salermanager(1004,"caofang",300000); for(int i=0;i<4;i++) cout<<p[i]->getName()<<"的月薪是:"<<p[i]->getSalary()<<endl; system("pause"); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 对于知识的学以致用的解释
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败