Problem B: 薪酬计算

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 3366  Solved: 1937
[Submit][Status][Web Board]

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.

HINT

Append Code

append.c, append.cc,

[Submit][Status][Web Board]

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

#include <iostream>

#include <cstring>

#include <cstdio>

#include <algorithm>

#include <cmath>

using namespace std;

class Person

{

public:

    virtual int  input()=0;

    virtual int pay()=0;

    virtual void show()=0;

};

class Manager: public Person

{

public:

    string name;

    int baseMoney;

    Manager(string name):name(name){}

    int input(){cin>>baseMoney;}

    int pay(){return baseMoney*1000;}

    void show(){cout<<name<<" (Manager)";}

};

class Employee:public Person

{

public:

    string name;

    int baseMoney;

    int k;

    Employee(string name):name(name){}

    int input(){cin>>baseMoney>>k;}

    int pay(){return (k+12)*baseMoney*1000;}

    void show(){cout<<name<<" (Employee)";}

};

class HourlyWorker:public Person

{

public:

    string name;

    int baseMoney;

    int k;

    HourlyWorker(string name):name(name){}

    int input(){cin>>baseMoney>>k;}

    int pay(){return baseMoney*k;}

    void show(){cout<<name<<" (HourlyWorker)";}

};

class CommWorker:public Person

{

public:

    string name;

    int baseMoney;

    int k;

    CommWorker(string name):name(name){}

    int input(){cin>>baseMoney>>k;}

    int pay(){return baseMoney*1000*12+k*20;}

    void show(){cout<<name<<" (CommWorker)";}

};

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 B: 薪酬计算相关推荐

  1. Problem E: 薪酬计算

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

  2. Problem A: 薪酬计算

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

  3. Problem B: 薪酬计算 之二

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

  4. Problem G: 薪酬计算

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

  5. Problem M: 薪酬计算 之二

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

  6. 115_Power Pivot之HR薪酬计算:公积金、社保、个税、实发工资相关

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 1.之前写了一个关于入离调转的pp应用,现在个税新增专项附加扣除项目,借此写一个关于薪酬计算的案例: 2.本案例 ...

  7. Java 多态的薪酬计算的练习

    一个简单的 Java 多态的薪酬计算,主要练习面向对象编程的函数方法, public class SalaryManage {public static void main(String[] args ...

  8. Schema_CN28_CNNG净薪酬计算

    行     功能  参1  参2  参3  参4  D 文本 000010 COM                             净薪酬计算 000020 BLOCK BEG         ...

  9. Problem D. L04-04 计算银行存款(复利简单问题)

    Problem D. L04-04 计算银行存款 计算银行存款余额和利息:假设银行存款季度利息是5.3\%5.3%,根据输入的原始数据计算利息和账户余额,并输出每个季度的利息和账户余额. 输入 共两个 ...

最新文章

  1. python编程前面需要一个空格怎么做_初学python,不明白代码之间时空格的用处
  2. Python 命令pip install pygame安装报错
  3. 2020-11-09
  4. spring boot配置dubbo注意事项
  5. jpa 数据库方言_使用Hibernate和Oracle 10g方言,如何用JPA生成我的id?
  6. linux系统下文件查找
  7. 计算机办公软件应用实训,办公软件office实训计划
  8. 吃饭?睡觉?打豆豆?
  9. [LOJ#6198]谢特[后缀数组+trie+并查集]
  10. php简单论坛登录注册,php登录注册求救
  11. 昨天,我又“装”上了Windows 1.0
  12. 荣耀MagicBook Pro性能测试,“秀”出硬实力
  13. 关于“前台根据后台值,操作字段、显示或select选中状态”的几种做法
  14. Windows达梦数据库安装及整合SpringBoot
  15. python设计一个date类数据成员有年月日_设计一个日期类Date,包括年、月、日等私有成员。要求实现日期的基本运算,例如某日期加上天数或减去天数...
  16. 当兵期间可以考英语计算机考试吗,当兵期间可以考四级吗
  17. ubuntu1804安装opencv
  18. CAN接口测试工装研究
  19. leecode:977. 有序数组的平方
  20. python(11)—— 面向对象编程基础(对象,类,属性,封装,继承,多态)

热门文章

  1. web期末网站设计大作业(中华传统文化主题学生网页设计源码)
  2. android直播切换浮窗,直播悬浮窗怎么设置
  3. mysql如何不停机迁移_如何实现真正的不停机数据迁移?
  4. 开源海思开发板(HIVIEW开发板)
  5. Prim算法解决最小生成树 (解决修路问题)
  6. HFSS同轴线、微带线、共面波导端口设置
  7. 《数据结构与算法》第二版-陈卫卫-陆军工程大学811数据结构教材 第1-2章 参考答案
  8. Unity3D总结记录(四) Unity中控制AudioSourse播放多条不同的声音文件
  9. 高级面试题--SpringBoot启动流程解析
  10. Webdriver - webdriver hangs when get or click