宿舍管理系统c语言设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河南工程学院
《数据结构》课程设计
成果报告
姓名
学号
学院计算机学院
专业班级计算机科学与技术 1521
专业课程数据结构
指导老师李芳
2016年6月20日
河南工程学院计算机学院
课程设计报告书
课程设计题目:
课程设计时间:6月20日~6月24日
课程设计地点:计算机学院1201
课程设计单位:计算机学院
指导教师:李芳学院院长:曲宏山
目录
目录
1 设计目标 (1)
2 课题分析 (1)
2.1需求分析 (1)
2.2 存储结构设计 (2)
2.3 算法设计及其分析 (2)
2.4程序流程图 (11)
3程序清单 (12)
4系统测试 (30)
4.1测试数据 (30)
4.2测试结果 (31)
5总结 (33)
5.1收获 (33)
5.2不足 (33)
5.3算法改进分析 (33)
1 设计目标
随着计算机技术的发展以及网络的发展,对学生宿舍的管理与控制越来越实用并且得到管理者的证实,无论是查询还是修改都有很方便,查询的信息一目了然。这个程序包含了学生宿舍信息的录入、修改,学生楼栋信息的录入、毕业生的退舍、智能分配宿舍等功能,但不能进行删除的操作,总体来说使用简单方便。这个程序应该满足以下几个要求:
(1)信息的输入:需要建立起完整的宿舍信息数据库,从而实现通过输入学生入住的楼栋号、宿舍号,该宿舍入住的人数以及入住的学
生的信息(包括学生的姓名、学号和系别),来添加学生信息,实
现信息录入。
(2)信息的修改:进行信息输入后,过一段时间后,想要对里面的信息进行修改,可以通过学号等关键字对其进行修改。
(3)信息的查询:这个程序应该可以实现通过按学号或房号进行查找的过程。在此使用的是折半法,查找过程是:先确定待查记录所在的
范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。
这样可以缩短查找时间,同时还可以减少查找的次数。
(4)退出程序:当完成了所有的操作之后就要进行退出操作了。
2 课题分析
2.1需求分析
学生宿舍管理是一个很大的项目,在早期,还没有利用计算机管理时,一切都是利用人工进行管理的,这样管理起来既烦琐又复杂,资料也很容易被丢失,而且耗时、耗资金。而利用本系统,可以高效地对学生宿舍进行统一管理与控制,资料也不容易被丢失,这样大大节省了人力与资源,提高了管理效率,给管理人员带来很多方便,基于以上分析有如下分析:
(1)要实现交互工作方式,各项操作结束后均应返回主菜单。
(2)系统本无任何信息数据,要建立数据文件,需要开发一个信息录入
功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存
在内存中,所以我们开发信息存盘功能;
(3)信息录入后都要保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查询,所以需要具备按各种关键字显
示的功能;
(4)由于有些新同学入校,所以设计了插入功能;
(5)当用户操作完毕需要退出时,提供了退出选项,便于使用者退出交互式工作系统
2.2 存储结构设计
本系定义的存储结构为顺序存储结构,结构体为
typedef struct{
char ID[20]; //学号
char name[20]; //姓名
char gender[10]; //性别
char dormitory[4]; //宿舍号
}Student;
typedef struct{
char ID[4]; //宿舍号
int max_num; //可容纳人数
int current_num; //已入住人数
char gender[10]; //男舍或女舍
2.3 算法设计及其分析
在此系统中,根据对查阅资料的了解,我们对宿舍人员的信息以及各种函数进行了定义,具体如下:
(1)将宿舍人员信息定义为一个名字为typedef struct的结构体,其中包括char ID{20},char name[20],cahr gender[10],char dormitory[4]分别表示学号、姓名、性别和宿舍号,将宿舍信息定义为一个名字为typedef struct的结构体,其中包括char ID[4],char max_num,char current_num,char gender[10],分别是宿舍号、可容纳人数、已入住人数、男舍或者女舍。
(2)功能函数加上主函数一共有十二个,功能函数包括create(),open(),insert_dorm(),insert_stu(),dormnumsearch(),change(),namesearch(),check_out(),numsearch(),exchange(),display(),main(),分别用新增楼栋,新增宿舍信息,新增学生入住宿舍信息,毕业生退舍,互换宿舍,姓名查询,学号查询,宿舍号查询,互换宿舍,调换宿舍,职能分配宿舍,退出本系统的功能。
(3)在主函数中,使用一个while语句来选择调用主菜单中的各个功能函数。
由于本人负责新增宿舍楼栋,新增宿舍信息,新增学生宿舍信息的功能,所以操作如下:
单击数字键“0”则为新增楼栋信息
单击数字键“1”则为新增宿舍信息
单击数字键“2”则为新增学生宿舍信息
在每次操作前都要输入相应的编号。
各功能函数的具体实现如下:
void create(){
printf("\n请输入新增楼栋名称:\n");
scanf("%s", );
_fp = fopen(, "rb+");
if (_fp == NULL){ //如果文件不存在则建立文件否则提示文件已存在
_fp = fopen(, "wb+");
fp = fopen(strcat(, "学生"), "wb+");
if (fp == NULL || _fp == NULL){
printf(" open!\n");
exit(-1);
}
}
else
printf("文件已存在!\n");
fclose(fp);
fclose(_fp);
}