【管理系统】C语言学生信息管理系统程序

92 阅读4分钟

《学生信息管理系统程序介绍》

一、程序概述

本程序是一个用C语言编写的学生信息管理系统,旨在实现对学生信息的高效管理,具备添加、显示、查找、修改、删除学生信息,以及将数据保存到文件和从文件加载数据等功能。该系统通过命令行界面与用户进行交互,操作方便,适用于需要简单学生信息管理的场景。

效果图:

在这里插入图片描述 还可以保存数据到文件: 在这里插入图片描述

二、代码结构与全局变量

1. 头文件与宏定义

程序开头包含了必要的头文件,如<stdio.h><stdlib.h><string.h>,分别用于输入输出操作、内存管理和字符串处理。同时,使用宏定义了MAX_STUDENTS(最大学生数量)和MAX_NAME_LENGTH(学生姓名最大长度),方便后续代码的维护和修改。

2. 学生信息结构体

typedef struct {
    int id;
    char name[MAX_NAME_LENGTH];
    int age;
    float score;
    int isEmpty; // 标记该位置是否为空
} Student;

定义了Student结构体,包含学生的ID、姓名、年龄、成绩以及一个用于标记该位置是否为空的isEmpty字段。

3. 全局变量

Student students[MAX_STUDENTS];
int studentCount = 0;

students数组用于存储所有学生的信息,studentCount记录当前系统中的学生数量。

三、主要函数功能

1. initSystem()

该函数用于初始化系统,首先将students数组中的所有位置标记为空,然后尝试从文件students.dat中加载数据。如果文件不存在,将提示创建新的数据文件。最后输出系统启动信息。

2. displayMenu()

显示系统的主菜单,提供了添加、显示、查找、修改、删除学生信息,保存数据到文件,从文件加载数据以及退出系统等操作选项,方便用户选择。

3. addStudent()

用于添加新的学生信息。首先检查学生数量是否达到上限,如果达到则输出错误信息。然后要求用户输入学生的ID,并确保ID不重复。接着输入学生的姓名、年龄和成绩,最后将学生信息添加到students数组的第一个空位置,并更新studentCount

4. displayAllStudents()

遍历students数组,显示所有非空位置的学生信息。如果没有找到任何学生记录,将输出相应的提示信息。

5. searchStudent()

提供按ID和按姓名两种查找方式。用户可以选择查找方式并输入相应的信息,程序将遍历students数组,显示匹配的学生信息。如果没有找到匹配的记录,将输出提示信息。

6. updateStudent()

根据用户输入的学生ID,查找对应的学生信息。如果找到,允许用户修改学生的姓名、年龄和成绩。用户可以选择保持原信息不变,只需输入特定的标识(姓名输入.,年龄和成绩输入 -1)。

7. deleteStudent()

根据用户输入的学生ID,查找对应的学生信息。如果找到,询问用户是否确认删除。确认后,将该位置标记为空,并更新studentCount

8. saveToFile()

将当前系统中的学生信息保存到文件students.dat中。首先以二进制写入模式打开文件,如果打开失败则输出错误信息。然后写入学生数量,再将所有非空位置的学生信息写入文件。最后关闭文件并输出保存成功的信息。

9. loadFromFile()

从文件students.dat中加载学生信息。首先以二进制读取模式打开文件,如果文件不存在则提示创建新的数据文件。然后读取学生数量,重置students数组,再将文件中的学生信息读取到数组的空位置。最后关闭文件并输出加载成功的信息。

四、主函数流程

主函数main()通过一个无限循环不断显示菜单,等待用户输入选择。根据用户的选择调用相应的功能函数,直到用户选择退出系统(输入 0)。

五、总结

该学生信息管理系统程序结构清晰,功能齐全,通过模块化的设计使得代码易于理解和维护。使用二进制文件进行数据的保存和加载,提高了数据处理的效率。但程序也有一些可以改进的地方,例如可以添加输入验证,防止用户输入非法数据;可以优化界面设计,提高用户体验等。

六、完整代码

源代码已保存至百度网盘,可通过微信支付(如果不方便也可以直接在文章下方打赏)

可以将一下文本复制到微信并点击打开即可付款 注意付款看清选项(选学生信息管理系统C语言)

#付款:行走世界(dx3664942640)/代码资源收款/001

在这里插入图片描述