编写一个程序实现小型公司的工资管理。该公司主要有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 微信会员卡等级和折扣规则
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
- ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
- ¥15 gdf格式的脑电数据如何处理matlab
- ¥20 重新写的代码替换了之后运行hbuliderx就这样了
- ¥100 监控抖音用户作品更新可以微信公众号提醒
- ¥15 UE5 如何可以不渲染HDRIBackdrop背景
- ¥70 2048小游戏毕设项目
- ¥20 mysql架构,按照姓名分表
- ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分