用C++编写一个简单的员工工资管理系统~

用基础的C++语言编写一个简单的员工工资管理系统 用基础的C++语言编写一个简单的员工工资管理系统
系统功能简单 但可以进行更多功能的改进 系统功能简单 但可以进行更多功能的改进
代码较为简单 很多地方仅是为了方便调试 代码较为简单 很多地方仅是为了方便调试
仍有许多不足的地方需要改进 仍有许多不足的地方需要改进
代码如下
#include<iostream>
#include<string>
using namespace std;
#define MAX 10
//员工工资管理

class Employee
{
public:
	Employee(string name,int year):m_strName(name),m_nYear(year){} //构造函数
	virtual ~Employee(){}
	string GetName()const{return m_strName;}   //获取姓名
	int GetYear()const{return m_nYear;}       //获取工龄
	virtual int GetSalary() = 0;              //获取工资
private:
	string m_strName;
	int m_nYear;
};

class Worker:public Employee
{
public:
	Worker(string name,int year):Employee(name,year){}
	~Worker(){}
	virtual int GetSalary(){return 12000;} //此处未给出具体工资算法,可进行修改  
};

class Manager:public Employee
{
public:
	Manager(string name,int year):Employee(name,year){}
	~Manager(){}
	virtual int GetSalary(){return 13000;}  //此处未给出具体工资算法,可进行修改
};

class EmployeeSalarySystem
{
public:
	EmployeeSalarySystem(){m_nCount = 0;}
	~EmployeeSalarySystem()
	{
		while(--m_nCount >= 0)
		{
			delete employee[m_nCount];
			employee[m_nCount] = NULL;
		}
	}
	void InPutEmployee()
	{
		string name;
		int year;    //工龄
		int flag;    //职位标志位,Worker:0;Manager:1
		cout<<"请输入员工姓名与工龄"<<endl;
		cin>>name>>year;
		cout<<"请输入员工职位,Worker:0;Manager:1;"<<endl;
		cin>>flag;
		if(flag == 0)
		{
			employee[m_nCount] = new Worker(name,year);
			++m_nCount;
		}
		if(flag == 1)
		{
			employee[m_nCount] = new Manager(name,year);
			++m_nCount;
		}
	}
	void ShowEmployee()
	{
		for(int i=0;i<m_nCount;i++)
			cout<<"姓名:"<<employee[i]->GetName()<<"  工龄:"<<employee[i]->GetYear()<<"  工资:"<<employee[i]->GetSalary()<<endl;
	}
private:
	Employee *employee[MAX];   //上方对MAX进行了宏定义
	int m_nCount;
};

void main()//主函数仅为进行调试,具体还可进行改进
{
	EmployeeSalarySystem ess;
	ess.InPutEmployee();
	ess.InPutEmployee();
	ess.InPutEmployee();
	ess.ShowEmployee();  
}

经验分享 程序员 微信小程序 职场和发展