e == 1)
{
int id;
std::cout << "请输入你要查找的员工编号: ";
std::cin >> id;
int result = isExist(id);
if (result != -1)
{
std::cout << "查找成功,员工信息如下:" << std::endl;
this->m_EmpArray[result]->showInfo();
}
else
{
std::cout << "没有找到职工编号为[" << id << "]的员工" << std::endl;
}
}
else if (choise == 2)
{
std::string name;
std::cout << "请输入你要查找的员工姓名: ";
std::cin >> name;
bool flag = false;
for (int i = 0; i < this->m_EmpNum; i++)
{
if (this->m_EmpArray[i]->m_Name == name)
{
std::cout << "查找成功,员工信息如下:" << std::endl;
this->m_EmpArray[i]->showInfo();
flag = true;
}
}
if (flag == false)
{
std::cout << "没有找到职工姓名为[" << name << "]的员工" << std::endl;
}
}
else
{
std::cout << "输入有误,请重新输入" << std::endl;
}
system("pause");
system("cls");
}
13. 职工排序
功能描述:按照职工编号进行排序,排序的顺序由用户指定
13.1 排序函数声明
在 workerManager.h
中添加成员函数 void sort_Emp();
//排序职工
void sort_Emp();
13.2 排序函数实现
在 workerManager.cpp
中实现成员函数 void sort_Emp();
void WorkerManager::sort_Emp()
{
if (this->m_FileIsEmpty)
{
std::cout << "文件不存在或记录为空" << 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();
}
}
该排序算法选用 选择排序 难度不大,如果没有算法基础可以去看算法可视化动画,没有基础的人看完一般在1个小时内能够写出来大致的思路
14. 清空文件
功能描述:将文件中记录数据清空
14.1 清空函数声明
在 workerManager.h
中声明函数 void clean_File();
//清空文件
void clean_File();
14.2 清空函数实现
在 workerManager.cpp
中实现成员函数 void clean_File();
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::o