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++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
92 0
|
3月前
|
C++
【C++案例】一个项目掌握C++基础-通讯录管理系统
这篇文章通过一个通讯录管理系统的C++项目案例,详细介绍了如何使用C++实现添加、显示、删除、查找、修改和清空联系人等功能。
57 3
|
4月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
112 1
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
4月前
|
Rust 安全 C++
系统编程的未来之战:Rust能否撼动C++的王座?
【8月更文挑战第31天】Rust与C++:现代系统编程的新选择。C++长期主导系统编程,但内存安全问题频发。Rust以安全性为核心,通过所有权和生命周期概念避免内存泄漏和野指针等问题。Rust在编译时确保内存安全,简化并发编程,其生态系统虽不及C++成熟,但发展迅速,为现代系统编程提供了新选择。未来有望看到更多Rust驱动的系统级应用。
72 1
|
4月前
|
存储 算法 数据可视化
【C++】C++旅游管理系统(源码+论文)【独一无二】
【C++】C++旅游管理系统(源码+论文)【独一无二】
|
4月前
|
存储 数据挖掘 C语言
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
|
4月前
|
搜索推荐 数据处理 文件存储
【C++】C++ 培训报名系统 (源码+论文)【独一无二】
【C++】C++ 培训报名系统 (源码+论文)【独一无二】
|
4月前
|
存储 C++
【C++】C++公司人事管理系统(源码)【独一无二】
【C++】C++公司人事管理系统(源码)【独一无二】
147 2
|
4月前
|
存储 数据可视化 C++
【C++】C++-机房收费管理系统(源码+注释)【独一无二】
【C++】C++-机房收费管理系统(源码+注释)【独一无二】
|
4月前
|
数据可视化 C++
【C++】C++商店销售管理系统(源码+论文)【独一无二】
【C++】C++商店销售管理系统(源码+论文)【独一无二】
102 1