【c++面向对象编程】工资管理系统
1、名词实际上就是对象(员工派生出老员工、新员工)
2、利用虚函数实现多态
3、对象指针数组
头文件
#include
#include
using namespace std;
class Emplyee{
protected:string Name;int Years;
public:virtual int getSalary() =0;Emplyee(string name, int years):Name(name), Years(years) //初始化列表{};
};class Old_Emplyee :public Emplyee{
public:Old_Emplyee(string name, int years):Emplyee(name, years) //使用基类的构造函数,完成对属性的初始化{};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
#include
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<<"平均工资为:"<
运行结果:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
