C语言实现的学生信息与成绩管理系统

需积分: 10 15 下载量 45 浏览量 更新于2024-11-22 收藏 32KB TXT 举报
"一个使用C语言实现的学生管理系统,包含了对学生信息和成绩的管理功能,如添加、删除、修改和查询。系统使用结构体定义学生信息和成绩,通过宏定义进行内存分配,并提供了一系列的菜单驱动操作函数。" 该学生管理系统是基于C语言编程的,它实现了对学籍信息和成绩数据的管理。主要由以下几部分构成: 1. **宏定义**:`length` 定义数组长度为10,`MES` 和 `MAR` 分别用于动态分配`struct studentMessage`和`struct studentMark`结构体的空间。 2. **字符串常量**:`subname` 是一个二维字符数组,存储了10门课程的名称。 3. **结构体定义**: - `MESSAGE` 结构体表示学生的基本信息,包括姓名(name),学号(id),性别(sex),学院(collage),班级(Class)以及指向下一个学生的指针(next)。 - `MARK` 结构体表示学生的成绩信息,包含学号(id),姓名(name),一门课程的结构体数组(sub),每个子结构体包含课程ID(subid),课程名(subname)和分数(score),还有总成绩(total)和指向下一个成绩记录的指针(next)。 4. **功能函数声明**: - `mainmenu` 和 `searchmenu` 提供主菜单和搜索菜单。 - `menu` 函数返回用户选择的操作。 - `addstudent` 添加学生信息。 - `scanstuAll` 扫描并输入所有学生信息。 - `searchstuclass` 搜索特定班级的学生。 - `changestu` 和 `change` 修改学生信息。 - `deletemenu` 提供删除功能的菜单。 - `searchstuone` 搜索单个学生。 - `deletestuone`, `deletestuall`, `deletestuclass` 分别删除单个、全部和按班级删除学生信息。 - `addstudentMark` 添加学生成绩。 - `scanstuMarkAll` 输入所有学生的成绩。 - `searchMarkmenu` 成绩搜索菜单。 - `searchstuMarkone` 搜索单个学生的成绩。 - `deleteMarkmenu` 成绩删除菜单。 - `deletestuMarkall`, `deletestuMarkone` 删除所有、单个学生的成绩。 - `changeMark` 和 `changestuMark` 修改成绩。 - `printscholarship` 打印奖学金信息。 - `readfilestu` 和 `readfilestuMark` 从文件读取学生信息和成绩。 - `savefilestuMark` 和 `savefilestu` 将学生信息和成绩保存到文件。 这个系统允许用户通过命令行界面进行学生信息和成绩的增删查改操作,同时具备从文件读取和保存数据的功能,确保数据的持久化。通过这些函数,开发者可以构建一个简单的交互式学生管理系统,方便进行学籍和成绩的管理。