1、管理系统需求
职工管理系统可以用来管理公司内所有员工的信息。
公司中职工分为三类,普通员工、经历、老板。
显示信息时,需要显示职工编号,职工姓名、职工岗位,以及职责。
普通员工职责:完成经理交给的任务。
经理职责:完成老板交给的任务,并下发任务给员工。
老板职责:管理公司所有事务。
2、创建项目
3、创建管理类
管理类负责的内容如下:
1.与用户的沟通菜单界面
2.对职工增删改查的操作
3.与文件的读写交互
4、菜单功能
功能:与用户沟通的界面
5、推出功能
在main函数中提供分支选择,提供每个功能接口
用switch case语句实现
6、创建职工类
职工的分类为:普通员工、经理、老板
将三种职工抽象到一个类(Worker)中,利用多态管理不同职工种类
职工的属性为:职工编号,职工姓名,职工所在部门编号
职工的行为:岗位职责描述,获取岗位名称
1.创建抽象职工类
2.创建普通员工类
普通员工类继承抽象职工类,并重写父类中的纯虚函数,才能实例化对象
3.创建经理类
经理类继承抽象职工类,并重写父类中的纯虚函数,和普通员工类似
4.创建老板类
老板类继承抽象职工类,并重写父类中的纯虚函数,和普通员工类似
7、添加职工
功能描述:批量添加职工,并且保存到文件中。
1.功能分析
用户在批量创建时,可能会创建不同种类的职工。
如果想将所有不同种类的员工都放到一个数组中,可以将所有员工的指针维护到一个数组里。
如果想在程序中维护这个不定长的数组,可以将数组创建到堆区,并利用Worker** 的指针维护。
worker** 是一个二级指针。
8、文件交互-写文件
功能描述:对文件进行读写
在上一个添加功能中,我们只是将所有的数据添加到了内存中,一旦程序结束就无法保存了。
因此文件管理类中需要一个与文件进行交互的功能,对文件进行读写操作。
9、文件交互-读文件
功能描述:将文件中的内容读到程序中
虽然我们实现了添加职工后保存到文件的操作,但是每次开始运行程序,并没有将文件中数据读取到程序中。
而我们的程序功能中还有清空的需求。
因此构造函数初始化数据的情况分为三种。‘
1.第一次使用,文件未创建。
2.文件存在,但是数据被用户清空。
3.文件存在,并且保存职工的所有数据。
10、显示职工
功能描述:显示当前所有职工信息。
11、删除职工
功能描述:安装职工的编号进行删除职工操作。
12、修改职工
功能描述:能够按照职工的编号对职工信息进行修改并保存
13、查找职工
功能描述:提供两种查找职工的方式,一种是按照职工编号,一种是按照职工姓名
14、排序
功能描述:按照职工编号进行排序,排序的顺序由用户指定
15、清空文件
1.判断程序内部维护的数组指针,如果它不为空,我们需要先把它内部维护的堆区的每一个对象释放干净。
2.通过循环判断每一个对象是否存在
3.如果对象不为空,先把对象释放
4.再把堆区维护的数组释放
这个项目的整体框架思路?
注意
1、这个项目的目的在哪?
2、项目的难点在哪?
3、项目都用到了哪些技术?
4、如果让自己在不看提示的情境中写出来?