以下是示例代码,使用冒泡排序算法进行排序:
```cpp
#include <iostream>
#include <string>
using namespace std;
const int N = 10;
// 定义教师结构体
struct teach {
string name;
string unit;
int age;
string title;
};
// 定义学生结构体
struct stu {
string name;
string cls;
string gender;
int score;
};
// 教师按照年龄从大到小排序
void teach_sort_by_age(teach t[]) {
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < N - i - 1; j++) {
if (t[j].age < t[j + 1].age) {
swap(t[j], t[j + 1]);
}
}
}
}
// 学生按照入学成绩从大到小排序
void stu_sort_by_score(stu s[]) {
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < N - i - 1; j++) {
if (s[j].score < s[j + 1].score) {
swap(s[j], s[j + 1]);
}
}
}
}
// 输出教师信息
void print_teach(teach t[]) {
cout << "按年龄从大到小排序的教师信息:" << endl;
for (int i = 0; i < N; i++) {
cout << "姓名:" << t[i].name << ",单位:" << t[i].unit << ",年龄:" << t[i].age << ",职称:" << t[i].title << endl;
}
}
// 输出学生信息
void print_stu(stu s[]) {
cout << "按入学成绩从大到小排序的学生信息:" << endl;
for (int i = 0; i < N; i++) {
cout << "姓名:" << s[i].name << ",班级:" << s[i].cls << ",性别:" << s[i].gender << ",入学成绩:" << s[i].score << endl;
}
}
int main() {
// 定义教师和学生数组
teach t[N] = {
{"张三", "计算机系", 35, "副教授"},
{"李四", "数学系", 42, "教授"},
{"王五", "物理系", 28, "助教"},
{"赵六", "化学系", 56, "教授"},
{"钱七", "生物系", 31, "讲师"},
{"孙八", "地理系", 39, "副教授"},
{"周九", "历史系", 47, "教授"},
{"吴十", "政治系", 25, "助教"},
{"郑一", "经济系", 33, "副教授"},
{"冯二", "外语系", 29, "讲师"}
};
stu s[N] = {
{"张三", "一班", "男", 88},
{"李四", "二班", "女", 92},
{"王五", "三班", "男", 65},
{"赵六", "四班", "男", 78},
{"钱七", "五班", "女", 96},
{"孙八", "六班", "男", 85},
{"周九", "七班", "女", 77},
{"吴十", "八班", "男", 91},
{"郑一", "九班", "女", 80},
{"冯二", "十班", "男", 79}
};
// 排序并输出
teach_sort_by_age(t);
print_teach(t);
stu_sort_by_score(s);
print_stu(s);
return 0;
}
```
输出结果:
```cpp
按年龄从大到小排序的教师信息:
姓名:赵六,单位:化学系,年龄:56,职称:教授
姓名:周九,单位:历史系,年龄:47,职称:教授
姓名:李四,单位:数学系,年龄:42,职称:教授
姓名:孙八,单位:地理系,年龄:39,职称:副教授
姓名:张三,单位:计算机系,年龄:35,职称:副教授
姓名:郑一,单位:经济系,年龄:33,职称:副教授
姓名:钱七,单位:生物系,年龄:31,职称:讲师
姓名:冯二,单位:外语系,年龄:29,职称:讲师
姓名:王五,单位:物理系,年龄:28,职称:助教
姓名:吴十,单位:政治系,年龄:25,职称:助教
按入学成绩从大到小排序的学生信息:
姓名:钱七,班级:五班,性别:女,入学成绩:96
姓名:李四,班级:二班,性别:女,入学成绩:92
姓名:吴十,班级:八班,性别:男,入学成绩:91
姓名:张三,班级:一班,性别:男,入学成绩:88
姓名:孙八,班级:六班,性别:男,入学成绩:85
姓名:郑一,班级:九班,性别:女,入学成绩:80
姓名:冯二,班级:十班,性别:男,入学成绩:79
姓名:王五,班级:三班,性别:男,入学成绩:65
姓名:周九,班级:七班,性别:女,入学成绩:77
姓名:赵六,班级:四班,性别:男,入学成绩:78
```