C++多态的职工管理系统

 

利用C++来实现一个基于多态的职工管理系统

公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责

普通员工职责:完成经理交给的任务

经理职责:完成老板交给的任务,并下发任务给员工

老板职责:管理公司所有事务

管理系统中需要实现的功能如下:

0- 退出管理程序:退出当前管理系统

1- 增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号
2- 显示职工信息:显示公司内部所有职工的信息
3- 删除离职职工:按照编号删除指定的职工
4- 修改职工信息:按照编号修改职工个人信息
5- 查找职工信息:按照职工的编号或者职工的姓名进行查找相关的人员信息
6- 按照编号排序:按照职工编号,进行排序,排序规则由用户指定
7- 清空所有文档:清空文件中记录的所有职工信息 (清空前需要再次确认,防止误删)

 

总体的结构如下

 职工管理系统.cpp(主函数)

#include<iostream>
using namespace std;
#include"workerManager.h"
#include"worker.h"
#include"employee.h"
#include"manager.h"
#include"boss.h"


int main()
{

	WorkerManager yu;
	
	int choice;
	while (true)
	{
	
		yu.Show_Menu();	//展示菜单

		cout << "请输入您的选择:" << endl;
		cin >> choice;

		switch (choice)
		{
		case 0: //退出系统
			yu.ExieSystem();
			break;
		case 1: //添加职工
			yu.Add_Emp();
			break;
		case 2: //显示职工
			yu.Show_Emp();
			break;
		case 3: //删除职工
			yu.Del_Emp();
			break;
		case 4: //修改职工
			yu.Mod_Emp();
			break;
		case 5: //查找职工
			yu.Find_Emp();
			break;
		case 6: //排序职工
			yu.Sort_Emp();
			break;
		case 7: //清空文件
			yu.Clean_File();
			break;
		default:
			system("cls");
			break;
		}
	}

	system("pause");
	return 0;
}

workerManager.h

#pragma once
#include<iostream>
using namespace std;
#include"worker.h"
#include<fstream>
#define LUJING "hui.txt"//宏定义文件保存路径


class WorkerManager
{
public:
	WorkerManager();//构造函数

	void Show_Menu();//展示菜单

	void ExieSystem();//退出功能

	int m_EmpNum;//记录文件中的人数个数
	
	Worker ** m_EmpArray;//员工数组的指针

	void Add_Emp();//增加职工

	void save();//保存文件

	bool m_FileIsEmpty;//标志文件是否为空

	int get_EmpNum();//统计人数

	void init_Emp();//初始化员工

	void Show_Emp();//显示职工

	void Del_Emp();//删除职工

	int IsExist(int id);//按照职工编号判断职工是否存在,若存在返回职工在数组中位置,不存在返回-1

	void Mod_Emp();//修改职工

	void Find_Emp();//查找职工
	
	void Sort_Emp();//排序职工
	
	void Clean_File();//清空文件

	

	~WorkerManager();//析构函数

};

 manager.h

#pragma once
#include<iostream>
using namespace std;
#include<string>
#include"worker.h"

class Manager : public Worker
{

public:
      //构造函数
      Manager(int id,string,int dId);

      //显示个人信息
      virtual void showInfo();


      //获取职工岗位名称
      virtual string getDeptName();

};

 worker.h

#pragma once
#include<iostream>
using namespace std;
#include<string>

//职工抽象类
class Worker
{
public:
	
	virtual void showInfo() = 0;  //显示个人信息

	virtual string getDeptName() = 0;//获取岗位名称



	int m_Id; //职工id
	string m_Name;//职工姓名
	int m_DeptId;//职工所在部门名称编号

};

employee.h

#pragma once
#include<iostream>
using namespace std;
#include"worker.h"

class Employee :public Worker
{
public:

	
	//构造函数
	Employee(int id, string na
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值