学生宿舍管理系统代码的简单介绍,包括其功能、结构和关键部分的说明。
系统概述
这个学生宿舍管理系统是用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" // 文件名