;文件不存在或记录为空" << std::endl;
system("pause");
system("cls");
}
else
{
std::cout << "请输入排序的方式:" << std::endl;
std::cout << "1.按员工编号升序" << std::endl;
std::cout << "2.按员工编号降序" << std::endl;
int choise = 0;
std::cin >> choise;
//升序
for (int i = 0; i < this->m_EmpNum; i++)
{
int Min_Or_Max = i;
for (int j = i + 1; j < this->m_EmpNum; j++)
{
if (choise == 1)
{
//前一个大于后一个,就移动min指针
if (this->m_EmpArray[Min_Or_Max]->m_Id > this->m_EmpArray[j]->m_Id)
{
Min_Or_Max = j;
}
//前一个小于后一个,继续往后比较
}
else if (choise == 2)
{
//前一个小于后一个,就移动max指针
if (this->m_EmpArray[Min_Or_Max]->m_Id < this->m_EmpArray[j]->m_Id)
{
Min_Or_Max = j;
}
//前一个大于后一个,继续往后比较
}
}
//一轮比较后,如果标记位置变了,交换位置
if (Min_Or_Max != i)
{
Worker* tempWorker = this->m_EmpArray[i];
this->m_EmpArray[i] = this->m_EmpArray[Min_Or_Max];
this->m_EmpArray[Min_Or_Max] = tempWorker;
}
}
this->save();
std::cout << "排序完成,排序后的结果如下:" << std::endl;
this->show_Emp();
}
}
void WorkerManager::clean_Emp()
{
if (this->m_FileIsEmpty)
{
std::cout << "文件不存在或记录为空" << std::endl;
}
else
{
std::cout << "请确认是否需要清空?" << std::endl;
std::cout << "1.清空" << std::endl;
std::cout << "2.返回" << std::endl;
int choise = 0;
std::cin >> choise;
if (choise == 1)
{
std::ofstream ofs(FILENAME, std::ios::trunc);
ofs.close();
if (this->m_EmpArray != NULL)
{
for (int i = 0; i < this->m_EmpNum; i++)
{
delete this->m_EmpArray[i];
this->m_EmpArray[i] = NULL;
}
delete[] this->m_EmpArray;
this->m_EmpArray = NULL;
this->m_EmpNum = 0;
this->m_FileIsEmpty = true;
}
std::cout << "清空成功" << std::endl;
}
}
system("pause");
system("cls");
}
WorkerManager::~WorkerManager()
{
if (this->m_EmpArray != NULL)
{
for (int i = 0; i < this->m_EmpNum; i++)
{
delete this->m_EmpArray[i];
}
delete[] this->m_EmpArray;
this->m_EmpArray = NULL;
}
}
3. Main函数主体
负责调用我们写好的函数
main.cpp
#include <iostream>
#include "workerManager.h"
#include "worker.h"
#include "employee.h"
#include "manager.h"
#include "boss.h"
int main()
{
WorkerManager wm;
int choise = 0;
while (true)
{
wm.showMenu();
std::cout << "请输入你的选择: " << std::endl;
std::cin >> choise;
switch (choise)
{
case 0: //退出系统
wm.exitSystem();
break;
case 1: //添加职工
wm.add_Emp();
break;
case 2: //显示职工
wm.show_Emp();
break;
case 3: //删除职工
wm.del_Emp();
break;
case 4: //修改职工
wm.mod_Emp();
break;
case 5: //查找职工
wm.find_Emp();
break;
case 6: //排序职工
wm.sort_Emp();
break;
case 7: //清空文件
wm.clean_Emp();
break;
default:
system("cls