以下是一个简化的C语言实现的教师管理系统,包括添加、删除和修改教师信息的功能。
```c
#include
#include
typedef struct {
char name[50];
int age;
char subject[50];
} Teacher;
void add_teacher(Teacher *teachers, char *name, int age, char *subject) {
if (strlen(name) == 0 || strlen(subject) == 0) {
printf("输入的信息不能为空!
");
return;
}
strcpy(teachers[0].name, name);
teachers[0].age = age;
strcpy(teachers[0].subject, subject);
}
void delete_teacher(Teacher *teachers, int index) {
if (index < 0 || index >= sizeof(teachers)) {
printf("索引超出范围!
");
return;
}
- for (int i = index; i < sizeof(teachers)
- 1; i++) {
teachers[i] = teachers[i + 1];
}
free(teachers[index].name);
free(teachers[index].age);
free(teachers[index].subject);
free(teachers);
}
void modify_teacher(Teacher *teachers, int index, char *new_name, int new_age, char *new_subject) {
if (index < 0 || index >= sizeof(teachers)) {
printf("索引超出范围!
");
return;
}
strcpy(teachers[index].name, new_name);
teachers[index].age = new_age;
strcpy(teachers[index].subject, new_subject);
}
void display_teachers(Teacher *teachers) {
for (int i = 0; i < sizeof(teachers) / 2; i++) {
printf("姓名:%s,年龄:%d,科目:%s
", teachers[i].name, teachers[i].age, teachers[i].subject);
}
}
int main() {
Teacher teachers[100];
char name[50], subject[50];
int age, new_age, new_subject;
int index;
printf("请输入教师信息(姓名、年龄、科目):
");
while (scanf("%s %d %s", name, &age, subject) != EOF) {
add_teacher(teachers, name, age, subject);
printf("请输入要修改的教师索引(0-99):
");
scanf("%d", &index);
modify_teacher(teachers, index, name, age, subject);
printf("请输入新的姓名、年龄和科目(用空格隔开):
");
scanf("%s %d %s", name, &new_age, subject);
modify_teacher(teachers, index, name, new_age, subject);
printf("所有教师信息已更新!
");
display_teachers(teachers);
}
return 0;
}
```
功能解析:
1. `add_teacher`函数用于添加教师信息,接收一个指向教师数组的指针、教师姓名、年龄和科目作为参数。如果输入的信息为空,则提示错误并返回。
2. `delete_teacher`函数用于删除指定索引的教师信息,释放内存并返回。如果索引超出范围,则提示错误并返回。
3. `modify_teacher`函数用于修改指定索引的教师信息,接收一个指向教师数组的指针、新姓名、新年龄和科目作为参数。如果索引超出范围,则提示错误并返回。
4. `display_teachers`函数用于显示所有教师信息。遍历数组,将每个教师的信息打印出来。
5. `main`函数是程序的入口点,首先创建一个教师数组和一个字符串数组,然后循环读取用户输入的教师信息,调用相应的函数进行添加、修改和显示操作。