Description

某公司有经理(Manager)、销售(Sales)、销售经理(SalesManager)四类雇员(Employee),他们的薪酬计算方法各不一样:
每个雇员(Employee)都有每月的基本工资;
经理(Manager)除了基本工资之外还有年终分红;
销售(Sales)除了基本工资之外,每月还有营销提成;
销售经理(SalesManager)既是销售(Sales)人员也是经理(Manager),因此他既有每月的营销提成,也有年终分红。
每类雇员的年薪计算方式不一样,因此使用多态来实现。
-----------------------------------------------------------------------------
请仔细阅读append.cc代码,并设计并实现这个员工类的派生体系,使main()函数能够运行并得到正确的输出。

Input

输入第一个整数n,表示后面有n个雇员。每个雇员占用一行输入。分别是员工类型、姓名、月基本工资、月营销提成(销售)、年终分红(经理),如果是销售经理则两者都有。

Output

从输入的第二行开始,每行对应输出一个雇员的类型、姓名和年薪。

Sample Input

6Sales Zhangsan 2500 1500Manager Zhaosi 2500 10000Manager Liuwu 10000 35000Sales Sunliu 5000 10000SalesManager Zhengqi 2500 1500 10000SalesManager Wangba 10000 25000 10000

Sample Output

Sales Zhangsan : 48000Manager Zhaosi : 40000Manager Liuwu : 155000Sales Sunliu : 180000SalesManager Zhengqi : 58000SalesManager Wangba : 430000

HINT

Append Code

int main()
{
    string label, name;
    Employee* p[100];
    int n;
    int base, royalty, bonus;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        cin >> label >> name;
        if(label == "Sales")
        {
            cin >> base >> royalty;
            p[i] = new Sales(name, base, royalty);
        }
        if(label == "Manager")
        {
            cin >> base >> bonus;
            p[i] = new Manager(name, base, bonus);
        }
        if(label == "SalesManager")
        {
            cin >> base >> royalty >> bonus;
            p[i] = new SalesManager(name, base, royalty, bonus);
        }
    }
    for(int i = 0; i < n; i++)
        p[i]->print();
    for(int i = 0; i < n; i++)
        delete p[i];
}
#include <bits/stdc++.h>
using namespace std;//多态,&引用,*指针,virtual虚函数class Employee
{
protected :string name;int base;
public :Employee(string n,int b):name(n),base(b){}virtual void print() = 0;
};class Manager :public Employee
{
private :int bonus ;
public :Manager(string n,int b,int k):Employee(n,b),bonus(k){}void print(){bonus = base*12+bonus;cout<<"Manager "<<name<<" : "<<bonus<<endl;}
};class Sales :public Employee
{
private :int royalty;
public :Sales(string n,int b,int k):Employee(n,b),royalty(k){}void print(){royalty = (royalty+base)*12;cout<<"Sales "<<name<<" : "<<royalty<<endl;}
};class SalesManager :public Employee//多重继承慎用!
{
private :int bonus,royalty;
public :SalesManager(string n,int b,int k,int kk):Employee(n,b),royalty(k),bonus(kk){}void print(){int sum = 12*(base+royalty)+bonus;cout<<"SalesManager "<<name<<" : "<<sum<<endl;}};int main()
{string label, name;Employee* p[100];int n;int base, royalty, bonus;cin >> n;for(int i = 0; i < n; i++){cin >> label >> name;if(label == "Sales"){cin >> base >> royalty;p[i] = new Sales(name, base, royalty);}if(label == "Manager"){cin >> base >> bonus;p[i] = new Manager(name, base, bonus);}if(label == "SalesManager"){cin >> base >> royalty >> bonus;p[i] = new SalesManager(name, base, royalty, bonus);}}for(int i = 0; i < n; i++)p[i]->print();for(int i = 0; i < n; i++)delete p[i];
}

Problem M: 薪酬计算 之二相关推荐

  1. Problem B: 薪酬计算 之二

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

  2. Problem B: 薪酬计算

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

  3. Problem E: 薪酬计算

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

  4. Problem A: 薪酬计算

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

  5. Problem G: 薪酬计算

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

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

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

  7. 【数字信号处理】线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( 线性卷积计算案例二 | 计算 卷积 )

    文章目录 一.线性卷积计算 案例二 一.线性卷积计算 案例二 给定如下两个序列 : x(n)={3,4,5}[−2,0]x(n) = \{ 3 , 4, 5 \}_{[-2,0]}x(n)={3,4, ...

  8. 阿里“去 IOE”十二年,弹性计算如何二次去 I 和 E?

    [CSDN 编者按]王坚院士曾讲过一句话让人印象深刻,他说「云计算的本质是服务,如果不能将计算资源规模化.大范围地进行共享,如果不能真正以服务的方式提供,就根本算不上云计算.」众所周知,阿里云是完全经 ...

  9. html计算一个数组所有元素的和,函数bsxfun,两个数组间元素逐个计算的二值操作...

    转自http://www.cnblogs.com/rong86/p/3559616.html 函数功能:两个数组间元素逐个计算的二值操作 使用方法:C=bsxfun(fun,A,B) 两个数组A合B间 ...

最新文章

  1. Spring注解编程基石(二)
  2. 分享字符串右移的算法
  3. jpa 忽略bean_在WildFly上将JPA和CDI Bean与骆驼一起使用
  4. 津津的储蓄计划(信息学奥赛一本通-T1074)
  5. 011235813用java写出来_【JAVA】关于在运行后控制台显示的一些功能问题,请吧友帮我解答...
  6. 互联网公司分批返岗;Safari 将封杀超过398天的 HTTPS 证书;TypeScript 3.8 发布 | 极客头条...
  7. 什么是在Vim中评论/取消注释行的快速方法?
  8. 配置Hadoop开发环境(Eclipse)
  9. 「09」真损啊!——损失函数与极大似然估计
  10. 【Axure图标库】Unicons线形字体图标库1200+ 与FontAwesome同类
  11. jq 获取引入页面url_jQuery获取当前页面的URL信息
  12. 使用ArcGIS软件进行投影变换和坐标校正
  13. python搜索引擎的设计与实现_Python搜索引擎实现原理和方法
  14. 数据库sql对象名无效问题
  15. 使用 Screen 创建并管理多个 shell
  16. scatter python cmap_Matplotlib.pyplot.scatter()中颜色映射cmap的可能取值
  17. 浅谈Web App前端设计原则
  18. 一个解决MacBook Pro 突然连接无线不能上网 方案
  19. 证券IT:冬虫夏草之技术路线图
  20. 注意,你注册的假1024可能就是它

热门文章

  1. egret 实战教程之跳一跳(一)
  2. v2ray各种版本+一键搭建+bbr提速脚本
  3. 绩效被打C了,谈谈「绩效考核」背后的逻辑以及潜规则
  4. win10打开语言服务器,在 Windows 10 中,部署一个 Go 1.13 语言的本地文档浏览 web 服务器的流程(已缺少 godoc.exe)...
  5. mongodb数据迁移设置方法
  6. 详解c语言main函数、printf函数、scanf函数与va家族
  7. ubuntu安装Kubernetes1.20.0
  8. Prim算法解决最小生成树 (解决修路问题)
  9. ras私钥c#转java_C#和JAVA的RSA密钥、公钥转换
  10. 网络隔离环境下的跨网数据传输,如何保障安全性?