C++职工管理系统(课程设计报告(一)

简介: C++职工管理系统(课程设计报告)

项目介绍

项目介绍

该职工管理系统主要是用来管理整个公司的信息,基于C++继承和多态来实现,同时也包含文件流操作。

设计任务

设计任务

(1)设计个职工管理系统,管理整个公司的信息,公司的职工分为三类:老板,经理,员工,他们的公有属性都包含职工编号,职工姓名,以及职责。

(2)职责:

①老板职责:管理公司所有的事物.

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

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

设计要求

设计要求

(1)职工管理系统中需要实现以下几种功能:

①退出功能:退出当前程序。

②增加职工信息:实现批量增加(自己可以确定一次性增加几个职工的信息)职工信息,并将信息录入到文件中,职工信息分为:职工编号,职工职责,职工姓名。

③显示职工信息:显示公司内所有职工的信息。

④删除职工信息:按照职工编号删除信息。

⑤修改职工信息:按照职工编号修改职工信息

⑥排序功能:按照职工编号对职工进行排序。

⑦清空信息功能:清空文件中记录所有职工的信息。

此次项目采用分文件,文件流,C++继承和多态完成。(采用公有继承),并且第二次运行程序时,第一的运行程序的数据仍能保留(信息数据能够保留。

程序设计

代码讲解

2.1程序的总体结构

(1)头文件:

①common.h:包含该项目用到的所有头文件。

(2)类:

②worker(基类,只需要写出声明(worker.h头文件),让其他类继承其中的属性和行为就行,不需要写出实现):包含公司职工的公有属性和行为(成员函数为纯虚函数)。boss(老板类),manager(经理类),employer(员工类),采用公有继承的方式继承worker类。 然后,就可以用一个worker**类型的,管理三个继承worker的类的数据(用new创建,worker*类型)。

③workerManger类:用来实现该程序的所有功能。

④源.cpp,进行该项目的测试。

(3)分文件截图

(4)头文件截图

①common.h

②worker.h(包含职工编号,姓名,部门编号,以及获取岗位和显示信息的函数)

③boss.h 继承worker类

④manager.h 继承worker

⑤employer.h 继承worker

⑥workerManger.h 包含实现该系统功能的所有函数,以及员工总人数(EmpNum),判断文件是否为空(FileEmpty)等数据成员。

(1)boss.cpp,manager.cpp,employer.cpp的实现

①这三个类的实现思路都是一样的,他们的构造函数对继承worker.h的属性,进行初始化。

②ShowInfo()函数,就对他们的数据成员进行打印,getDeptName()函数,就返回对应的职工(老板,经理,员工)。

boss类

employer类

manager类

(2)managerWorker.cpp的实现

①Show_Menu()函数的实现

直接用cout打印即可。

②ExitSystem()函数的实现

直接调用exit()函数,就可以实现程序的退出。

③addInfo()函数的实现(添加信息)

添加信息,先进行添加信息数量的输入, 然后进行信息添加,分两步,第一步,先对原来的信息进行拷贝。第二步就添加信息(用cin添加),职工编号,

姓名,部门编号,这几个继承的属性,通过new创建出各自的对象,调用其构造函数即可。

这里的work**类型的便是用于存储,用new创建的work*类型的老板,经理,员工类的数据。

注意:还需要判断添加的信息是否重复,因为后面会多次用到,我单独写了个函数JudgeInformation(int ID),就将之前存储的数据挨个遍历,看是否能找到相同的ID,能找到自己就算是添加信息重复,

当然还有文件信息的保存与更新(saveFile()函数),将存储的信息,输入到文件中去(用文件流操作)

下面是具体代码的实现(以截图形式展示,部分代码分析见上):

函数JudgeInformation(int ID)的实现

当然这里如果添加重新重复了,就还可以重新输入职工编号。

**saveFile()函数的实现**

第一步:就先打开文件,第二步:然后将信息输入到文件中,第三步:关闭文件

文件名这里采用的宏定义(FILENAME)便于后面修改,宏定义和头文件都放在common.h这个头文件中。


相关文章
|
4天前
|
C++
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
7 0
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
|
16天前
|
C++
【C/C++基础实战】:用C++实现通讯录管理系统——含完整源码
【C/C++基础实战】:用C++实现通讯录管理系统——含完整源码
|
23天前
|
存储 搜索推荐 C++
C++课程设计实验杭州电子科技大学ACM题目(中)
C++课程设计实验杭州电子科技大学ACM题目(中)
15 1
|
2月前
|
C++
车辆管理系统设计(C++)
车辆管理系统设计(C++)
29 2
|
23天前
|
存储 人工智能 测试技术
C++课程设计实验杭州电子科技大学ACM题目(下)
C++课程设计实验杭州电子科技大学ACM题目(下)
12 0
|
23天前
|
存储 C++
C++课程设计实验杭州电子科技大学ACM题目(上)
C++课程设计实验杭州电子科技大学ACM题目(上)
12 0
|
2月前
|
存储 人工智能 数据安全/隐私保护
【C++面向对象】C++考试题库管理系统(源码)【独一无二】
【C++面向对象】C++考试题库管理系统(源码)【独一无二】
|
2月前
|
C++
C++入门项目——通讯管理系统
C++入门项目——通讯管理系统
|
2月前
|
C++
c++实现通讯录管理系统(控制台版)
c++实现通讯录管理系统(控制台版)
|
2月前
|
存储 人工智能 搜索推荐
【C语言/C++】电子元器件管理系统(C源码)【独一无二】
【C语言/C++】电子元器件管理系统(C源码)【独一无二】