编写一个程序实现小型公司的工资管理。该公司主要有4类人员:经理,兼职技术人员,销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资的计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;销售员按当月销售额的4%提成;销售经理既拿固定工资也领取销售提成,固定月工资5000元,提成为所管辖部门当月销售总额的5%。
c++问题,上次少发了一些内容
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2022-09-14 09:15关注
不是写代码了么,不采纳也不重复。而且题目有错误,部门月销售额200万,5%提成的话,是10万,不是1万,所以销售经理收入怎么只有15000呢?应该是千分之五
按照你的样例写的typedef struct _emp { int id; string name; }emp; #include <iostream> using namespace std; #include <string> class employee { protected: int id; string name; public: employee(int id,string name) : id(id),name(name) {} string getName() {return name;} virtual double getSalary() = 0; }; class manager : virtual public employee { protected: double salary; public: manager(int id,string name) : employee(id,name) {salary = 8000;} double getSalary() {return salary;} }; class technician : public employee { private: double workHours; public: technician(int id,string name,double workhours) : employee(id,name),workHours(workhours) {} double getSalary() {return 100*workHours;} }; class salesman : virtual public employee { protected: double sales; public: salesman(int id,string name,double sales) : employee(id,name),sales(sales) {} double getSalary() {return sales * 0.04;} }; class salesmanager: public salesman,manager { public: salesmanager(int id,string name,double sales) : salesman(id,name,sales),manager(id,name),employee(id,name){salary = 5000;} double getSalary() {return sales * 0.005 + manager::getSalary();} }; int main() { emp e[4]; for(int i=0;i<4;i++) { cout<<"职工编号:"; cin>>e[i].id; cout<<"职工姓名:"; cin>>e[i].name; } manager *man = new manager(e[0].id,e[0].name); cout<<man->getName()<<"的月薪是:"<<man->getSalary()<<endl; double workhours; cout<<e[1].name<<"本月工作时数:"; cin>>workhours; technician *tech = new technician(e[1].id,e[1].name,workhours); cout<<tech->getName()<<"的月薪是:"<<tech->getSalary()<<endl; double sales; cout<<e[2].name<<"本月销售额:"; cin>>sales; salesman *sale = new salesman(e[2].id,e[2].name,sales); cout<<sale->getName()<<"的月薪是:"<<sale->getSalary()<<endl; cout<<e[3].name<<"所管部门月销售额:"; cin>>sales; salesmanager *sm = new salesmanager(e[3].id,e[3].name,sales); cout<<sm->getName()<<"的月薪是:"<<sm->getSalary()<<endl; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
- ¥500 52810做蓝牙接受端
- ¥15 基于PLC的三轴机械手程序
- ¥15 多址通信方式的抗噪声性能和系统容量对比
- ¥15 winform的chart曲线生成时有凸起
- ¥15 msix packaging tool打包问题
- ¥15 finalshell节点的搭建代码和那个端口代码教程
- ¥15 Centos / PETSc / PETGEM
- ¥15 centos7.9 IPv6端口telnet和端口监控问题
- ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作