用c语言写一个教师管理系统
时间: 2023-12-24 07:03:16 浏览: 40
下面是使用 C 语言编写的简单教师管理系统示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 50
#define MAX_ID_LEN 20
typedef struct {
char name[MAX_NAME_LEN];
char id[MAX_ID_LEN];
int age;
char gender;
} Teacher;
typedef struct {
Teacher *teachers;
int size;
int capacity;
} TeacherList;
TeacherList *create_teacher_list(int capacity) {
TeacherList *list = (TeacherList *)malloc(sizeof(TeacherList));
list->teachers = (Teacher *)malloc(capacity * sizeof(Teacher));
list->size = 0;
list->capacity = capacity;
return list;
}
void destroy_teacher_list(TeacherList *list) {
free(list->teachers);
free(list);
}
void add_teacher(TeacherList *list, Teacher *teacher) {
if (list->size >= list->capacity) {
list->capacity *= 2;
list->teachers = (Teacher *)realloc(list->teachers, list->capacity * sizeof(Teacher));
}
list->teachers[list->size++] = *teacher;
printf("Teacher added successfully.\n");
}
void print_teacher(Teacher *teacher) {
printf("%s (%s), %d years old, %c\n", teacher->name, teacher->id, teacher->age, teacher->gender);
}
void print_teacher_list(TeacherList *list) {
printf("Teacher List:\n");
for (int i = 0; i < list->size; i++) {
print_teacher(&list->teachers[i]);
}
}
int main() {
TeacherList *list = create_teacher_list(10);
Teacher teacher;
while (1) {
printf("Enter name (or 'quit' to exit): ");
scanf("%s", teacher.name);
if (strcmp(teacher.name, "quit") == 0) {
break;
}
printf("Enter ID: ");
scanf("%s", teacher.id);
printf("Enter age: ");
scanf("%d", &teacher.age);
printf("Enter gender (M/F): ");
scanf(" %c", &teacher.gender);
add_teacher(list, &teacher);
}
print_teacher_list(list);
destroy_teacher_list(list);
return 0;
}
```
这个教师管理系统使用一个结构体 `Teacher` 存储每个教师的姓名、身份证号码、年龄和性别,使用另一个结构体 `TeacherList` 存储所有教师。`create_teacher_list()` 函数用于创建一个新的教师列表,`add_teacher()` 函数用于添加一个教师,`print_teacher_list()` 函数用于打印整个教师列表,`destroy_teacher_list()` 函数用于销毁教师列表并释放内存。在 `main()` 函数中,我们可以通过循环来不断添加教师,输入 `quit` 结束输入。