基于多态的职工管理系统(14)------排序
功能描述:按照职工编号进行排序,排序的顺序由用户指定
14.1 排序函数声明
在workerManager.h中添加成员函数 void Sort_Emp();
//排序职工 void Sort_Emp();
在workerManager.cpp中实现成员函数 void Sort_Emp();
//排序职工 void WorkerManager::Sort_Emp() { if (this->m_FileIsEmpty) { cout << "文件不存在或记录为空!" << endl; system("pause"); system("cls"); } else { cout << "请选择排序方式: " << endl; cout << "1、按职工号进行升序" << endl; cout << "2、按职工号进行降序" << endl; int select = 0; cin >> select; for (int i = 0; i < m_EmpNum; i++) { int minOrMax = i; for (int j = i + 1; j < m_EmpNum; j++) { if (select == 1) //升序 { if (m_EmpArray[minOrMax]->m_Id > m_EmpArray[j]->m_Id) { minOrMax = j; } } else //降序 { if (m_EmpArray[minOrMax]->m_Id < m_EmpArray[j]->m_Id) { minOrMax = j; } } } if (i != minOrMax) { Worker * temp = m_EmpArray[i]; m_EmpArray[i] = m_EmpArray[minOrMax]; m_EmpArray[minOrMax] = temp; } } cout << "排序成功,排序后结果为:" << endl; this->save(); this->Show_Emp(); } }
在main函数分支 6 选项中,调用排序职工接口

首先我们添加一些职工,序号是无序的,例如:

测试 - 升序排序

文件同步更新

测试 - 降序排序

文件同步更新

至此,职工按照编号排序的功能实现完毕!

浙公网安备 33010602011771号