基于C语言的学生宿舍管理系统

学生宿舍管理系统代码的简单介绍,包括其功能、结构和关键部分的说明。

系统概述
这个学生宿舍管理系统是用C语言编写的,主要用于管理学生的信息,包括添加、删除、查询和修改学生信息。系统还提供了登录功能,确保只有授权用户能够访问系统。

主要功能
用户登录: 系统要求用户输入用户名和密码,验证通过后才能访问系统功能。
添加学生: 用户可以输入学生的ID、姓名、年龄和宿舍号,将新学生信息添加到系统中。
删除学生: 用户可以通过输入学生ID来删除对应的学生信息。
查询学生: 用户可以根据学生ID查询并显示学生的详细信息。
显示所有学生: 列出当前所有学生的信息。
修改学生信息: 用户可以根据学生ID修改已有学生的信息。
按条件筛选学生: 用户可以根据年龄或宿舍号筛选并显示符合条件的学生。
数据存储: 学生信息可以保存到文件中,并在下次运行时加载。
代码结构
数据结构: 使用结构体 Student 来存储学生信息,包括ID、姓名、年龄和宿舍号。
全局变量: students 数组用于存储学生信息,student_count 变量用于记录当前学生数量。
功能函数:
login(): 处理用户登录。
add_student(), delete_student(), query_student(), display_students(), modify_student(): 处理学生信息的增删查改。
filter_by_age() 和 filter_by_dorm(): 按条件筛选学生。
save_to_file() 和 load_from_file(): 处理数据的持久化存储。
关键部分
登录功能:

使用固定的用户名和密码(admin 和 123456)进行验证。
输入验证:

在添加和修改学生信息时,系统会验证输入的ID和年龄是否合法,确保数据的有效性。
文件操作:

在加载学生信息时,首先检查文件是否存在。如果不存在,则创建一个新的文件。使用 fopen() 函数打开文件,fwrite() 和 fread() 函数用于写入和读取数据。
错误处理:

使用 perror() 函数输出详细的错误信息,以帮助调试和理解问题。
使用示例
启动程序后,用户输入用户名和密码进行登录。
登录成功后,用户可以选择不同的操作,例如添加学生、查询学生等。
所有学生信息会在程序退出时保存到文件中,下次运行时会自动加载。
总结
这个学生宿舍管理系统是一个简单而功能丰富的项目,展示了基本的C语言编程技巧,包括结构体、文件操作、输入验证和错误处理。它可以作为学习C语言和数据管理的基础项目,后续可以根据需求进行扩展和改进。
在这里插入图片描述
在这里插入图片描述

// 主函数
int main() {
    int choice;

    // 尝试登录
    if (!login()) {
        return 0; // 登录失败,退出程序
    }

    load_from_file(); // 登录成功后加载学生信息

    while (1) {
        printf("\n宿舍管理系统\n");
        printf("1. 添加学生\n");
        printf("2. 删除学生\n");
        printf("3. 查询学生\n");
        printf("4. 显示所有学生\n");
        printf("5. 修改学生信息\n");
        printf("6. 按年龄筛选学生\n");
        printf("7. 按宿舍号筛选学生\n");
        printf("8. 保存数据\n");
        printf("9. 退出\n");
        printf("选择操作: ");

        // 输入验证
        while (scanf("%d", &choice) != 1) {
            printf("无效输入,请输入一个数字:");
            while (getchar() != '\n'); // 清空输入缓冲区
        }

        switch (choice) {
            case 1: add_student(); break; // 添加学生
            case 2: delete_student(); break; // 删除学生
            case 3: query_student(); break; // 查询学生
            case 4: display_students(); break; // 显示所有学生
            case 5: modify_student(); break; // 修改学生信息
            case 6: filter_by_age(); break; // 按年龄筛选学生
            case 7: filter_by_dorm(); break; // 按宿舍号筛选学生
            case 8: save_to_file(); break; // 保存数据
            case 9: exit(0); // 退出程序
            default: printf("无效的选择,请重新输入。\n");
        }
    }
    return 0;
}

头文件

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define MAX_STUDENTS 100 // 定义最大学生数量
#define USERNAME "admin" // 默认用户名
#define PASSWORD "123456" // 默认密码
#define FILENAME "students.dat" // 文件名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值