首先带大家看看文件的结构以及树状图
以下是具体的思路:
1、管理系统需求
职工管理系统可以用来管理公司内所有员工信息
本教程主要利用c++来实现一个基于多态的职工管理系统
公司中职工分为三类:普通员工、经理、老板、显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责
普通员工职责:完成经理交给的任务
经理的职责:完成老板交给的任务,并下发给任务给员工
老板职责:管理公司所有事物
管理系统中需要实现的功能如下
-
推出管理程序: 退出当前管理系统
-
增加职工信息: 实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号
-
显示职工信息: 显示公司内部所有职工的信息
-
删除离职职工:按照编号删除指定的职工
-
修改职工信息: 按照编号修改职工个人信息
-
查找职工信息: 按照职工的编号或者职工的姓名进行查找相关的人员信息
-
按照编号排序:按照职工编号、进行排序,排序规则由用户指定
-
清空所有文档:清空文件中记录的所有职工信息(清空前需要在此取人,防止误删)
系统界面效果如图:
2、创建项目
创建项目步骤如下:
-
创建新项目
-
添加文件
2.1创建项目
打开vs2017后,点击创建项目,创建新的C++项目
填写项目名称以及项目路径,点击确认
2.2添加文件
右键源文件,进行添加文件操作
至此项目已经创建完毕
3、创建管理类
管理类负责的内容如下:
-
与用户的沟通菜单界面
-
对职工增删改查的操作
-
与文件的读写交互
3.1创建文件
在头文件和源文件的文件下分别创建workerManager.h和workManager.cpp文件
3.2头文件实现
在workManager.h中设计管理类
代码如下:
#pragma once//防止头文件重复包含 #include <iostream>//包含输入输出流头文件 using namespace std;//使用标准命名空间 class WorkerManager { public: //构造函数 WorkerManager(); //析构函数 ~WorkerManager(); };
在workerManager.cpp中设计管理类
代码如下:
#include "workerManager.h" WorkerManager::WorkerManager() { } WorkerManager::~WorkerManager() { }
4、菜单功能
功能描述:与用户的沟通界面
4.1 添加成员函数
在管理类workerManager.h中添加成员函数 void Show_Menu():
#pragma once//防止头文件重复包含 #include <iostream>//包含输入输出流头文件 using namespace std;//使用标准命名空间 class WorkerManager { public: //构造函数 WorkerManager(); //展示菜单 void Show_Menu(); //析构函数 ~WorkerManager(); };
4.2 菜单功能实现
在管理类workerManager.cpp中实现Show_Menu()函数
#include "workerManager.h" WorkerManager::WorkerManager() { } //展示菜单 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; } WorkerManager::~WorkerManager() { if (this->m_EmArray != NULL) { delete[] this->m_EmArray; this->m_EmArray = NULL; } }
4.3 测试菜单功能
在职工管理系统.cpp中测试菜单功能
代码:
#include<iostream> using namespace std; #include "workerManager.h" int main() { //实例化管理者对象 WorkerManager wm; //调用展示菜单成员函数 wm.Show_Menu(); system("pause"); return 0; }
运行效果如图:
5、退出功能
5.1提供功能接口
在main函数中提供分支选择,提供每个功能接口
代码:
#include<iostream> using namespace std; #include "workerManager.h" int main() { //实例化管理者对象 WorkManager wm; int choice = 0;//用来存储用户的选项 while(true) { //调用展示菜单成员函数 wm.Show_Menu(); cout << "请输入您的选择" << endl; cin >> choice;//接受用户的选项 switch (choice) { case 0://退出系统 wm.ExitSystem(); break; case 1://增加职工 break; case 2://显示职工 break; case 3://删除职工 break; case 4://修改职工 break; case 5://查找职工 break; case 6://排序职工 break; case 7://清空文档 break; default://清屏 break; } } system("pause"); return 0; }
5.2实现退出功能
在workerManager.h中退出系统的成员函数 void exitSystem();
void ExitSystem();
在workerManager.cpp中提供具体的功能实现
代码:
void WorkerManager::ExitSystem() { cout << "欢饮下次再使用" << endl; system("pause"); exit(0);//退出程序 }
5.3测试功能
在main函数分支0选项中,调用退出程序的接口
运行测试截图
6、创建职工类
6.1创建职工抽象类
职工的分类为: 普通员工、经理、老板
将三种职工抽象到一个类(worker)中,利用多态管理不同职工种类
职工的属性为:职工编号、职工姓名、职工所在部门编号
职工的行为:岗位指责信息描述、获取岗位