1、 1 * * * * *大大大大学学学学 C 语言语言课程设计课程设计报告报告 题题 目:目: 学生宿舍管理系统学生宿舍管理系统 系 部 名 称系 部 名 称 : 专 业 名 称专 业 名 称 : 班级班级 : 学学 号号 : 学 生 姓 名学 生 姓 名 : 指 导 教 师指 导 教 师 : 时间时间 : 2 一、一、 课程设计目的课程设计目的 1. 设计一个 ubuntu 下的学生宿舍管理系统 2. 掌握用 C 语言定义单链表结构,并实现其创建、插入、删除等基本操作。 二、二、课程设计内容课程设计内容 用 C 语言编写“学生宿舍管理系统” ,要求如下: 1. 创建链表,录入数据。 2. 数
2、据的读写操作。 3. 数据的更新操作。 4. 数据的删除和插入。 5. 请你要求对数据进行查找。 6. 按要求排序。 7. 设计总体菜单界面。 三、三、实验实验要求要求 1、录入数据 学生的基本信息,包括学号、姓名、性别、年龄、专业、班级等。 宿舍楼的基本信息,包括宿舍楼号、学生所住的房间号和宿舍床位号等。 2、数据存储 信息的录入要求用链表,把输入的信息要求存储到指定文件夹中,以便随 时查看,也可供程序调用,方便操作人员不用重复输入数据。 3、数据的更新 更新包括插入、删除、修改。 删除分根据学号删除和根据学生的楼层信息删除。 5、数据的查询 查询可以根据学号和宿舍信息不同方面进行查询,方便
3、操作者使用。 6、数据的排序 操作者可以使所输入的信息按学号排序。 7、数据的统计 按整体统计,统计所有学生人数,男生人数和女生人数。 四、四、概要设计概要设计 1系统结构系统结构图(功能模块图)图(功能模块图) 3 2功能模块说明功能模块说明: (1). 数据录入:创建单链表,调用 Initnode()函数申请头结点,在调用 append(), 在调用 Write_to_File()函数将信息写入文件中, (2) 插入模块: 先将文件信息读出, 再调用 insert()函数, 可以向文件中插入信息。 (3) 插入模块:先将文件信息读出,再调用 del()函数,可以将输入错误或者 需要的信息删
4、除。 (4) 修改模块:先将文件信息读出,再调用 modify()函数,将输入错误的信息修 改。 (5) 查询模块:先将文件信息读出,再调用 search(),在 search()中有调用两个 数,一个按照宿舍信息查询 sushe_search(),需要楼号和宿舍号, 一个按照生信息查询 xuehao_search()需要学生学号或者姓名。 (6) 排序模块:先将文件信息读出,再调用 sort (),按照学生学号排序,拍完续没 有直接 写入 文件 ,如果 要直 接写 入调用 文件 读入 函数 Write_to_File(). (7) 统计模块:先将文件信息读出,再调用 tongji()函数,统
5、计了女生人数和男生 人数,还统计了总人数. 五五详细过程和运行结果详细过程和运行结果: 主主 函函 数数 录入存储录入存储 数据操作数据操作 输出信息输出信息 输入输入 统计统计 查找查找 修改修改 删除删除 插入插入 显示显示 排序排序 4 删除模块删除模块 != = 插入模块插入模块 开始 输入要删除学生的学号 num p-num:num 删除该学生信息 结束 组织循环, 扫描存储学生 信息的链表 开始 头插入学生信息 输入插入的学生信息 结束 将其入栈,即将插入的学 生信息插到了最前面 5 查找模块查找模块 != != 开始 选择查找方式 按学生学号查找 输入要查找的学生 学号 num
6、p-num:num 输出该学生的信息 按宿舍信息查找 输 入 要 查 找 的 学 生 lounum,sushenum,chuang num p-lounum:sushenu p-sushenum:sushenu p-chuangnum:chuangnu 输出该学生信息 结束 组织循环,扫描存储 学生信息的链表表 6 修改模块修改模块 != = 开始 输入要修改的学生学号 num 组织循环,扫描存储学 生信息的链表表 p-num:num 修改学生信息 结束 7 排序模块排序模块 开始 组织循环,扫描存 储学生信息的链表 选出学号最小的学生,与第一 学生交换存储位置 在余下的学生中选出学号最小的学生与 第二个学生交换存储位置 以此类推,直至排序完成 结束 8 统计模块统计模块 六六参考文献参考文献: C 语言程序设计: 王曙燕 开始 组织循环,扫描存储学