二.自定义头文件
- 创业
- 2025-08-03 22:03:01

一.Worker.h 1.1概述
- 类名:Worker - 继承关系:所有其他类(Employee、Manager、Boss)都继承自该抽象类 - 头文件保护:使用 pragma once 防止头文件重复包含 - 引入标准库:包含 <iostream> 和 <string> 头文件 - 命名空间:使用了 using namespace std; 来使用标准命名空间中的标识符
成员函数: 1. virtual void Show_Info() = 0;:纯虚函数,用于显示个人信息,需要在派生类中具体实现。 2. virtual string Get_DeptName() = 0;:纯虚函数,用于获取岗位名称,需要在派生类中具体实现。
成员变量: - int W_Id;:职工编号 - string W_Name;:职工姓名 - int W_DeptId;:职工所在部门名称编号
在这个抽象类中,定义了纯虚函数和职工的基本信息成员变量,它们将被继承的子类实现。通过这种方式,可以实现多态性,允许派生类根据具体情况来实现功能。请注意,在这个抽象类中不能创建实例,只能被用作其他类的基类来继承和实现特定功能。
1.2.代码: /* 这是一个抽象的职工父类,以下类都继承自该类: 1.Employee类 2.Manager类 3.Boss类 */ #pragma once //防止头文件重复包含 #include<iostream> //包含标准输入输出流 #include<string> using namespace std; //使用标准命名空间 class Worker { public: //1.显示个人信息 virtual void Show_Info() = 0; //2.获取岗位名称 virtual string Get_DeptName() = 0; //职工编号 int W_Id; //职工姓名 string W_Name; //职工所在部门名称编号 int W_DeptId; }; 二.Employee.h 1.1概述- 类名:Employee - 继承关系:继承自 Worker 类 - 头文件保护:#pragma once - 引入标准库:#include<iostream>, <string> - 命名空间:using namespace std
构造函数
Employee(int id, string name, int dept_id)- 作用:用于创建 Employee 类的对象并初始化对象的属性。 - 参数: - id:职工的ID,整数类型。 - name:职工的姓名,字符串类型。 - dept_id:职工所在部门的ID,整数类型。 - 功能:通过接收参数,将参数赋值给类的属性,完成对象的初始化。
成员函数
1.void Show_Info() - 作用:显示普通员工的个人信息。 - 参数:无 - 功能:打印普通员工对象的职工ID、姓名和所在部门ID等信息。
2.string Get_DeptName() - 作用:获取普通员工所在部门的名称。 - 参数:无 - 返回值:返回值为字符串类型,表示部门名称。 - 功能:根据员工的部门ID,返回对应部门的名称。
这些成员函数是针对 Employee 类的操作和功能定义的,用于实现对普通员工对象的属性获取和信息显示。
成员变量:暂无
2.2代码 #pragma once //防止头文件重复包含 /*这是一个普通员工类,该类继承自Worker类,并实现了父类Worker中的纯虚函数。*/ #include<iostream> //包含标准输入输出流 #include<string> #include "Worker.h" using namespace std; //使用标准命名空间 class Employee:public Worker { public: //1.构造函数 Employee(int id, string name, int dept_id); //2.显示个人信息 void Show_Info(); //3.获取岗位名称 string Get_DeptName(); }; 三.Manager.h 一.概述- 类名:Manager - 继承关系:继承自 Worker 类 - 头文件保护:#pragma once - 引入标准库:#include<iostream>, <string> - 命名空间:using namespace std
构造函数
Manager(int id, string name, int dept_id)- 作用:用于创建 Manager 类的对象并初始化对象的属性。 - 参数: - id:职工的ID,整数类型。 - name:职工的姓名,字符串类型。 - dept_id:职工所在部门的ID,整数类型。 - 功能:通过接收参数,将参数赋值给类的属性,完成对象的初始化。
成员函数
1.void Show_Info() - 作用:显示经理的个人信息。 - 参数:无 - 功能:打印经理对象的职工ID、姓名和所在部门ID等信息。
2.string Get_DeptName() - 作用:获取经理所在部门的名称。 - 参数:无 - 返回值:返回值为字符串类型,表示部门名称。 - 功能:根据员工的部门ID,返回对应部门的名称。
这些成员函数是针对经理 类的操作和功能定义的,用于实现对经理对象的属性获取和信息显示。
成员变量:暂无
二.代码 #pragma once //防止头文件重复包含 /*这是一个经理类,该类继承自Worker类,并实现了父类Worker中的纯虚函数。*/ #include<iostream> //包含标准输入输出流 #include<string> #include "Worker.h" using namespace std; //使用标准命名空间 class Manager:public Worker { public: //1.构造函数 Manager(int id, string name, int dept_id); //2.显示个人信息 void Show_Info(); //3.获取岗位名称 string Get_DeptName(); }; 四.Boss.h 一.概述- 类名:Boss - 继承关系:继承自 Worker 类 - 头文件保护:#pragma once - 引入标准库:#include<iostream>, <string> - 命名空间:using namespace std
构造函数
Boss(int id, string name, int dept_id)- 作用:用于创建 Boss 类的对象并初始化对象的属性。 - 参数: - id:职工的ID,整数类型。 - name:职工的姓名,字符串类型。 - dept_id:职工所在部门的ID,整数类型。 - 功能:通过接收参数,将参数赋值给类的属性,完成对象的初始化。
成员函数
1.void Show_Info() - 作用:显示总裁的个人信息。 - 参数:无 - 功能:打印总裁对象的职工ID、姓名和所在部门ID等信息。
2.string Get_DeptName() - 作用:获取总裁所在部门的名称。 - 参数:无 - 返回值:返回值为字符串类型,表示部门名称。 - 功能:根据员工的部门ID,返回对应部门的名称。
这些成员函数是针对总裁 类的操作和功能定义的,用于实现对总裁对象的属性获取和信息显示。
成员变量:暂无
二.代码 #pragma once //防止头文件重复包含 /*这是一个老板类,该类继承自Worker类,并实现了父类Worker中的纯虚函数。*/ #include<iostream> //包含标准输入输出流 #include<string> #include "Worker.h" using namespace std; //使用标准命名空间 class Boss:public Worker { public: //1.构造函数 Boss(int id, string name, int dept_id); //2.显示个人信息 void Show_Info(); //3.获取岗位名称 string Get_DeptName(); }; 五.DataStructType.h 一.概述职工数据链表结点结构:
WorkerLinkNode 结构体定义了职工数据链表的结点结构,包括职工数据指针和指向下一个结点的指针。WorkerDataPtr 是指向职工数据的指针,类型为 Worker*,用于存储职工对象的地址。next 是指向下一个结点的指针,类型为 WorkerLinkNode*,用于连接职工数据链表中的结点。职工数据链表头指针结构:
header 结构体定义了职工数据链表的头指针结构,包括记录链表结点数的变量和指向第一个结点的指针。worker_num 是记录当前链表的结点数(职工人数)的变量,类型为 int。next 是指向第一个结点的指针,类型为 WorkerLinkNode*。 二.代码 //这是一个职工数据链表的结点结构和头指针结构的声明头文件 #pragma once //防止头文件重复包含 //职工数据链表结点结构 typedef struct wlist { Worker* WorkerDataPtr;//职工链表结点数据域 wlist* next; }WorkerLinkNode; //职工数据链表头指针结构 typedef struct header { int worker_num; //记录当前链表的结点数(职工人数) WorkerLinkNode* next; }Header; 六 WorkerManager.h 一.概述WorkerManager 类用于实现职工信息的管理,包含一些成员函数用于对职工进行添加、显示、修改、删除等操作,同时包含一些成员变量用于管理职工链表和文件。
类结构设计:
WorkerManager 类用于管理职工信息,包含构造函数、成员函数和成员变量。构造函数 WorkerManager 用于初始化 WorkerManager 类的对象。成员函数包括对职工信息的管理操作,如添加职工、显示职工、修改职工、删除职工等。成员变量包括职工链表的头指针 LinkHeader、尾指针 EndPtr,以及用于判断文件是否为空和是否存在的标志。成员函数说明:
构造函数:用于初始化 WorkerManager 对象。Get_WorkerNum:读取当前打开文件中的职工人数。Init_WorkerLinkList:初始化职工数据链表。Show_Menu:显示系统菜单。Exit_System:退出系统。Add_worker:添加职工功能。Save_File:保存员工信息到文件。Show_worker:显示职工数据。FinD_Worker:查找职工。MoD_Worker:修改职工信息。Del_Worker:删除职工信息。Is_Empty_LinkList:检查当前链表是否为空。Sort_Worker:排序职工链表及文件数据。Asce_sort:升序排序函数。DesE_sort:降序排序函数。Clean_File:清空文件数据。Is_ExistWorker:根据职工编号或姓名判断职工是否存在。Get_Pre:返回当前数据结点的前驱结点。Get_Suc:返回当前数据结点的后继结点。Store_Array:将链表数据存在临时数组中,用于排序。Recom_Link:将排好序的数组数据连接成链表。析构函数:用于释放 WorkerManager 对象的资源。成员变量说明:
职工链表头指针 LinkHeader:用于指向职工链表的头结点。职工链表尾指针 EndPtr:用于指向职工链表的尾结点。判断文件是否为空标志 File_IsEmpty:用于表示当前打开的文件是否为空。判断文件是否存在标志 File_IsExist:用于表示要操作的文件是否存在。使用指南:
在使用 WorkerManager 类时,需要创建一个 WorkerManager 对象并调用相应的成员函数,可以实现对职工信息的管理操作,如添加职工、显示职工、修改职工、删除职工等。 二.代码 #pragma once //防止头文件重复包含 /* 该头文件声明了一个WorkerManager类,用于实现职工信息的管理。该类包含了一些成员函数, 如构造函数、添加职工、显示职工、修改职工、删除职工等。同时,它还包含一些用于管理 职工链表的成员变量,如链表的头指针和尾指针,以及一些与文件相关的标志。 */ #include<iostream> //包含标准输入输出流 #include<string> #include "Worker.h" #include "DataStructType.h" #define EMPFILE "DataFile.txt" using namespace std; //使用标准命名空间 //创建职工管理类 class WorkerManger { public: /**************************WorkerManger类成员函数相关声明***************************/ //1.WorkerManger类的构造函数 WorkerManger(); //2..读取当前打开文件中的职工人数 int Get_WorkerNum(); //3.初始化职工数据链表 void Init_WorkerLinkList(); //4.显示系统菜单函数 void Show_Menu(); //5.退出系统函数 void Exit_System(); //6.添加职工功能函数 void Add_worker(); //7.保存员工信息到文件 void Save_File(); //8.显示职工数据 void Show_worker(); //9.查找职工 void FinD_Worker(); //10.修改职工信息 void MoD_Worker(); //11.删除职工信息 void Del_Worker(); //12.检查当前链表是否为空 bool Is_Empty_LinkList(); //13.排序职工链表及文件数据 void Sort_Worker(); //14.升序排序函数 void Asce_sort(int low, int high, WorkerLinkNode* Array); //15.降序排序函数 void DesE_sort(int low, int high, WorkerLinkNode* Array); //16.清空文件数据 void Clean_File(); //17.根据职工编号判断职工是否存在,存在则返回结点指针 ,否则返回空 WorkerLinkNode* Is_ExistWorker(int E_id); //18.根据职工姓名判断职工是否存在,存在则返回结点指针 ,否则返回空 WorkerLinkNode* Is_ExistWorker(string E_name); //19.返回当前数据结点的前驱结点,无前驱结点则返回空 WorkerLinkNode* Get_Pre(WorkerLinkNode* &curr_node); //20.返回当前数据结点的后继结点,无后继结点则返回空 WorkerLinkNode* Get_Suc(WorkerLinkNode* &curr_node); //21.将链表数据存在到临时数组中,便于排序 WorkerLinkNode* Store_Array(); //22.将排好序的数组数据,连接成链表 WorkerLinkNode* Recom_Link(WorkerLinkNode* Array); //23.WorkerManger类的析构函数 ~WorkerManger(); /*************************WorkerManger类成员变量相关声明****************************/ //1.职工链表头指针 Header*LinkHeader; //2.职工链表尾指针 WorkerLinkNode* EndPtr; //3.判断文件是否为空标志 bool File_IsEmpty; //4.判断文件是否存在标志 bool File_IsExist; };下一篇
git常用命令