宿舍管理系统Word文档格式.docx
《宿舍管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《宿舍管理系统Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
![宿舍管理系统Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/28/04343a12-d6a6-4788-ab9c-805fa43b7e21/04343a12-d6a6-4788-ab9c-805fa43b7e211.gif)
能灵活应用,初步具备运用C程序解决实际问题的能力。
2)运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。
3)学会利用数组、结构体、链表进行相关信息表示。
4)功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述
5)各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功能、出口等关系正确。
6)所设计的C程序较好的可读性和可靠性;
程序书写风格规范,注释清晰。
7)界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并对输入信息有较完善的值域分析。
8)程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。
9)学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。
10)掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。
11)C语言课程设计报告的内容反应实际设计过程,且符合格式要求,无抄袭现象。
任务描述
现学校要管理宿舍入住的学生,请设计一宿舍管理程序,以方便学校宿舍管理员对学生进行管理,该程序应该具有以下功能:
1)能从键盘录入床位信息。
2)指定学号,显示该学生的住宿的信息。
3)指定宿舍号,显示住宿信息。
4)给定宿舍号、床位号,修改住宿信息。
5)给定宿舍号、床位号,删除住宿信息。
运行环境
1)WindowsXP/7系统
2)VC++编译环境
开发工具
C语言
3.总体设计
系统模块设计
1)欢迎及信息导入界面:
构造函数intmain(),显示欢迎及制作信息。
构造函数voidloadRec(),从磁盘文件导入住宿信息到内存。
2)主菜单界面:
构造函数intmenu_select(),实现系统主菜单的显示。
3)住宿信息新建:
构造函数voidcreateRec(),新建或录入学生住宿信息。
4)住宿信息查询:
构造函数voidsearchRec()查询指定学号的学生住宿信息。
5)住宿信息修改:
构造函数voidmodifyRec()修改指定宿舍号及床位号的学生住宿信息。
6)住宿信息删除:
构造函数voiddeleteRec()实现对指定宿舍号及床位号的学生住宿信息记录的删除。
并通过函数free(),释放内存空间。
7)住宿信息浏览:
构造函数voidlistRec(),实现对指定宿舍住宿信息浏览界面的显示。
8)住宿信息统计:
构造函数voidcountRec(),实现对床位信息中空床位数的统计。
9)住宿信息保存:
构造函数voidwriteInfo(),保存学生住宿信息。
10)退出界面:
构造函数voidexit0()退出程序。
系统功能模块图
4.详细设计
数据结构设计
根据系统要求,系统中需要保存的数据信息,其结构如下:
数据项名称
数据项系统表示
数据类型
数据长度
备注
姓名
p1->
name
字符串
20
学号
id
班级
classs
10
入住时间
整形
床位信息
字符型
5
根据系统要求,系统中需要保存的类别信息,其结构如下:
类别代号
charname[20]
charid[20]
charclasss[10]
DATEintake
类别名称
INFObed
住宿情况
基本信息结构体
Typedefstruct
{
intyear;
intmonth;
intday;
}DATE;
chardorm[10];
charbedid[5];
intk;
}INFO;
structstudent
charname[20];
charid[20];
charclasss[20];
DATEintake;
INFObed;
structstudent*next;
};
模块接口设计
1)所有函数模块声明如下:
voidcreateRec();
/*新建住宿信息记录*/
voidloadRec();
/*从磁盘文件导入住宿信息到内存
voidsearchRec();
/*查询住宿记录*/
voidmodifyRec();
/*修改住宿记录*/
voidcountRec();
/*统计空床位记录*/
voiddeleteRec();
/*删除住宿记录*/
voidlistRec();
/*显示住宿信息*/
voidwriteInfo();
/*保存住宿记录*/
voidexit0();
/*退出*/
intmenu_select();
/*主菜单*/
2)定义一个全局变量以及结构体指针:
structstudent*head=NULL,*p1,*p2,*p3;
定义结构体指针head为头指针,p1为输入数据缓存空间指针,p2为尾指针,p3为中间指针
intwriteinfo_flag=0;
保存住宿信息标志的全局变量标志。
3)主要模块的实现
系统以主函数intmain()为入口
调用voidloadRec()函数导入住宿信息,然后调用intmenu_select();
函数,进入主菜单界面。
系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。
以下是几个主要模块的流程图:
1)主菜单函数:
否
是
否是
图1主函数流程图
2)查询指定学号学生住宿信息函数:
图2显示指定宿舍学生住宿信息结构框图
3)新建或添加学生住宿信息函数:
图3新建若干组学生住宿信息结构框图
4)修改(删除)指定宿舍号及床位号的学生住宿信息函数:
图4修改(删除)指定宿舍号及床位号的学生住宿信息结构框图
5)显示指定宿舍号学生住宿信息函数:
图5显示指定宿舍号学生住宿信息函数结构框图
6)保存学生住宿信息函数:
图6保存学生住宿信息函数结构框图
5.运行结果
欢迎界面及文件信息导入:
图1欢迎界面及文件信息导入
主菜单界面:
图2主菜单界面
新建学生住宿信息:
图3新建学生住宿信息
查询指定学号的学生住宿信息:
图4查询指定学号的学生住宿信息:
修改指定宿舍号及床位号的学生住宿信息
图5修改指定宿舍号及床位号的学生住宿信息
删除指定宿舍号及床位号的学生住宿信息:
图6删除指定宿舍号及床位号的学生住宿信息
显示指定宿舍号的学生住宿信息:
图7显示指定宿舍号的学生住宿信息
统计空床位数:
图8统计空床位数
保存学生住宿信息
图9保存学生住宿信息
退出界面
图10退出界面
6.程序前后文本
1导入的文本
路径:
张强1112012-08-0612511
王阳明2112012-08-0612520
陈超3112012-08-0612530
李可4112012-08-0612841
2保存后的文本
王阳明2112012-8-612520
陈超3112012-8-612530
李可4112012-8-612841
陈东5112012-8-612810
7.编程体会
本次课程设计总体感觉要较之去年的简单了不少。
但由于C语言初学较差,基础薄弱,感觉还是存在较大的问题。
所以这次的编程实现主要是对教师模板进行的在修改,使得其满足课设中所提众多要求。
编程中大体要满足的一般都是新建、修改、删除、保存、查询、文件读入等功能,其中的删除和文件读入较为复杂。
个人认为这次课设的一个难点是要求运用链表实现编程。
不得不说链表的运用会提高程序的清晰度和可读性。
但由于链表理解起来较难,这会在应用上存在极大的难度。
课设中信息较为复杂,如床位信息、入住时间,都是作为一个信息存在,但本省包含多个信息量。
所以在定义结构体时,对结构体进行了另命名和结构体嵌套。
在创建、删除等链表等功能的实现中,经常需要找到当前结点之前的结点,也就是前驱结点。
随着程序的进展,也需要更新前驱结点指针。
在真正的程序应用中,总是会有许多出错的地方,比如各函数对输入数据格式的限制。
文件读入时,文件不存在,文件读取错误等。
还有指针应用中,申请空间及对废弃指针存储内容的释放等。
细节决定成败,程序编写中一个微小的错误就会引发一系列的错误,造成修改难度大,程序无法运行的诸多麻烦。
所以在程序编写之初,便应保持良好的心态,认真对待,有条不紊。
通过这次课程设计,我可以说是获益匪浅,不仅使得我回顾了大量的C语言知识,巩固了已知,在此基础之上,我还了解理解了虚度哦故去不是很理解或根本不知道的东西。
而且从另一侧面锻炼了我的心性,让我在对待事物上可以统筹,又可以对每一个部分进行充分的认识。
以及耐心,认真,反复检查,精益求精等良好的品行等。
总之,本次课设于我意义重大,受益良多。
8.程序源代码
/*已知一个宿舍的信息为:
床位信息(宿舍号、床位号、是否入住)、学号、姓名、班级、入住时间,从键盘输入n个宿舍的信息,并
将其保存在()文件中。
*/
/*所使用的有头文件*/
#include<
>
#include<
#defineLENsizeof(structstudent)
/*结构体定义*/
typedefstruct
intyear;
/*年*/
intmonth;
/*月*/
intday;
/*日*/
typedefstruct
chardorm[10];
/*宿舍号*/
charbedid[5];
/*床位号*/
intk;
/*入住情况k=(0/1)*/
}I