第二十章 综合案例——基于多态的职工管理系统

编程入门 行业动态 更新时间:2024-10-23 04:46:51

第二十章 综合案例——基于多态的职工<a href=https://www.elefans.com/category/jswz/34/1769858.html style=管理系统"/>

第二十章 综合案例——基于多态的职工管理系统

1、管理系统需求

职工管理系统可以用来管理公司内所有员工的信息

本教程主要利用C++来实现一个基于多态的职工管理系统

公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责

普通员工职责:完成经理交给的任务

经理职责:完成老板交给的任务,并下发任务给员工

老板职责:管理公司所有事务

管理系统中需要实现的功能如下:

  • 退出管理程序:退出当前管理系统

  • 增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号

  • 显示职工信息:显示公司内部所有职工的信息

  • 删除离职职工:按照编号删除指定的职工

  • 修改职工信息:按照编号修改职工个人信息

  • 查找职工信息:按照职工的编号或者职工的姓名进行查找相关的人员信息

  • 按照编号排序:按照职工编号,进行排序,排序规则由用户指定

  • 清空所有文档:清空文件中记录的所有职工信息 (清空前需要再次确认,防止误删)

系统界面效果图如下:

需根据用户不同的选择,完成不同的功能!

2、创建项目

创建项目步骤如下:

  • 创建新项目

  • 添加文件

2.1 创建项目

打开vs2017后,点击创建新项目,创建新的C++项目

填写项目名称以及项目路径,点击确定

2.2 添加文件

右键源文件,进行添加文件操作

至此,项目已创建完毕

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_Menu();

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>using namespace std;#include "workerManager.h"​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::exitSystem(){cout << "欢迎下次使用" << endl;system("pause");exit(0);}

5.3测试功能

在main函数分支 0 选项中,调用退出程序的接口

运行测试效果如图:

6、创建职工类

6.1 创建职工抽象类

职工的分类为:普通员工、经理、老板

将三种职工抽象到一个类(worker)中,利用多态管理不同职工种类

职工的属性为:职工编号、职工姓名、职工所在部门编号

职工的行为为:岗位职责信息描述,获取岗位名称

头文件文件夹下 创建文件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; //职工所在部门名称编号};

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

更多推荐

第二十章 综合案例——基于多态的职工管理系统

本文发布于:2023-12-04 20:56:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1662174.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:管理系统   职工   案例   十章   多态

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!