C++职工管理系统(附全代码)

本文档介绍了一个使用C++编写的多态职工管理系统,涵盖了普通员工、经理和老板三种角色,详细阐述了系统的需求、功能及各角色的职责。系统提供增加、删除、修改、查找、排序和清空职工信息等功能,并展示了头文件和源代码组织结构。
摘要由CSDN通过智能技术生成

职工管理系统

1、管理系统需求

职工管理系统可以用来管理公司内所有员工的信息

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

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

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

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

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

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

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

我们创建以下多个头文件和与其对应的 .cpp文件:
在这里插入图片描述

boss.h头文件

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

//老板类
class Boss :public Worker
{
   
public:

	Boss(int id, string name, int post);

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

	//获取岗位名称
	virtual string getPost();

};

manager.h 头文件

class Manager :public Worker
{
   
public:

	Manager(int id, string name, int post);

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

	//获取岗位名称
	virtual string getPost();

};

employee.h头文件

class Employee:public Worker
{
   
public:

	Employee(int id,string name,int post);

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

	//获取岗位名称
	virtual string getPost();

};

worker.h头文件

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

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

	//职员编号
	int m_Id;
	//职工姓名
	string m_Name;
	//部门编号
	int m_Post;
};

worker_Manager.h头文件

#pragma once
#include <iostream>
using namespace std;
#include "boss.h"
#include "manager.h"
#include "Worker.h"
#include "employee.h"
#include <fstream>
#define TXT "empfine.txt"

//各程序执行的类
class Worker_Manager
{
   
public:
	Worker_Manager();

	//显示菜单
	void ShowMenu();

	//记录职工人数
	int m_EmpNum;

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

	//添加职工
	void Add_Emp();

	//保存文件
	void save();

	//判断文件是否为空
	bool m_File;

	//统计文件中的人数
	int get_EmpNum();

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

	//显示员工
	void Show_Emp();

	//判断职工是否存在
	int Ison_Emp(int id);

	//删除员工
	void Del_Emp();

	//修改员工
	void Mod_Emp();

	//查找员工
	void Find_Emp();

	//排序
	void Sort_Emp();

	//清空文件
	void Clean_File();


	~Worker_Manager();

};

boss.cpp文件

#include "boss.h"

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

//显示个人信息
void Boss::ShowInfo()
{
   
	cout << "职工编号:" << this->m_Id
		<< "\t职工姓名:" << this->m_Name
		<< "\t职工部门:" << this->getPost()
		<< "\t岗位职责:管理公司所有事务" << endl;
}

//获取岗位名称
string Boss::getPost()
{
   
	return string("老板");
}

manager.cpp文件

#include "manager.h"

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

//显示个人信息
void Manager::ShowInfo()
{
   
	cout << "职工编号:" << this->m_Id
		<< "\t职工姓名:" << this->m_Name
		<< "\t职工部门:" << this->getPost()
		<< "\t岗位职责:完成老板布置的任务,并下发任务给员工" << endl;
}

//获取岗位名称
string Manager::getPost()
{
   
	return string("经理");
}

employee.cpp文件

#include "employee.h"

Employee::Employee(int id, string name, int post)
{
   
	this->m_Id = id;
	this->m_Name = name
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值