【C++】【职工管理系统】

【C++】【职工管理系统】_第1张图片

workermanager.h

#pragma once//防止头文件重复包含
#include 
#include "worker.h"
using namespace std;
#include "boss.h"
#include "employee.h"
#include "manager.h"

#include 
#define FILENAME "empFile.txt"

class WorkerManager
{
     
public:
	WorkerManager();

	void Show_Menu();//菜单功能

	void ExitSystem();//退出功能

	int m_EmpNum;//记录职工人数

	Worker ** m_EmpArray;//职工数组指针

	void Add_Emp();//添加职工

	void Del_Emp();//删除职工

	void Find_Emp();//查找职工

	void Mod_Emp();//修改职工

	void Show_Emp();//显示职工

	void Sort_Emp();//排序

	void Clean_File();

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

	void save();//保存文件

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

	int get_EmpNum();//统计人数

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

	~WorkerManager();
};

worker.h

#pragma once//防止头文件重复包含
#include 
#include 
using namespace std;
class Worker//职工抽象类
{
     
public:
	//显示个人信息
	virtual void showInfo() = 0;
	//获取岗位名称
	virtual string getDeptName() = 0;

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

employee.h

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

class Employee :public Worker
{
     
public:
	//构造函数
	Employee(int id, string name, int dId);

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

	//获取岗位信息
	virtual string  getDeptName();
};

manager.h

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

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

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

	//获取岗位信息
	virtual string  getDeptName();
};

boss.h

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

class Boss :public Worker
{
     
public: 
	Boss(int id, string name, int dId);
	virtual void showInfo();
	virtual string getDeptName();
};

职工管理系统.cpp

#include 
using namespace std;
#include "WorkerManager.h"
#include "worker.h"
#include "employee.h"

int main()
{
     
	WorkerManager wm;//实例化管理对象
	int choice = 0;//存储用户
	while (true)
	{
     
		//显示菜单
		wm.Show_Menu();
		cout << "请输入你的选择:" << endl;
		cin >> choice;
		switch (choice)
		{
     
		case 0://退出系统
			wm.ExitSystem();
			break;
		case 1://增加职工
			wm.Add_Emp();
			break;
		case 2://删除职工
			wm.Del_Emp();
			break;
		case 3://查找职工
			wm.Find_Emp();
			break;
		case 4://修改职工
			wm.Mod_Emp();
			break;
		case 5://显示职工
			wm.Show_Emp();
			break;
		case 6://排序职工
			wm.Sort_Emp();
			break;
		case 7://清空文档
			wm.Clean_File();
			system("cls");
			break;
		}
	}
	system("pause");
	return 0;
}

workermanager.cpp

#pragma once//防止头文件重复包含
#include 
#include "worker.h"
using namespace std;
#include "boss.h"
#include "employee.h"
#include "manager.h"

#include 
#define FILENAME "empFile.txt"

class WorkerManager
{
     
public:
	WorkerManager();

	void Show_Menu();//菜单功能

	void ExitSystem();//退出功能

	int m_EmpNum;//记录职工人数

	Worker ** m_EmpArray;//职工数组指针

	void Add_Emp();//添加职工

	void Del_Emp();//删除职工

	void Find_Emp();//查找职工

	void Mod_Emp();//修改职工

	void Show_Emp();//显示职工

	void Sort_Emp();//排序

	void Clean_File();

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

	void save();//保存文件

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

	int get_EmpNum();//统计人数

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

	~WorkerManager();
};

employee.cpp

#include "employee.h"

Employee::Employee(int id, string name, int dId)
{
     
	this->m_Id = id;
	this->m_Name = name;
	this->m_DeptId = dId;
}

void Employee::showInfo()
{
     
	cout << "职工编号:" << this->m_Id
		<< "\t职工姓名:" << this->m_Name
		<< "\t岗位:" << getDeptName()
		<< "\t岗位职责:完成经理交给的任务" << endl;
}

string Employee::getDeptName()
{
     
	return string("员工"); 
}

manager.cpp

#include "manager.h"

Manager::Manager(int id, string name, int dId)
{
     
	this->m_Id = id;
	this->m_Name = name;
	this->m_DeptId = dId;
}

void Manager::showInfo()
{
     
	cout << "职工编号:" << this->m_Id
		<< "\t职工姓名:" << this->m_Name
		<< "\t岗位:" << getDeptName()
		<< "\t岗位职责:完成老板布置的任务并下发给员工" << endl;
}

string Manager::getDeptName()
{
     
	return string("经理");
}

boss.cpp

#include "boss.h"

Boss::Boss(int id, string name, int dId)
{
     
	this->m_Id = id;
	this->m_Name = name;
	this->m_DeptId = dId;
}

void Boss::showInfo()
{
     
	cout << "\t职工编号:" << this->m_Id
		<< "\t职工姓名:" << this->m_Name
		<< "\t岗位:" << getDeptName()
		<< "\t岗位职责:管理整个公司" << endl;
}

string Boss::getDeptName()
{
     
	return string ("老板");
}

【C++】【职工管理系统】_第2张图片
感谢大家百忙之中点进我的博客,如果觉得不错的话,点赞支持一下再走吧!欢迎评论讨论!
不定期分享学习琐碎,欢迎关注!

你可能感兴趣的:(小创作,c++,面试,编程语言,数据结构)