以下是一个简单的教师管理系统的 C 语言实现示例。该示例包括添加教师信息、查找教师信息、显示所有教师信息和退出程序等功能。
在这个示例中,我们首先定义了一个 `Teacher` 结构体,它包含教师的姓名、年龄和所在院系。然后我们定义了一些函数,例如 `add_teacher` 用于添加教师信息,`find_teacher` 用于查找教师信息,`show_teachers` 用于显示所有教师信息。
在 `main` 函数中,我们显示了一个菜单,根据用户选择的选项执行相应的操作。用户可以选择添加教师信息、查找教师信息、显示所有教师信息或退出程序。
当用户选择添加教师信息时,程序会提示用户输入教师姓名、年龄和所在院系,并将教师信息添加到 `teachers` 数组中。
当用户选择查找教师信息时,程序会提示用户输入要查找的教师姓名,并遍历 `teachers` 数组查找与输入姓名匹配的教师。
当用户选择显示所有教师信息时,程序会遍历 `teachers` 数组显示每个教师的信息。
当用户选择退出程序时,程序会退出 `do-while` 循环并结束程序。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LENGTH 20
#define MAX_DEPARTMENT_LENGTH 20
#define MAX_TEACHERS 100
// 教师结构体
typedef struct Teacher {
char name[MAX_NAME_LENGTH];
int age;
char department[MAX_DEPARTMENT_LENGTH];
} Teacher;
// 添加教师信息
void add_teacher(Teacher *teachers, int *count) {
// 输入教师姓名、年龄和所在院系
printf("Enter teacher name: ");
scanf("%s", teachers[*count].name);
printf("Enter teacher age: ");
scanf("%d", &teachers[*count].age);
printf("Enter teacher department: ");
scanf("%s", teachers[*count].department);
// 增加教师数量
(*count)++;
}
// 查找教师信息
void find_teacher(Teacher *teachers, int count) {
char name[MAX_NAME_LENGTH];
int i, found = 0;
// 输入要查找的教师姓名
printf("Enter teacher name to search: ");
scanf("%s", name);
// 遍历教师列表查找与输入姓名匹配的教师
for (i = 0; i < count; i++) {
if (strcmp(teachers[i].name, name) == 0) {
// 显示教师信息并标记为已找到
printf("Teacher found:\n");
printf("Name: %s\n", teachers[i].name);
printf("Age: %d\n", teachers[i].age);
printf("Department: %s\n", teachers[i].department);
found = 1;
break;
}
}
// 如果未找到匹配的教师,则显示相应信息
if (!found) {
printf("Teacher not found.\n");
}
}
// 显示所有教师信息
void show_teachers(Teacher *teachers, int count) {
int i;
// 遍历教师列表显示每个教师的信息
for (i = 0; i < count; i++) {
printf("Teacher %d:\n", i+1);
printf("Name: %s\n", teachers[i].name);
printf("Age: %d\n", teachers[i].age);
printf("Department: %s\n", teachers[i].department);
}
}
int main() {
int option, count = 0;
Teacher teachers[MAX_TEACHERS];
// 显示菜单并获取用户输入,直到用户选择退出
do {
printf("\nTeacher Management System\n");
printf("--------------------------\n");
printf("1. Add Teacher\n");
printf("2. Find Teacher\n");
printf("3. Show All Teachers\n");
printf("4. Exit\n");
printf("Enter option (1-4): ");
scanf("%d", &option);
switch (option) {
case 1:
if (count < MAX_TEACHERS) {
add_teacher(teachers, &count);
printf("Teacher added successfully.\n");
} else {
printf("Cannot add more teachers. Maximum limit reached.\n");
}
break;
case 2:
if (count > 0) {
find_teacher(teachers, count);
} else {
printf("No teachers found.\n");
}
break;
case 3:
if (count > 0) {
show_teachers(teachers, count);
} else {
printf("No teachers found.\n");
}
break;
case 4:
printf("Exiting program...\n");
break;
default:
printf("Invalid option. Please enter a valid option (1-4).\n");
}
} while (option != 4);
return 0;
}