题目介绍
- 企业有四类人,分别是技术人员、经理、销售、销售经理
- 编号:公司每添加一个人,编号加一
- 薪资计算方法:
- 技术人员:按小时计算,分等级,等级默认为1,每小时100;然后每提高一个等级,时薪+100,等级时薪上限分别:4和400
- 经理:固定工资:8000,默认等级1,然后每提高一个等级,工资加200,上限12000
- 销售:当月销售额的百分比,默认等级1,百分比为0.4,然后每提高一个等级,百分比加0.01,上限0.06
- 销售经理:固定工资: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