【c++面向对象编程】工资管理系统

1、名词实际上就是对象(员工派生出老员工、新员工)

2、利用虚函数实现多态

3、对象指针数组

头文件

#include <string>
#include <istream>
using namespace std;
class Emplyee{
protected:
	string Name;
	int Years;
public:
	virtual int getSalary() =0;
	Emplyee(string name, int years)
		:Name(name), Years(years) //<strong><span style="color:#ff0000;">初始化列表</span></strong>
	{};
};

class Old_Emplyee :public Emplyee{
public:
	Old_Emplyee(string name, int years)
		:Emplyee(name, years) //<strong><span style="color:#ff0000;">使用基类的构造函数,完成对属性的初始化</span></strong>
	{};
	int getSalary(){
		return 2000 * Years;
	};
};

class Young_Emplyee :public Emplyee{
public:
	Young_Emplyee(string name, int years)
		:Emplyee(name, years)
	{};
	int getSalary(){
		return 200 * Years;
	};
};

class Salary_Manager{
private:
	int Max_Num=3;
	Emplyee* pEmplyee[];
public:
	void InputInfo();
	void ShowInfo();
	double AveSalary();
};
源文件:

#include "Salary_Manager.h"
#include <iostream>
#include <Windows.h>
using namespace std;
void Salary_Manager::InputInfo(){
	cout << "信息输入:" << endl;
	int c_Num = 0;
	string strName ="";
	int iYears=0;
	bool isOld=0;
	while (c_Num < Max_Num)
	{
		cin.clear();
		cin>>isOld>>strName>>iYears;
		Emplyee* tpEmplyee = NULL;
		if (isOld == true){
			tpEmplyee = new Old_Emplyee(strName,iYears);
			pEmplyee[c_Num] = tpEmplyee;
		}else{
			tpEmplyee = new Young_Emplyee(strName, iYears);
			pEmplyee[c_Num] = tpEmplyee;
		}
		c_Num++;
	}
};

double Salary_Manager::AveSalary(){
	int total_Salary = 0;
	for (size_t i = 0; i < Max_Num; i++)
	{
		total_Salary += pEmplyee[i]->getSalary();
	}
	return total_Salary / Max_Num;
};

int main(){
	Salary_Manager mSalary_Manager;
	mSalary_Manager.InputInfo();
	cout<<"平均工资为:"<<mSalary_Manager.AveSalary()<<endl;
	system("PAUSE");
}

运行结果:




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值