定义一个包含5个教师成员的结构体数组,教师信息包括职工号、姓名和工资。要求从键盘输入所有教师的信息,并设计一个sort函数实现结构体数组按教师工资由少到多排序。目前,已编辑完成main函数,请编程实现input函数、output函数和sort函数,分别实现教师信息的录入、输出与排序。
时间: 2023-06-19 16:08:51 浏览: 53
好的,我知道了。下面是代码实现:
```cpp
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
struct Teacher {
string id; // 职工号
string name; // 姓名
int salary; // 工资
};
// 输入函数
void input(Teacher teachers[], int n) {
cout << "请输入教师信息:" << endl;
for (int i = 0; i < n; i++) {
cout << "请输入第" << i + 1 << "个教师的职工号、姓名、工资:" << endl;
cin >> teachers[i].id >> teachers[i].name >> teachers[i].salary;
}
}
// 输出函数
void output(Teacher teachers[], int n) {
cout << "排序后的教师信息:" << endl;
for (int i = 0; i < n; i++) {
cout << "第" << i + 1 << "个教师信息为:" << endl;
cout << "职工号:" << teachers[i].id << endl;
cout << "姓名:" << teachers[i].name << endl;
cout << "工资:" << teachers[i].salary << endl;
}
}
// 排序函数
bool cmp(const Teacher &t1, const Teacher &t2) {
return t1.salary < t2.salary;
}
void sort(Teacher teachers[], int n) {
std::sort(teachers, teachers + n, cmp);
}
int main() {
const int n = 5;
Teacher teachers[n];
input(teachers, n);
sort(teachers, n);
output(teachers, n);
return 0;
}
```
对于这个问题,我们定义了一个结构体 `Teacher`,表示教师信息,其中包括职工号、姓名和工资。然后实现了 `input` 函数,用于从键盘输入所有教师的信息;`output` 函数,用于输出所有教师的信息;以及 `sort` 函数,用于按照工资从小到大将教师结构体数组排序。
在 `main` 函数中,我们定义了一个长度为5的教师结构体数组 `teachers`。然后调用 `input` 和 `sort` 函数,分别输入并排序,最后输出排好序的教师信息。