定义一个包含5个教师成员的结构体数组,教师信息包括职工号、姓名和工资。要求从键盘输入所有教师的信息,并设计一个sort函数实现结构体数组按教师工资由少到多排序。目前,已编辑完成main函数,请编程实现input函数、output函数和sort函数,分别实现教师信息的录入、输出与排序。
时间: 2024-02-11 12:07:49 浏览: 57
好的,以下是实现代码:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
struct Teacher {
int id;
string name;
double salary;
};
void input(Teacher* tea, int num) {
for(int i=0; i<num; i++) {
cout << "请输入第" << i+1 << "个教师的职工号、姓名和工资(用空格分开):";
cin >> tea[i].id >> tea[i].name >> tea[i].salary;
}
}
void output(Teacher* tea, int num) {
cout << "职工号\t姓名\t工资" << endl;
for(int i=0; i<num; i++) {
cout << tea[i].id << "\t" << tea[i].name << "\t" << tea[i].salary << endl;
}
}
bool cmp(Teacher a, Teacher b) {
return a.salary < b.salary;
}
void sort(Teacher* tea, int num) {
std::sort(tea, tea+num, cmp);
}
int main() {
const int num = 5;
Teacher tea[num];
input(tea, num);
sort(tea, num);
output(tea, num);
return 0;
}
```
在这个代码中,我们定义了一个名为`Teacher`的结构体,包含了三个成员变量:职工号、姓名和工资。然后我们输入了所有教师的信息,并将其存储在一个结构体数组中。最后,我们使用`std::sort`函数对结构体数组进行排序,排序的方式是按照教师工资由少到多排序。最后,我们输出排序后的结果。
阅读全文