《模拟工资管理系统3.》由会员分享,可在线阅读,更多相关《模拟工资管理系统3.(31页珍藏版)》请在金锄头文库上搜索。
1、this-Save();/职工信息排序功能void Workers:Sort()buffer = NUM;this-Num();if (NUM = 0)cout 没有职工信息存入,系统将返回主菜单 endl;NUM = buffer;return;elsecout 请选择排序方式: endl;cout * endl;cout * 1.按工号排序(升序) * endl;cout * 2.按工号排序(降序) * endl;cout * 3.按姓名排序(升序) * endl;cout * 4.按姓名排序(降序) * endl;cout * 5.按工资排序(升序) * endl;cout * 6.按工
2、资排序(降序) * endl;cout * 0.返回主菜单 * endl;cout * endl;cout endl;cout 请选择数字编号06 choice2;while (choice2 6)cout 输入有误,请重新输入: choice2;if (choice2 = 1)int i, j;for (i = 0; i NUM - 1; i+)for (j = 0; j wj + 1.ID.size() | (wj.ID.size() = wj + 1.ID.size() & wj.ID wj + 1.ID)Worker *temp = new Worker(wj);wj = wj + 1
3、;wj + 1 = *temp;delete temp;cout 按工号升序后的信息如下: endl;cout 工号t姓名t性别t学历t年龄t地址t电话tt实际收入 endl;for (i = 0; i NUM; i+)cout wi.ID t wi.name t wi.sex t wi.edu t wi.age;cout t wi.address t wi.tel t wi.pay endl;else if (choice2 = 2)int i, j;for (i = 0; i NUM - 1; i+)for (j = 0; j NUM - 1 - i; j+)if (wj.ID.size(
4、)wj + 1.ID.size() | (wj.ID.size() = wj + 1.ID.size() & wj.ID wj + 1.ID)Worker *temp = new Worker(wj);wj = wj + 1;wj + 1 = *temp;delete temp;cout 按工号降序后的信息如下: endl;cout 工号t姓名t性别t学历t年龄t地址t电话tt实际收入 endl;for (i = 0; i NUM; i+)cout wi.ID t wi.name t wi.sex t wi.edu t wi.age;cout t wi.address t wi.tel t w
5、i.pay endl;else if (choice2 = 3)int i, j;for (i = 0; i NUM - 1; i+)for (j = 0; j wj + 1.name)Worker *temp = new Worker(wj);wj = wj + 1;wj + 1 = *temp;delete temp;cout 按姓名升序后的信息如下: endl;cout 工号t姓名t性别t学历t年龄t地址t电话tt实际收入 endl;for (i = 0; i NUM; i+)cout wi.ID t wi.name t wi.sex t wi.edu t wi.age;cout t w
6、i.address t wi.tel t wi.pay endl;else if (choice2 = 4)int i, j;for (i = 0; i NUM - 1; i+)for (j = 0; j NUM - i - 1; j+)if (wj.name wj + 1.name)Worker *temp = new Worker(wj);wj = wj + 1;wj + 1 = *temp;delete temp;cout 按姓名降序后的信息如下: endl;cout 工号t姓名t性别t学历t年龄t地址t电话tt实际收入 endl;for (i = 0; i NUM; i+)cout w
7、i.ID t wi.name t wi.sex t wi.edu t wi.age;cout t wi.address t wi.tel t wi.pay endl;else if (choice2 = 5)int i, j;for (i = 0; i NUM - 1; i+)for (j = 0; j wj + 1.pay)Worker *temp = new Worker(wj);wj = wj + 1;wj + 1 = *temp;delete temp;cout 按工资升序后的信息如下: endl;cout 工号t姓名t性别t学历t年龄t地址t电话tt实际收入 endl;for (i
8、= 0; i NUM; i+)cout wi.ID t wi.name t wi.sex t wi.edu t wi.age;cout t wi.address t wi.tel t wi.pay endl;else if (choice2 = 6)int i, j;for (i = 0; i NUM - 1; i+)for (j = 0; j NUM - i - 1; j+)if (wj.pay wj + 1.pay)Worker *temp = new Worker(wj);wj = wj + 1;wj + 1 = *temp;delete temp;cout 按工资降序后的信息如下: endl;cout 工号t姓名t性别t学历t年龄t地址t电话tt实际收入 endl;for (i = 0; i NUM; i+)cout wi.ID t wi.name t wi.sex t wi.edu t wi.age;cout t wi.address t wi.tel t wi.pay endl;else if (choice2 = 0)return;ofstream fout;fout.open(E:worker.txt, ios_base:ate);