企业员工薪资管理-多态案例

题目介绍

  • 企业有四类人,分别是技术人员、经理、销售、销售经理
  • 编号:公司每添加一个人,编号加一
  • 薪资计算方法:
  1. 技术人员:按小时计算,分等级,等级默认为1,每小时100;然后每提高一个等级,时薪+100,等级时薪上限分别:4和400
  2. 经理:固定工资:8000,默认等级1,然后每提高一个等级,工资加200,上限12000
  3. 销售:当月销售额的百分比,默认等级1,百分比为0.4,然后每提高一个等级,百分比加0.01,上限0.06
  4. 销售经理:固定工资:5000+当月销售额的百分比;默认等级1,百分比为0.4,然后每提高一个等级,百分比加0.01,上限0.06
  • 整体的架构设计图:

在这里插入图片描述



代码

Employee

Employee.h

#pragma once
#include <iostream>
#include <string>

using namespace std;


class Employee
{
   
public:
	Employee();
	virtual ~Employee();

	virtual void Init() = 0 ;
	virtual void UpLevel(int level) = 0;
	virtual void GetPay()=0;
			void Display();

	
protected:
	string m_name;
	int m_ID;
	int m_level;
	double m_salary;


	static int id_start;
};

Employee.cpp

#include "stdafx.h"
#include "Employee.h"

int Employee::id_start=1000;

Employee::Employee()
{
   
	cout << "Employee()" << endl;
	m_ID = id_start++;
	m_salary = 0;
	m_level = 1;
}



Employee::~Employee()
{
   
	cout << "~Employee()" << endl;
}




 void Employee::Display()
{
   
	 cout << "name :" << m_name << endl;
	 cout << " ID:" << m_ID << endl;
	 cout << "level :" <<  m_level << endl;
	 cout << "salary :" << m_salary << endl;
}



Tech

Tech.h

#pragma once
#include "Employee.h"
class Tech : public Employee
{
   
public:
	Tech();
	~Tech();

	virtual void Init();
	virtual void UpLevel(int level) ;
	virtual void GetPay() ;
private:
	int m_work_hours;
	double m_perhoursmoney;
};

Tech.cpp

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值