C语言实现教师管理系统

这是一个使用C语言编写的教师管理系统示例,包括添加、查找和显示教师信息功能。系统通过结构体存储教师数据,并提供了相应的操作函数。用户可以添加教师信息,按姓名查找教师,或显示所有教师列表。程序在主函数中通过菜单驱动,直至用户选择退出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是一个简单的教师管理系统的 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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT大鸵鸟

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值