3职工管理系统

1、管理系统需求

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

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

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

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

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

2、创建项目

3、创建管理类

管理类负责的内容如下:
1.与用户的沟通菜单界面
2.对职工增删改查的操作
3.与文件的读写交互

4、菜单功能

功能:与用户沟通的界面

5、推出功能

在main函数中提供分支选择,提供每个功能接口
用switch case语句实现

6、创建职工类

职工的分类为:普通员工、经理、老板
将三种职工抽象到一个类(Worker)中,利用多态管理不同职工种类
职工的属性为:职工编号,职工姓名,职工所在部门编号
职工的行为:岗位职责描述,获取岗位名称

1.创建抽象职工类
2.创建普通员工类
普通员工类继承抽象职工类,并重写父类中的纯虚函数,才能实例化对象

3.创建经理类
经理类继承抽象职工类,并重写父类中的纯虚函数,和普通员工类似

4.创建老板类
老板类继承抽象职工类,并重写父类中的纯虚函数,和普通员工类似

7、添加职工

功能描述:批量添加职工,并且保存到文件中。
1.功能分析
用户在批量创建时,可能会创建不同种类的职工。
如果想将所有不同种类的员工都放到一个数组中,可以将所有员工的指针维护到一个数组里。
如果想在程序中维护这个不定长的数组,可以将数组创建到堆区,并利用Worker** 的指针维护。
worker** 是一个二级指针。
image

8、文件交互-写文件
功能描述:对文件进行读写
在上一个添加功能中,我们只是将所有的数据添加到了内存中,一旦程序结束就无法保存了。
因此文件管理类中需要一个与文件进行交互的功能,对文件进行读写操作。

9、文件交互-读文件
功能描述:将文件中的内容读到程序中
虽然我们实现了添加职工后保存到文件的操作,但是每次开始运行程序,并没有将文件中数据读取到程序中。
而我们的程序功能中还有清空的需求。
因此构造函数初始化数据的情况分为三种。‘

1.第一次使用,文件未创建。
2.文件存在,但是数据被用户清空。
3.文件存在,并且保存职工的所有数据。

10、显示职工
功能描述:显示当前所有职工信息。

11、删除职工
功能描述:安装职工的编号进行删除职工操作。

12、修改职工
功能描述:能够按照职工的编号对职工信息进行修改并保存

13、查找职工
功能描述:提供两种查找职工的方式,一种是按照职工编号,一种是按照职工姓名

14、排序
功能描述:按照职工编号进行排序,排序的顺序由用户指定

15、清空文件
1.判断程序内部维护的数组指针,如果它不为空,我们需要先把它内部维护的堆区的每一个对象释放干净。
2.通过循环判断每一个对象是否存在
3.如果对象不为空,先把对象释放
4.再把堆区维护的数组释放

这个项目的整体框架思路?

注意
1、这个项目的目的在哪?
2、项目的难点在哪?
3、项目都用到了哪些技术?
4、如果让自己在不看提示的情境中写出来?

posted @ 2024-03-21 18:46  蓝色的海嗷  阅读(23)  评论(0编辑  收藏  举报