Description

某公司有经理(Manager)、雇员(Employee)、小时工(HourlyWorker)和营销人员(CommWorker)四类员工(Person),他们的薪酬计算方法各不一样:
Manager采用年薪制;
Employee按月计酬,方法是:月基本工资+奖金,奖金是指奖励几个月工资;
HourlyWorker是按工作时间计酬,方法是:工作小时*每小时工资;
CommWorker按月计酬,方法是:月基本工资+年销售额的2%;
由于每类员工(Person)的工资输入(input函数)、工资计算办法(pay函数)、显示信息(show函数)均不一样,因此使用多态来实现。
-----------------------------------------------------------------------------
请仔细阅读append.cc代码,并设计并实现这个员工类的派生体系,使main()函数能够运行并得到正确的输出。

Input

输入的第一个整数n,表示用n组测试样例。
每组测试样例占一行,分别为员工职位、员工姓名、基础工资base、附加项k(Manager无此项)。
员工职位为Manager,其base为年薪,单位为千元;
员工职位为Employee,其base为月薪,单位为千元,附加项为奖励k个月的工资;
员工职位为HourlyWorker,其base为时薪,单位为元,附加项为年工作k个小时;
员工职位为CommWorker,其base为月薪,单位为千元,附加项是年销售额k千元;

Output

按格式输出每个人的姓名、职位和最终计算的年薪,详细格式见sample。

Sample Input

6Manager Zhang3 200Employee Li4 8 5Employee Wang5 10 3HourlyWorker Zhao6 45 650CommWorker Liu7 5 300CommWorker Sun8 6 180

Sample Output

Zhang3 (Manager) Annual Salary is 200000.Li4 (Employee) Annual Salary is 136000.Wang5 (Employee) Annual Salary is 150000.Zhao6 (HourlyWorker) Annual Salary is 29250.Liu7 (CommWorker) Annual Salary is 66000.Sun8 (CommWorker) Annual Salary is 75600.
#include <iostream>
#include <iomanip>
#include <string.h>
#include <string>
using namespace std;
class Person{public:string pos;string name;int base;Person(string s):name(s){}virtual void input()=0;virtual void show()=0;virtual int pay()=0;
};
class Manager:public Person{public:int year_base;Manager(string s):Person(s){}void show(){cout<<name<<" (Manager)";}void input(){ cin>>year_base; }int pay(){return year_base*1000;}
};
class Employee:public Person{public:int month_base;int k;Employee(string s):Person(s){}void show(){cout<<name<<" (Employee)";}void input(){ cin>>month_base>>k; }int pay(){return month_base*1000*(12+k);}
};
class HourlyWorker:public Person{public:int hour_base;int k;HourlyWorker(string s):Person(s){}void show(){cout<<name<<" (HourlyWorker)";}void input(){ cin>>hour_base>>k; }int pay(){return hour_base*k;}
};
class CommWorker:public Person{public:int month_base;int k;CommWorker(string s):Person(s){}void show(){cout<<name<<" (CommWorker)";}void input(){ cin>>month_base>>k; }int pay(){return month_base*1000*12+20*k;}
};
int main()
{Person *person;string name, job;int cases;cin >> cases;for(int i = 1; i <= cases; ++i){cin >> job >> name;if(job == "Manager")person = new Manager(name);if(job == "Employee")person = new Employee(name);if(job == "HourlyWorker")person = new HourlyWorker(name);if(job == "CommWorker")person = new CommWorker(name);person->input();person->show();cout << " Annual Salary is " << person->pay() << "." << endl;}}

Problem G: 薪酬计算相关推荐

  1. Problem B: 薪酬计算

    Problem B: 薪酬计算 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 3366  Solved: 1937 [Submit][Status][ ...

  2. Problem E: 薪酬计算

    Problem E: 薪酬计算 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 3497 Solved: 2007 [Submit][Status] De ...

  3. Problem A: 薪酬计算

    Description 某公司有经理(Manager).雇员(Employee).小时工(HourlyWorker)和营销人员(CommWorker)四类员工(Person),他们的薪酬计算方法各不一 ...

  4. Problem B: 薪酬计算 之二

    Description 某公司有经理(Manager).销售(Sales).销售经理(SalesManager)四类雇员(Employee),他们的薪酬计算方法各不一样: 每个雇员(Employee) ...

  5. Problem M: 薪酬计算 之二

    Description 某公司有经理(Manager).销售(Sales).销售经理(SalesManager)四类雇员(Employee),他们的薪酬计算方法各不一样: 每个雇员(Employee) ...

  6. 第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem G. 520-题解

    传送门 Problem A. Mex Query Problem B. Nim Game Problem C. icebound 的账单 Problem G. 520 Problem H. 神殿 Pr ...

  7. Problem G: 货币兑换

    Problem G: 货币兑换 Time Limit: 1 Sec  Memory Limit: 2 MB Submit: 14369  Solved: 6327 [Submit][Status][W ...

  8. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem G. k-palindrome dp

    Problem G. k-palindrome 题目连接: http://opentrains.snarknews.info/~ejudge/team.cgi?SID=c75360ed7f2c7022 ...

  9. Problem G. Pandaria(线段树合并 + Kruskal 重构树)

    Problem G. Pandaria 给定一个有nnn条边的无向连通图,每条边有对应的边权,每个点有一个颜色, 问从一个点出发,经过不超过www的边权,所能到达的点中,颜色出现次数做多且颜色编号最小 ...

最新文章

  1. Codeforces 894.D Ralph And His Tour in Binary Country
  2. zookeeper 分布式计数器
  3. php 提交网页 传值 获取编辑框的值
  4. python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem
  5. even though storm
  6. Poj1995--Raising Modulo Numbers(快速幂)
  7. 谈论 NOD32: 教育网超级 病毒更新服务器: http://222.197.166.33/main.htm
  8. Python:检查‘Dictionary‘是否为空似乎不起作用
  9. 20191222每日一句
  10. Python开胃菜(1):搭建开发环境
  11. mybatis代码自动生成工具-MyBatis Generator
  12. linux simg2img,simg2img工具
  13. omnet++tictoc12案例解析
  14. python猜词游戏演讲ppt_Python 猜词游戏–多步骤猜词+评分系统
  15. 【产品经理】AARRR模型
  16. 基于Gensim创建词向量
  17. 博士申请 | 新加坡南洋理工大学尹旬元老师招收机器学习方向全奖博士/博后
  18. 台湾印象: 太平洋的风
  19. 分布式数据库:如何正确选择分片键?
  20. 前端、vue、Vue3弹幕实现;前端CSS实现弹幕

热门文章

  1. 大数据毕设/课设 - 水质情况实时监测预警可视化设计与实现
  2. 顶层const和底层const
  3. 计算机表格的名次怎么弄,excel表格怎么给成绩排名
  4. python pyecharts 下载生成的render图片 下载背景为黑色
  5. 宋丹丹晒年轻旧照 桃眼杏腮被赞美女
  6. 元好问《摸鱼儿-雁邱词》赏析
  7. python-re模块-hashlib模块
  8. 文件实现输入三行hello,实现在每个hello后面换行
  9. 基于Python的决策树分类器与剪枝
  10. 动漫推荐之恋爱随意链接