1、功能描述:
2、界面展示:
3、代码:
主程序:职工管理系统.cpp
//职工管理系统.cpp
#include<iostream>
using namespace std;
#include "workermanage.h"
#include "worker.h"
#include "employee.h"
#include "boss.h"
#include "manage.h"
int main()
{
workermanage wm;
int choose = 0;
while (true)
{
wm.show_Menu();
cout << "请输入你的选择:" << endl;
cin >> choose;
switch (choose)
{
case 0://退出系统
wm.exitsystem();
break;
case 1://添加
wm.Addmenber();
break;
case 2://显示
wm.show_emp();
break;
case 3://删除
wm.del_emp();
break;
case 4://修改
wm.mdf_emp();
break;
case 5://查找
wm.find_emp();
break;
case 6://排序
wm.sort_emp();
break;
case 7://清空
wm.clear_emp();
break;
default:
system("cls");
break;
}
}
system("pause");
return 0;
}
设置职工管理类,囊括任务中所有功能的实现:workermanage.h
// workermanage.h
#pragma once // 防止头文件重复包含
#include<iostream> // 包含输入输出流文件
using namespace std; // 使用标准命名空间
#include "worker.h"
#include<fstream>
#include<string>
#define FILENAME "workerinf.txt"
class workermanage
{
public:
workermanage();
//记录职工人数
int m_empnum;
//记录职工信息数组
worker** m_empArray;
//记录文件是否为空
bool m_fileempty;
//显示界面
void show_Menu();
//退出系统
void exitsystem();
//添加人员
void Addmenber();
//获取文件中人数
int get_empnum();
//初始化职工
void init_emp();
//显示职工信息
void show_emp();
//删除员工信息
void del_emp();
//查询id号是否存在
int isExist(int id);
//修改员工
void mdf_emp();
//查找员工
void find_emp();
//排序
void sort_emp();
//清空员工信息
void clear_emp();
//保存文件
void save();
~workermanage();
};
workermanage.cpp:
#include "workermanage.h"
#include "employee.h"
#include "boss.h"
#include "manage.h"
#include<string>
workermanage::workermanage() // 把文件判断放到workermanage类的构造函数,是因为不需要每次执行增删改查都反复从文件读写,只需要在所有操作之前把文件数据放到堆区,每次在堆区处理就行
{
//1、文件不存在
ifstream ifs;
ifs.open(FILENAME, ios::in);
if (!ifs.is_open())
{
//初始化职工人数
this->m_empnum = 0;
//初始化职工信息数组
this->m_empArray = NULL;
//初始化文件标志
this->m_fileempty = true;
ifs.close();
return;
}
else
{
//2、文件存在但为空
char ch;
ifs >> ch;
if (ifs.eof())
{
this->m_empnum = 0;
this->m_empArray = NULL;
this->m_fileempty = true;
ifs.close();
return;
}
//3、文件存在且不为空
if (!ifs.eof())
{
int num = this->get_empnum();
this->m_empnum = num;
this->m_fileempty = false;
this->m_empArray = new worker * [this->m_empnum];
this->init_emp();
return;
}
}
}
void workermanage::show_Menu()
{
cout << "********************************************************"