在c语言中完成一个小型教师信息管理系统,要求分别用函数实现以下功能: 1. 输入10个教师的姓名和工号; 2. 按工号由小到大顺序排序,姓名顺序也随之调整,并分行输出排好序的工号和姓名; 3. 输入一个工号,查找该工号的教师姓名,在主函数输入要查找的工号,并输出该教师姓名; 4.用主函数分别调用以上函数。
时间: 2024-03-13 15:42:39 浏览: 12
好的,以下是一个简单的实现,具体注释在代码中:
```c
#include <stdio.h>
#include <string.h>
struct teacher {
char name[20];
int id;
};
void input_teachers(struct teacher teachers[]) {
int i;
for (i = 0; i < 10; i++) {
printf("请输入第%d个教师的姓名和工号:\n", i + 1);
scanf("%s %d", teachers[i].name, &teachers[i].id);
}
}
void sort_teachers(struct teacher teachers[]) {
int i, j;
struct teacher temp;
for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (teachers[j].id > teachers[j + 1].id) {
temp = teachers[j];
teachers[j] = teachers[j + 1];
teachers[j + 1] = temp;
}
}
}
}
void print_teachers(struct teacher teachers[]) {
int i;
printf("按工号顺序排列后的教师信息如下:\n");
for (i = 0; i < 10; i++) {
printf("%d %s\n", teachers[i].id, teachers[i].name);
}
}
void search_teacher(struct teacher teachers[]) {
int i, id;
printf("请输入要查找的教师工号:\n");
scanf("%d", &id);
for (i = 0; i < 10; i++) {
if (teachers[i].id == id) {
printf("教师姓名为:%s\n", teachers[i].name);
return;
}
}
printf("未找到该工号对应的教师!\n");
}
int main() {
struct teacher teachers[10];
input_teachers(teachers);
sort_teachers(teachers);
print_teachers(teachers);
search_teacher(teachers);
return 0;
}
```