.h文件

workerManager.h:文件管理类

  1. #pragma once //防止都文件重复包含
  2. #include<iostream> //包含输入输出流头文件
  3. using namespace std;//使用标准命名空间
  4. class WoerkerManager
  5. {
  6. public:
  7. //头文件种,只做声明,不做实现
  8. //构造函数
  9. WoerkerManager();
  10. //展示菜单
  11. void Show_Menu();
  12. //退出系统
  13. void ExitSystem();
  14. //析构函数
  15. ~WoerkerManager();
  16. };

职位头文件:

worker.h:职位父类

  1. #pragma once
  2. #include<iostream>
  3. #include<string>
  4. using namespace std;
  5. //职工抽象类
  6. class Worker
  7. {
  8. public:
  9. //显示个人所有信息
  10. virtual void showInfo() = 0;//纯虚函数声明
  11. //获取岗位名称
  12. virtual string getDeptName() = 0;//纯虚函数声明
  13. //职工编号
  14. int m_ID;
  15. //职工姓名
  16. string m_Name;
  17. //部门编号
  18. int m_DeptID;
  19. };

manager.h:经理做为职位子类

  1. #pragma once
  2. #include<iostream>
  3. #include<string>
  4. #include"worker.h"//因为要继承worker类,要引入头文件
  5. using namespace std;
  6. //员工文件子类:经理类
  7. class Manager :public Worker
  8. {
  9. public:
  10. //构造函数
  11. Manager(int id, string name, int dId);
  12. //显示个人所有信息
  13. virtual void showInfo();
  14. //获取岗位名称
  15. virtual string getDeptName();
  16. };

employee.h:普通员工做为职位子类

  1. #pragma once
  2. #include<iostream>
  3. #include<string>
  4. #include"worker.h"//因为要继承worker类,要引入头文件
  5. using namespace std;
  6. //员工文件子类:普通职工类
  7. class Employee :public Worker
  8. {
  9. public:
  10. //构造函数:对普通员工类做初始化
  11. Employee(int id,string name,int dId);
  12. //子类中的纯虚函数virtual关键字,可以删,也可以不删
  13. //显示个人所有信息
  14. void showInfo();
  15. //获取岗位名称
  16. virtual string getDeptName();
  17. };

boss.h:老板做为职位子类

  1. #pragma once
  2. #include<iostream>
  3. #include<string>
  4. #include"worker.h"//因为要继承worker类,要引入头文件
  5. using namespace std;
  6. //员工文件子类:老板类
  7. class Boss :public Worker
  8. {
  9. public:
  10. //构造函数:对普通员工类做初始化
  11. Boss(int id, string name, int dId);
  12. //子类中的纯虚函数virtual关键字,可以删,也可以不删
  13. //显示个人所有信息
  14. void showInfo();
  15. //获取岗位名称
  16. virtual string getDeptName();
  17. };

.cpp文件

职工管理系统:执行文件

workerManager.cpp:文件管理类

职业文件:因为职位类有纯虚函数,所以无法实例化,就没有cpp文件

manager.cpp:经理做为职位子类

  1. #include"manager.h"
  2. //构造函数
  3. Manager::Manager(int id, string name, int dId)
  4. {
  5. //初始化成员属性
  6. this->m_ID = id;
  7. this->m_Name = name;
  8. this->m_DeptID = dId;
  9. }
  10. //显示个人所有信息
  11. void Manager::showInfo()
  12. {
  13. cout << "职工编号:" << this->m_ID
  14. << "\t职工姓名:" << this->m_Name
  15. << "\t岗位:" << this->getDeptName()
  16. << "\t岗位职责:完成老板交给的任务,并分配任务给员工" << endl;
  17. }
  18. //获取岗位名称
  19. string Manager::getDeptName()
  20. {
  21. return string("经理");
  22. }

employee.cpp:普通员工做为职位子类

  1. #include"employee.h"
  2. //构造函数
  3. Employee::Employee(int id, string name, int dId)
  4. {
  5. //初始化成员属性
  6. this->m_ID = id;
  7. this->m_Name = name;
  8. this->m_DeptID = dId;
  9. }
  10. //
  11. //显示个人所有信息
  12. void Employee::showInfo()
  13. {
  14. cout << "职工编号:" << this->m_ID
  15. << "\t职工姓名:" << this->m_Name
  16. << "\t岗位:" << this->getDeptName()
  17. << "\t岗位职责:完成经理交给的任务" << endl;
  18. }
  19. //获取岗位名称
  20. string Employee::getDeptName()
  21. {
  22. return string("员工"); //如果不自己加string包含字符串,编译器会做隐式类型转换
  23. }

boss.cpp:老板做为职位子类

  1. #include"boss.h"
  2. //构造函数
  3. Boss::Boss(int id, string name, int dId)
  4. {
  5. //初始化成员属性
  6. this->m_ID = id;
  7. this->m_Name = name;
  8. this->m_DeptID = dId;
  9. }
  10. //
  11. //显示个人所有信息
  12. void Boss::showInfo()
  13. {
  14. cout << "职工编号:" << this->m_ID
  15. << "\t职工姓名:" << this->m_Name
  16. << "\t岗位:" << this->getDeptName()
  17. << "\t岗位职责:管理公司所有事务" << endl;
  18. }
  19. //获取岗位名称
  20. string Boss::getDeptName()
  21. {
  22. return string("老板"); //如果不自己加string包含字符串,编译器会做隐式类型转换
  23. }