c++基于多态的职工管理系统

前言:我是在B站上看黑马的视频来学习的c++,看着这个项目还不错,就整理下来分享给大家了。所以说,原作者是黑马的老师。B站链接为:https://www.bilibili.com/video/BV1et411b73Z?t=6&p=82

1、管理系统需求

1、管理系统需求
职工管理系统可以用来管理公司内所有员工的信息
本教程主要利用C++来实现一个基于多态的职工管理系统
公司中职工分为三类 : 普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责
普通员工职责:羌成经理交给的任务
经理职责 : 完成老板交给的任务,并下发任务给员工
老板职责:管理公司所有事务

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

2、创建项目

  我相信大家都会创建一个c++项目,并且为他添加.cpp文件

在这里插入图片描述
………
这里就不多说,大家都会

3、创建管理类

管理类负责的内容如下:
●与用户的沟通菜单界面
●对职工增删改查的操作
●与文件的读写交互

3.1创建文件

在头文件和源文件的文件夹下分别创建workerManager.h和workerManager.cpp文件
在这里插入图片描述

3.2头文件实现

在workerManager.h中设计管理类
代码如下:

#pragma once  //防止头文件重复包含
#include<iostream>  //包含输入输出流头文件
using namespace std;  //使用标准命名空间

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

3.3源文件实现

在workerManager.cpp中将构造和析构函数空实现补全
代码如下:

#include "workerManager.h"
WorkerManager::WorkerManager()
{
   
}
WorkerManager::~WorkerManager()
{
   
}

4、菜单功能

功能描述:与用户的沟通界面

4.1添加成员函数

在管理类workerManager.h中添加成员函数 void Show_Henu();
在这里插入图片描述

4.2菜单功能实现

在管理类workerManager.cpp中实现Show_Menu()函数
在这里插入图片描述
代码

//展示菜单
void WorkerManager::Show_Menu()
{
   
	cout << "*********************************************************" << endl;
	cout << "***************   欢迎使用职工管理系统! ****************" << endl;
	cout << "*******************  0.退出管理程序  ********************" << endl;
	cout << "*******************  1.增加职工信息  ********************" << endl;
	cout << "*******************  2.显示职工信息  ********************" << endl;
	cout << "*******************  3.删除离职职工  ********************" << endl;
	cout << "*******************  4.修改职工信息  ********************" << endl;
	cout << "*******************  5.查找职工信息  ********************" << endl;
	cout << "*******************  6.按照编号排序  ********************" << endl;
	cout << "*******************  7.清空所有文档  ********************" << endl;
	cout << "*********************************************************" << endl;
	cout << endl;
}

4.3测试菜单功能

职工管理系统.cpp 中测试菜单功能

代码

#include <iostream>
#include "workerManager.h"
#include<string>
using namespace std;
int main()
{
   
    //实例化管理者对象
	WorkerManager wm;
	//调用展示菜单成员函数
	wm.Show_Menu();

	system("pause");
	return 0;
}

运行效果
在这里插入图片描述

5、退出功能

5.1提供功能接口

在main函数中提供分支选择,提供每个功能接口(搭架子)
代码

int main()
{
   
	//实例化管理者对象
	WorkerManager wm;
	int choice = 0;//用来存储用户的选项
	while (true)
	{
   
		//调用展示菜单成员函数
		wm.Show_Menu();

		cout << "请输入您的选择: " << endl;
		cin >> choice;  //接受用户的选项

		switch (choice)
		{
   
		case 0:   //退出系统
			break;
		case 1:   //增加职工
			break;
		case 2:   //显示职工
			break;
		case 3:  //删除职工
			break;
		case 4:  //修改职工
			break;
		case 5:   //查找职工
			break;
		case 6:   //排序职工
			break;
		case 7:   //清空文档
			break;
		default:
			system("cls");  //清屏操作
			break;
		}
	}
	system("pause");
	return 0;
}

5.2实现退出功能

在workerManager.h中提供退出系统的成员函数void exitsystem();
在这里插入图片描述

在workerManager.cpp中提供具体的功能实现

代码:

//退出系统
void WorkerManager::EixtSystem()
{
   
	cout << "欢迎下次使用!" << endl;
	system("pause");
	exit(0); //退出程序
}

5.3测试功能

在main函数分支0选项中,调用退出程序的接口
在这里插入图片描述

运行效果
在这里插入图片描述

6、创建职工类

6.1创建职工抽象类

职工的分类为:普通员工、经理、老板
将三种职工抽象到一个类(worker)中,利用多态管理不同职工种类
职工的属性为:职工编号、职工姓名、职工所在部门编号
职工的行为为:岗位职责信息描述,获取岗位名称

头文件文件夹下 创建文件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;
	//职工姓名
	string m_Name;
	//部门编号
	int m_DeptId;
};

6.2创建普通员工类

普通员工类继承职工抽象类,并重写父类中纯虚函数
在头文件和源文件的文件夹下分别创建employee.h和employee.cpp文件

employee.h中的代码如下

//普通员工文件
#pragma once
#include<iostream>
using namespace std;
#include "worker.h"

class Employee:public Worker
{
   
public:

	//构造函数
	Employee(int id, string name, int dId);

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

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

};

employee.cpp中的代码如下

#include"employee.h"
#include <string>
//构造函数
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岗位:" << this->getDeptName()
		<< "\t岗位职责:完成经理交给的任务" << endl;

}
//获取岗位名称
string Employee::getDeptName()
{
   
	return "员工";
}

6.3创建经理类

经理类继承职工抽象类,并重写父类中纯虚函数,和普通员工类似
在头文件和源文件的文件夹下分别创建manager.h和manager.cpp文件

manager.h中的代码如下

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

//经理类
class Manager :public Worker
{
   
public:

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

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

	
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值