实战面向对象_工资管理系统

/* Employee.h文件 */
# include <string>
using namespace std;

class Employee
{
protected:
	string m_name;
	int m_time;
public:
	Employee(string name, int time)	//构造函数 
	: m_name(name), m_time(time)
	{
	}
	 
	string getName()
	{
		return m_name;
	}
	
	virtual int getSalary() = 0;  //纯虚数,强制子类重新定义虚函数 
};

class Manager: public Employee
{
public:
	Manager(string name, int time)
	: Employee(name, time)	//使用基类的构造函数,完成对属性的初始化工作 
	{
	}
	virtual int getSalary()
	{
		return 10000 + m_time*5000;
	}
};
class Stuff: public Employee
{
public:
	Stuff(string name, int time)
	: Employee(name, time)	//使用基类的构造函数,完成对属性的初始化工作 
	{
	}
	virtual int getSalary()
	{
		return 2000 + m_time*200;
	}
};
==========================================================================================================================================================
/* SalarySys.h文件 */
# include "Employee.h"
# include <iostream>
const int MAX = 1000;	//最大员工数定义为100 

class SalarySys
{
private:
	int m_count;	//员工人数
	Employee* m_employee[MAX];	//每个员工对象指针存入数组中
public:
	SalarySys()	//构造函数 
	{
		m_count = 0;
	}
	~SalarySys()	//析构函数 
	{
		for(int i=0; i<m_count; ++i)
		{
			Employee* tmp = m_employee[i];
			delete tmp;
			m_employee[i] = NULL;
		}
	}
	void input()	//输入员工信息存入对象,对象指针放入数组中 
	{
		while(m_count < MAX)
		{
			cin.clear();
			
			string name = " ";
			int time = -1;
			bool isManager = false;
			Employee* temp = NULL;
			
			cin>>name;
			if(name == "end")
				break;
			cin>>time>>isManager;
			
			if(isManager)
			{
				temp = new Manager(name, time);
			}
			else
			{
				temp = new Stuff(name, time);
			}
			
			m_employee[m_count++] = temp;
		}
	}
	
	double getAve()
	{
		int sum = 0;
		for(int i=0; i<m_count; ++i)
		{
			sum += m_employee[i]->getSalary();
		}
		return (double)sum / m_count;
	}
	
	void output()
	{
		cout<<"当前员工总数:"<<m_count<<endl;
		cout<<"平均工资是:"<<getAve()<<endl;
		cout<<"员工具体信息如下:"<<endl;
		
		for(int i=0; i<m_count; ++i)
		{
			Employee* tmp = m_employee[i];
			cout<<tmp->getName()<<"\t"<<tmp->getSalary()<<endl;
		}
	}
}; 
==========================================================================================================================================================
/* main.cpp文件 */
# include "SalarySys.h"

int main()
{
	SalarySys sys;
	sys.input();
	sys.output();
	
	return 0;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高校工资管理系统 第一部分 需求分析 主要完成人:孙艳、吴立辉 协助人:袁野、陈飞 随着高等学校的快速发展,高校规模越来越大,教职工的数量也越来越多,高校工资管理更加的复杂,而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。这就对高校工资管理提出了新的要求,用计算机管理系统来管理高校工资已经成为目前的趋势,使用计算机可以高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范数据管理行为,从而提高了管理效率和水平。高校工资管理系统便是以计算机为工具,通过对工资管理所需的信息管理,不仅把管理人员从繁琐的数据计算处理中解脱出来,而且优化了管理体系,使其高效化,简易化,智能化,也提高了透明度和互动性。 工资管理系统的目的和现实意义就是提高企业或公司的管理效率,避免一些在管理中由于人为因素而存在的一些诸多问题。工资管理系统还可以节省人力资源,不必浪费过多的人力资源在这种手工发放工资的模式之上。工资管理系统也可以为企业或公司节省生产成本,获取更大的利润,人力资源问题的减少必将为企业或公司节省一些不必要的生产成本,从而为企业或公司获取更大的利润。 1一般用户注册 (非管理员) 一般用户需注册,才能进入该系统完成相关操作; 用户注册信息: 用户名(职工号),密码。 2.数据录入和管理用户功能 主要任务是对各种工资信息进行日常的管理,如工资信息的输入、修改、增加、删除,迅速准确地完成各种工资信息的统计计算和汇总,快速打印出报表。 3.数据查询功能 系统需要提供以下查询功能: 1) 教职工月工资情况:年,月,职工号,基本工资,津贴,出勤,应发工资,扣款,实发工资; 2) 部门情况,反映系部代号、系部名称; 3) 教职工基本信息情况,反映教职工的职工号,姓名,职称,系部代号。 4.打印功能 1)打印财务报表;

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值