C++利用多态实现职工管理系统(项目开发)

目录分析项目整体架构:部分运行截图代码

分析

首先看一下这个项目的文件:

主要分为两部分:

主体部分:main.cpp和workManager.h,workManager.cpp职工部分(这里采用多态的方式编写):主要是worker.h和worker.cpp三种职位:boss,employee,manager

经过分析是否大概知道了其中各部分的意思呢?

看起来这里面有很多,但是正是这种多个文件编写才时代码更加简洁。

所以在正式写项目之前一定要先考虑好整体架构,在进行编写。

项目整体架构:

这个项目的难度并不大,主要是要学会这个项目整体架构是怎样安排的。

左边是主体部分。

主要是整个项目的功能,将主界面的所有功能通过代码和右边的不同人之间进行实现。

包含了上面几个功能函数,还有一些没有写出来

右边则是三种职工的信息。

每个人都有自己的姓名,编号,职位,然后包含两个函数,显示个人信息和获取岗位信息。

主要是通过数组进行存储的

其它的也没什么需要过多介绍的,主要是要理解上面的整体架构图,详细的代码编写并不算复杂

部分运行截图

代码

main.cpp

#include "workManager.h" //构造函数WorkerManage::WorkerManage(){ifstream ifs;ifs.open(FILENAME, ios::in); //读文件 //1,文件不存在if (!ifs.is_open()){cout << "文件不存在" << endl; //初始化属性//初始化记录人数this->m_EmpNum = 0;//初始化数组指针this->m_EmpArray = NULL;//初始化文件是否为空this->m_FileIsEmpty = true;ifs.close();return;} //2,文件存在,数据为空char ch;ifs >> ch;if (ifs.eof()){//文件为空cout << "文件为空!" << endl;//初始化属性//初始化记录人数this->m_EmpNum = 0;//初始化数组指针this->m_EmpArray = NULL;//初始化文件是否为空this->m_FileIsEmpty = true;ifs.close();return;} //3,文件存在,并且记录数据int num = this->get_EmpNum();//cout << "职工人数为:" << num << endl;this->m_EmpNum = num; //开辟空间this->m_EmpArray = new Worker *[this->m_EmpNum];//将文件中数据,存到数组中this->init_Emp(); } //展示菜单void WorkerManage::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;} //退出系统void WorkerManage::ExitSystem(){cout << "欢迎下次使用" << endl;system("pause");exit(0); //退出程序} //析构函数WorkerManage::~WorkerManage(){ } //添加职工void WorkerManage::Add_Emp(){cout << "请输入添加职工数量:" << endl;int addNum = 0;cin >> addNum; if (addNum > 0){//添加//计算添加新空间大小int newSize = this->m_EmpNum + addNum; //新空间人数 = 原来记录人数+新增人数 //开辟新空间Worker ** newSpace = new Worker*[newSize]; //将原来空间下数据,拷贝到新空间下if (this->m_EmpArray != NULL){for (int i = 0; i < this->m_EmpNum; i++){newSpace[i] = this->m_EmpArray[i];}} //添加新数据for (int i = 0; i < addNum; i++){int id; //职工编号string name; //职工编号int dSelect; //部门选择 cout << "请输入第" << i + 1 << "个新职工编号:" << endl;cin >> id; cout << "请输入第" << i + 1 << "个新职工姓名:" << endl;cin >> name; cout << "请选择该职工岗位:" << endl;cout << "1,普通职工" << endl;cout << "2,经理" << endl;cout << "3,老板" << endl;cin >> dSelect; Worker *worker = NULL;switch (dSelect){case 1:worker = new Employee(id, name, 1);break;case 2:worker = new Manager(id, name, 2);break;case 3:worker = new Boss(id, name, 3);break;default:break;} //将创建职工职责,保存到数组中newSpace[this->m_EmpNum++] = worker;} //释放原有的空间delete[] this->m_EmpArray; //更改新空间指向this->m_EmpArray = newSpace; //更新新的职工人数this->m_EmpNum = newSize; //更新职工不为空标志this->m_FileIsEmpty = false; //添加成功cout << "成功添加" << addNum << "名新职工" << endl; //保存数据到文件中this->save();}else{cout << "输入数据有误" << endl;} system("pause");system("cls");} //保存文件void WorkerManage::save(){ofstream ofs;ofs.open(FILENAME, ios::out); //用输入的方式打开文件 -- 写文件  //将每个人数据写入到文件中for (int i = 0; i < this->m_EmpNum; i++){ofs << this->m_EmpArray[i]->m_Id << " "<< this->m_EmpArray[i]->m_Name << " "<< this->m_EmpArray[i]->m_DeptId << endl;} //关闭文件ofs.close();} //统计文件人数int WorkerManage::get_EmpNum(){ifstream ifs;ifs.open(FILENAME, ios::in); //打开文件 读 int id;string name;int dId; //人数int num = 0; while (ifs >> id&& ifs >> name && ifs >> dId){num++;} return num;} //初始化职工void WorkerManage::init_Emp(){ifstream ifs;ifs.open(FILENAME, ios::in); //打开文件 读 int id;string name;int dId; int index = 0;//读数据while (ifs >> id&& ifs >> name && ifs >> dId){Worker *worker = NULL; switch (dId){case 1:worker = new Employee(id, name, dId);break;case 2:worker = new Manager(id, name, dId);break;case 3:worker = new Boss(id, name, dId);break;default:break;} this->m_EmpArray[index] = worker;index++;} this->m_FileIsEmpty = false;//关闭文件ifs.close();} //显示职工void WorkerManage::show_Emp(){//判断文件是否为空if (this->m_FileIsEmpty){cout << "文件不存在或者记录为空" << endl;}else{for (int i = 0; i < m_EmpNum; i++){//利用多态调用程序端口this->m_EmpArray[i]->showInfo();}} //按任意键后清屏system("pause");system("cls");} //删除职工void WorkerManage::Del_Emp(){if (this->m_FileIsEmpty){cout << "文件不存在或者记录为空" << endl;}else{//按照职工编号删除cout << "请输入想要删除职工编号:" << endl;int id = 0;cin >> id; int index = this->IsExist(id);if (index != -1){//数据前移for (int i = index; i < this->m_EmpNum; i++){this->m_EmpArray[i] = this->m_EmpArray[i + 1];}this->m_EmpNum--; //更新数组中记录人员个数 //数据更新到文件中this->save(); cout << "删除成功" << endl;}else{cout << "删除失败,未找到该职工" << endl;}}system("pause");system("cls");} //判断职工是否存在,如果存在返回职工所在数组中的位置,不存在返回-1int WorkerManage::IsExist(int id){int index = -1;for (int i = 0; i < this->m_EmpNum; i++){if (this->m_EmpArray[i]->m_Id == id){//找到职工index = i; break;}}return index;} //修改职工void WorkerManage::Mod_Emp(){if (this->m_FileIsEmpty){cout << "文件不存在或记录为空" << endl;}else{cout << "修改职工编号:" << endl;int id;cin >> id; int ret = this->IsExist(id);if (ret != -1){//查找到编号的职工delete this->m_EmpArray[ret]; int newId = 0;string newName = "";int dSelect = 0; cout << "查到:" << id << "号职工,请输入新职工号:" << endl;cin >> newId; cout << "请输入新名字:" << endl;cin >> newName; cout << "请输入岗位:" << endl;cout << "1,普通职工" << endl;cout << "2,经理" << endl;cout << "3,老板" << endl; cin >> dSelect; Worker *worker = NULL;switch (dSelect){case 1:worker = new Employee(newId, newName, dSelect);break;case 2:worker = new Manager(newId, newName, dSelect);break;case 3:worker = new Boss(newId, newName, dSelect);break;default:break;} //更新数据 到数组中this->m_EmpArray[ret] = worker; cout << "修改成功!" << endl; //保存到文件中this->save();}else{cout << "修改失败,查无此人" << endl;}} system("pause");system("cls");} //查找职工void WorkerManage::Find_Emp(){if (this->m_FileIsEmpty){cout << "文件不存在或记录为空!" << endl;}else{cout << "请输入查找的方式:" << endl;cout << "1,按照职工的编号查找" << endl;cout << "2,按照职工的姓名查找" << endl; int select = 0;cin >> select;if (select == 1){//按照编号查int id;cout << "请输入查找的职工编号:" << endl;cin >> id; int ret = IsExist(id);if (ret != -1){//找到职工cout << "查找成功!该职工信息如下!" << endl;this->m_EmpArray[ret]->showInfo();}else{cout << "查无此人" << endl;}}else if (select == 2){//按照姓名查string name;cout << "请输入查找的姓名:" << endl;cin >> name; //加入是否查到标志bool flag = false; //默认未找到 for (int i = 0; i < m_EmpNum; i++){if (this->m_EmpArray[i]->m_Name == name){cout << "查找成功,职工编号为:"<< this->m_EmpArray[i]->m_Id<< "号职工信息如下:" << endl; flag = true;this->m_EmpArray[i]->showInfo();}} if (flag == false){cout << "查无此人" << endl;}}else{cout << "输入选项有误!" << endl;}} system("pause");system("cls");} //按照编号排序void WorkerManage::Sort_Emp(){if (this->m_FileIsEmpty){cout << "文件不存在或记录为空!" << endl;system("pause");system("cls");}else{cout << "请输入排序的方式:" << endl;cout << "1,按照职工的编号升序" << endl;cout << "2,按照职工的编号降序" << endl; int select = 0;cin >> select;for (int i = 0; i < m_EmpNum; i++){int minOrMax = i; //声明最小值for (int j = i + 1; j < this->m_EmpNum; j++){if (select == 1) //升序{if (this->m_EmpArray[minOrMax]->m_Id > this->m_EmpArray[j]->m_Id){minOrMax = j;}}else //降序{if (this->m_EmpArray[minOrMax]->m_Id < this->m_EmpArray[j]->m_Id){minOrMax = j;}}}//判断一开始认定的最大值或最小值if (i != minOrMax){Worker * temp = this->m_EmpArray[i];this->m_EmpArray[i] = this->m_EmpArray[minOrMax];this->m_EmpArray[minOrMax] = temp;}}cout << "排序成功!" << endl;this->save(); //排序结果保存this->show_Emp();}} //清空文件void WorkerManage::Clean_File(){cout << "确定清空?" << endl;cout << "1,确定" << endl;cout << "2,返回" << endl; int select = 0;cin >> select; if (select == 1){//清空文件ofstream ofs(FILENAME, ios::trunc); //删除文件后重新创建ofs.close(); if (this->m_EmpArray != NULL){//删除堆区的每个职工对象for (int i = 0; i < this->m_EmpNum; i++){delete this->m_EmpArray[i];this->m_EmpArray[i] = NULL;} //删除堆区数组指针delete[] this->m_EmpArray;this->m_EmpArray = NULL;this->m_EmpNum = 0;this->m_FileIsEmpty = true;} cout << "清空成功" << endl;} system("pause");system("cls");}

workManager.h

#include<iostream>#include<fstream>using namespace std; #include"worker.h"#include"employee.h"#include"manager.h"#include"boss.h" #define FILENAME "empFile.txt" class WorkerManage{public://构造函数WorkerManage();//展示菜单void Show_Menu(); //退出系统void ExitSystem(); //记录职工人数int m_EmpNum;//职工数组指针Worker ** m_EmpArray; //添加职工void Add_Emp(); //保存文件void save(); //判断文件是否为空bool m_FileIsEmpty; //统计文件人数int get_EmpNum(); //初始化职工void init_Emp(); //显示职工void show_Emp(); //删除职工void Del_Emp(); //判断职工是否存在,如果存在返回职工所在数组中的位置,不存在返回-1int IsExist(int id); //修改职工void Mod_Emp(); //查找职工void Find_Emp(); //按照编号排序void Sort_Emp(); //清空文件void Clean_File(); //析构函数~WorkerManage();};

workManager.cpp

#include "workManager.h" //构造函数WorkerManage::WorkerManage(){ifstream ifs;ifs.open(FILENAME, ios::in); //读文件 //1,文件不存在if (!ifs.is_open()){cout << "文件不存在" << endl; //初始化属性//初始化记录人数this->m_EmpNum = 0;//初始化数组指针this->m_EmpArray = NULL;//初始化文件是否为空this->m_FileIsEmpty = true;ifs.close();return;} //2,文件存在,数据为空char ch;ifs >> ch;if (ifs.eof()){//文件为空cout << "文件为空!" << endl;//初始化属性//初始化记录人数this->m_EmpNum = 0;//初始化数组指针this->m_EmpArray = NULL;//初始化文件是否为空this->m_FileIsEmpty = true;ifs.close();return;} //3,文件存在,并且记录数据int num = this->get_EmpNum();//cout << "职工人数为:" << num << endl;this->m_EmpNum = num; //开辟空间this->m_EmpArray = new Worker *[this->m_EmpNum];//将文件中数据,存到数组中this->init_Emp(); } //展示菜单void WorkerManage::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;} //退出系统void WorkerManage::ExitSystem(){cout << "欢迎下次使用" << endl;system("pause");exit(0); //退出程序} //析构函数WorkerManage::~WorkerManage(){ } //添加职工void WorkerManage::Add_Emp(){cout << "请输入添加职工数量:" << endl;int addNum = 0;cin >> addNum; if (addNum > 0){//添加//计算添加新空间大小int newSize = this->m_EmpNum + addNum; //新空间人数 = 原来记录人数+新增人数 //开辟新空间Worker ** newSpace = new Worker*[newSize]; //将原来空间下数据,拷贝到新空间下if (this->m_EmpArray != NULL){for (int i = 0; i < this->m_EmpNum; i++){newSpace[i] = this->m_EmpArray[i];}} //添加新数据for (int i = 0; i < addNum; i++){int id; //职工编号string name; //职工编号int dSelect; //部门选择 cout << "请输入第" << i + 1 << "个新职工编号:" << endl;cin >> id; cout << "请输入第" << i + 1 << "个新职工姓名:" << endl;cin >> name; cout << "请选择该职工岗位:" << endl;cout << "1,普通职工" << endl;cout << "2,经理" << endl;cout << "3,老板" << endl;cin >> dSelect; Worker *worker = NULL;switch (dSelect){case 1:worker = new Employee(id, name, 1);break;case 2:worker = new Manager(id, name, 2);break;case 3:worker = new Boss(id, name, 3);break;default:break;} //将创建职工职责,保存到数组中newSpace[this->m_EmpNum++] = worker;} //释放原有的空间delete[] this->m_EmpArray; //更改新空间指向this->m_EmpArray = newSpace; //更新新的职工人数this->m_EmpNum = newSize; //更新职工不为空标志this->m_FileIsEmpty = false; //添加成功cout << "成功添加" << addNum << "名新职工" << endl; //保存数据到文件中this->save();}else{cout << "输入数据有误" << endl;} system("pause");system("cls");} //保存文件void WorkerManage::save(){ofstream ofs;ofs.open(FILENAME, ios::out); //用输入的方式打开文件 -- 写文件  //将每个人数据写入到文件中for (int i = 0; i < this->m_EmpNum; i++){ofs << this->m_EmpArray[i]->m_Id << " "<< this->m_EmpArray[i]->m_Name << " "<< this->m_EmpArray[i]->m_DeptId << endl;} //关闭文件ofs.close();} //统计文件人数int WorkerManage::get_EmpNum(){ifstream ifs;ifs.open(FILENAME, ios::in); //打开文件 读 int id;string name;int dId; //人数int num = 0; while (ifs >> id&& ifs >> name && ifs >> dId){num++;} return num;} //初始化职工void WorkerManage::init_Emp(){ifstream ifs;ifs.open(FILENAME, ios::in); //打开文件 读 int id;string name;int dId; int index = 0;//读数据while (ifs >> id&& ifs >> name && ifs >> dId){Worker *worker = NULL; switch (dId){case 1:worker = new Employee(id, name, dId);break;case 2:worker = new Manager(id, name, dId);break;case 3:worker = new Boss(id, name, dId);break;default:break;} this->m_EmpArray[index] = worker;index++;} this->m_FileIsEmpty = false;//关闭文件ifs.close();} //显示职工void WorkerManage::show_Emp(){//判断文件是否为空if (this->m_FileIsEmpty){cout << "文件不存在或者记录为空" << endl;}else{for (int i = 0; i < m_EmpNum; i++){//利用多态调用程序端口this->m_EmpArray[i]->showInfo();}} //按任意键后清屏system("pause");system("cls");} //删除职工void WorkerManage::Del_Emp(){if (this->m_FileIsEmpty){cout << "文件不存在或者记录为空" << endl;}else{//按照职工编号删除cout << "请输入想要删除职工编号:" << endl;int id = 0;cin >> id; int index = this->IsExist(id);if (index != -1){//数据前移for (int i = index; i < this->m_EmpNum; i++){this->m_EmpArray[i] = this->m_EmpArray[i + 1];}this->m_EmpNum--; //更新数组中记录人员个数 //数据更新到文件中this->save(); cout << "删除成功" << endl;}else{cout << "删除失败,未找到该职工" << endl;}}system("pause");system("cls");} //判断职工是否存在,如果存在返回职工所在数组中的位置,不存在返回-1int WorkerManage::IsExist(int id){int index = -1;for (int i = 0; i < this->m_EmpNum; i++){if (this->m_EmpArray[i]->m_Id == id){//找到职工index = i; break;}}return index;} //修改职工void WorkerManage::Mod_Emp(){if (this->m_FileIsEmpty){cout << "文件不存在或记录为空" << endl;}else{cout << "修改职工编号:" << endl;int id;cin >> id; int ret = this->IsExist(id);if (ret != -1){//查找到编号的职工delete this->m_EmpArray[ret]; int newId = 0;string newName = "";int dSelect = 0; cout << "查到:" << id << "号职工,请输入新职工号:" << endl;cin >> newId; cout << "请输入新名字:" << endl;cin >> newName; cout << "请输入岗位:" << endl;cout << "1,普通职工" << endl;cout << "2,经理" << endl;cout << "3,老板" << endl; cin >> dSelect; Worker *worker = NULL;switch (dSelect){case 1:worker = new Employee(newId, newName, dSelect);break;case 2:worker = new Manager(newId, newName, dSelect);break;case 3:worker = new Boss(newId, newName, dSelect);break;default:break;} //更新数据 到数组中this->m_EmpArray[ret] = worker; cout << "修改成功!" << endl; //保存到文件中this->save();}else{cout << "修改失败,查无此人" << endl;}} system("pause");system("cls");} //查找职工void WorkerManage::Find_Emp(){if (this->m_FileIsEmpty){cout << "文件不存在或记录为空!" << endl;}else{cout << "请输入查找的方式:" << endl;cout << "1,按照职工的编号查找" << endl;cout << "2,按照职工的姓名查找" << endl; int select = 0;cin >> select;if (select == 1){//按照编号查int id;cout << "请输入查找的职工编号:" << endl;cin >> id; int ret = IsExist(id);if (ret != -1){//找到职工cout << "查找成功!该职工信息如下!" << endl;this->m_EmpArray[ret]->showInfo();}else{cout << "查无此人" << endl;}}else if (select == 2){//按照姓名查string name;cout << "请输入查找的姓名:" << endl;cin >> name; //加入是否查到标志bool flag = false; //默认未找到 for (int i = 0; i < m_EmpNum; i++){if (this->m_EmpArray[i]->m_Name == name){cout << "查找成功,职工编号为:"<< this->m_EmpArray[i]->m_Id<< "号职工信息如下:" << endl; flag = true;this->m_EmpArray[i]->showInfo();}} if (flag == false){cout << "查无此人" << endl;}}else{cout << "输入选项有误!" << endl;}} system("pause");system("cls");} //按照编号排序void WorkerManage::Sort_Emp(){if (this->m_FileIsEmpty){cout << "文件不存在或记录为空!" << endl;system("pause");system("cls");}else{cout << "请输入排序的方式:" << endl;cout << "1,按照职工的编号升序" << endl;cout << "2,按照职工的编号降序" << endl; int select = 0;cin >> select;for (int i = 0; i < m_EmpNum; i++){int minOrMax = i; //声明最小值for (int j = i + 1; j < this->m_EmpNum; j++){if (select == 1) //升序{if (this->m_EmpArray[minOrMax]->m_Id > this->m_EmpArray[j]->m_Id){minOrMax = j;}}else //降序{if (this->m_EmpArray[minOrMax]->m_Id < this->m_EmpArray[j]->m_Id){minOrMax = j;}}}//判断一开始认定的最大值或最小值if (i != minOrMax){Worker * temp = this->m_EmpArray[i];this->m_EmpArray[i] = this->m_EmpArray[minOrMax];this->m_EmpArray[minOrMax] = temp;}}cout << "排序成功!" << endl;this->save(); //排序结果保存this->show_Emp();}} //清空文件void WorkerManage::Clean_File(){cout << "确定清空?" << endl;cout << "1,确定" << endl;cout << "2,返回" << endl; int select = 0;cin >> select; if (select == 1){//清空文件ofstream ofs(FILENAME, ios::trunc); //删除文件后重新创建ofs.close(); if (this->m_EmpArray != NULL){//删除堆区的每个职工对象for (int i = 0; i < this->m_EmpNum; i++){delete this->m_EmpArray[i];this->m_EmpArray[i] = NULL;} //删除堆区数组指针delete[] this->m_EmpArray;this->m_EmpArray = NULL;this->m_EmpNum = 0;this->m_FileIsEmpty = true;} cout << "清空成功" << endl;} system("pause");system("cls");}

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;};

boss.h

#pragma once#include <iostream>using namespace std;#include"worker.h"; class Boss :public Worker{public: Boss(int id, string name, int dId); //显示个人信息virtual void showInfo(); //获取岗位名称virtual string getDeptName();};

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("总裁");}

employee.h

//普通员工文件#pragma once#include<iostream>#include"worker.h"using namespace std; class Employee:public Worker{public:Employee(int id,string name,int dId); //显示个人信息virtual void showInfo(); //获取岗位名称virtual string getDeptName();};

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("员工");}

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(); //获取岗位名称virtual string getDeptName();};

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("经理");}

到此这篇关于C++利用多态实现职工管理系统(项目开发)的文章就介绍到这了,更多相关C++职工管理系统内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

十七岁怎么会有七十岁的忧伤,十八岁怎么会有八十岁的等待。

C++利用多态实现职工管理系统(项目开发)

相关文章:

你感兴趣的文章:

标签云: