1、计算机学院c 语言程序设计课程设计报告 - 1 - c语言程序设计语言程序设计 课程设计报告课程设计报告 题目: 宿舍管理查询软件 专业: 网络工程 班级: 姓名: 指导教师: 成绩: 计算机学院计算机学院 20172017 年年 4 4 月月 2121 日日(课外的,第十周答辩和总结)(课外的,第十周答辩和总结) 20172017 年年 5 5 月月 2121 日日(课内的,第十四周答辩和总结)(课内的,第十四周答辩和总结) 学号学号 2016-2017 学年学年 第第 2 学期学期 计算机学院c 语言程序设计课程设计报告 - 2 - 一一 需求设计需求设计 1.1 任务:任务: 为宿舍管理
2、人员编写一个宿舍管理查询软件 1.1.1 程序设计要求:程序设计要求: 主要利用数据结构能力设计开发一个小型的管理信息系统, 至少具有如下功 能:宿舍号录入,按学号、性别、系别、专业、班级进行查询等操作。操作界面 要符合用户的一般习惯,图形或文本界面都可以。 要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完 成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高 用 C 语言进行文件操作和绘图应用的编程技术水平; 初步了解软件开发的一般方 法和步骤; 提高撰写技术文档的能力。 1.1.2 查询菜单查询菜单 按姓名查询 按学号查询 按房号查询 1.1.3 各个模
3、块之间的主要关系各个模块之间的主要关系 该程序的功能主要是实现学生住宿的录入, 并对学生住宿的相应信息进行学 生信息的统计。各个模块之间的关系是相互联系的。首先,主函数包含了所有的 子函数。主函数是整个程序的核心。子函数之间也是有联系的,对学生住宿信息 的添加、修改、删除、查询,必须是在学生宿舍号录入的情况下进行的。因此对 计算机学院c 语言程序设计课程设计报告 - 3 - 学生住宿信息的录入是非常重要的。在学生住宿信息的添加、修改、删除、查询 等所有子函数之间是没有多大联系的。 1.2 功能:功能: 根据上述要求,我们开始考虑系统应具备的功能: 要实现交互工作方式,各项操作结束后均应返回主菜
4、单; 系统本无任何信息数据,要建立数据文件,需开发一个信息录入功能,即 首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,所以我们未 开发信息存盘功能; 信息录入后都保存在内存中,用户看不到,需要设计一个信息显示功能, 信息的显示应该便于查阅,所以需具备按各种关键字显示的功能; 本系统按关键字(姓名、学号、房号)进行冒泡排序,采用二分查找方式 分别实现按关键字(姓名、学号、房号)查询功能; 由于有些同学因为不同原因而离校,所以设计了删除功能; 由于有新同学入校,所以设计了插入功能; 当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出交互 式工作系统。 二二 概要设计概要设计
5、 首先,运行程序进入“欢迎进入宿舍管理查询系统”界面,然后进入线性表创建 界面中,输入学生的信息,创建好学生信息以后单击“n”键则进入操作界面(主 界面),然后可按键进行操作。 单击数字键“1”,则为按姓名排序 单击数字键“2”,则为按学号排 序 单击数字键“3”,则为按房号排序 单击数字键“4”,则为按姓名查 计算机学院c 语言程序设计课程设计报告 - 4 - 找 单击数字键“5”,则为按学号查找 单击数字键“6”,则为按学号查 找 单击数字键“7”,则为按学号插入 单击数字键“8”,则为按学号删 除 系统中有如下关键词: 提示:当输入的数字键为 0 时,退出操作; 请输入数字键(18 为操
6、作键); 请按任意键进入主界面。 2.1 线性表的顺序存储线性表的顺序存储 2.1.1 存储结构存储结构 本系统定义的存储结构采用结构体数组,结构体为: typedef struct /定义结构体成员 char name20; int num; /学号和房号都为整型 int room; stu; stu stud; typedef struct int length; /当前长度 stu *elem; /存储空间基址 int listsize; /当前分配的存储容量 linklist; 在此说明每个部分的算法设计说明(可以是描述算法的流程图) 2.1.2 程序结构图为:程序结构图为: 姓名排序 模块 学号删除 模块 计算机学院c 语言程序设计课程设计报告 - 5 - 三三 详细设计详细设计 /采用顺序线性表解决宿舍管理问题 (C语言) #include #include #include #define N 40 /线性表存储空间的