.h文件
workerManager.h:文件管理类
#pragma once //防止都文件重复包含
#include<iostream> //包含输入输出流头文件
using namespace std;//使用标准命名空间
class WoerkerManager
{
public:
//头文件种,只做声明,不做实现
//构造函数
WoerkerManager();
//展示菜单
void Show_Menu();
//退出系统
void ExitSystem();
//析构函数
~WoerkerManager();
};
职位头文件:
worker.h:职位父类
#pragma once
#include<iostream>
#include<string>
using namespace std;
//职工抽象类
class Worker
{
public:
//显示个人所有信息
virtual void showInfo() = 0;//纯虚函数声明
//获取岗位名称
virtual string getDeptName() = 0;//纯虚函数声明
//职工编号
int m_ID;
//职工姓名
string m_Name;
//部门编号
int m_DeptID;
};
manager.h:经理做为职位子类
#pragma once
#include<iostream>
#include<string>
#include"worker.h"//因为要继承worker类,要引入头文件
using namespace std;
//员工文件子类:经理类
class Manager :public Worker
{
public:
//构造函数
Manager(int id, string name, int dId);
//显示个人所有信息
virtual void showInfo();
//获取岗位名称
virtual string getDeptName();
};
employee.h:普通员工做为职位子类
#pragma once
#include<iostream>
#include<string>
#include"worker.h"//因为要继承worker类,要引入头文件
using namespace std;
//员工文件子类:普通职工类
class Employee :public Worker
{
public:
//构造函数:对普通员工类做初始化
Employee(int id,string name,int dId);
//子类中的纯虚函数virtual关键字,可以删,也可以不删
//显示个人所有信息
void showInfo();
//获取岗位名称
virtual string getDeptName();
};
boss.h:老板做为职位子类
#pragma once
#include<iostream>
#include<string>
#include"worker.h"//因为要继承worker类,要引入头文件
using namespace std;
//员工文件子类:老板类
class Boss :public Worker
{
public:
//构造函数:对普通员工类做初始化
Boss(int id, string name, int dId);
//子类中的纯虚函数virtual关键字,可以删,也可以不删
//显示个人所有信息
void showInfo();
//获取岗位名称
virtual string getDeptName();
};
.cpp文件
职工管理系统:执行文件
workerManager.cpp:文件管理类
职业文件:因为职位类有纯虚函数,所以无法实例化,就没有cpp文件
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岗位:" << this->getDeptName()
<< "\t岗位职责:完成老板交给的任务,并分配任务给员工" << endl;
}
//获取岗位名称
string Manager::getDeptName()
{
return string("经理");
}
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岗位:" << this->getDeptName()
<< "\t岗位职责:完成经理交给的任务" << endl;
}
//获取岗位名称
string Employee::getDeptName()
{
return string("员工"); //如果不自己加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 << "职工编号:" << this->m_ID
<< "\t职工姓名:" << this->m_Name
<< "\t岗位:" << this->getDeptName()
<< "\t岗位职责:管理公司所有事务" << endl;
}
//获取岗位名称
string Boss::getDeptName()
{
return string("老板"); //如果不自己加string包含字符串,编译器会做隐式类型转换
}