宿舍管理系统c语言设计

上传人:第*** 文档编号:55661981 上传时间:2018-10-03 格式:PDF 页数:40 大小:462.27KB
返回 下载 相关 举报
宿舍管理系统c语言设计_第1页
第1页 / 共40页
宿舍管理系统c语言设计_第2页
第2页 / 共40页
宿舍管理系统c语言设计_第3页
第3页 / 共40页
宿舍管理系统c语言设计_第4页
第4页 / 共40页
宿舍管理系统c语言设计_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《宿舍管理系统c语言设计》由会员分享,可在线阅读,更多相关《宿舍管理系统c语言设计(40页珍藏版)》请在金锄头文库上搜索。

1、河河 南南 工工 程程 学学 院院数据结构课程设计数据结构课程设计成果报告成果报告姓姓名名学学号号学学院院计算机学院计算机学院专业班级专业班级计算机科学与技术计算机科学与技术 15211521专业课程专业课程数据结构数据结构指导老师指导老师李李芳芳20162016 年年 6 6 月月 2020 日日宿舍管理查询系统I河南工程学院计算机学院河南工程学院计算机学院课程设计报告书课程设计报告书课程设计题目:课程设计时间:6 月 20 日6 月 24 日课程设计地点:计算机学院 1201课程设计单位:计算机学院指导教师:李芳学院院长:曲宏山宿舍管理查询系统II本组组长本组组长夏少峰本组成员本组成员夏少

2、峰、丁宏阁、曲宣榕设计题目设计题目宿舍管理查询系统本人分工本人分工资料查询,设计思路、算法设计、部分代码编制、代码调试考核项目考核项目考核内容考核内容得分得分平时考核(30 分)出勤情况、态度、效率、协作精神;知识掌握 情况、基本操作技能、知识应用能力、获取知识能力设计思想(20 分)需求分析能力,算法分析设计能力编码、调试分析(30 分)编制代码能力,调试分析能力文档资料(20 分)表达能力、文档写作能力和文档的规范性总评成绩总评成绩指导教师评语:指导教师评语:等级:评阅人:职称: 副教授年月日宿舍管理查询系统III目目录录目录目录1 设计目标12 课题分析12.1 需求分析 12.2 存储

3、结构设计. 22.3 算法设计及其分析.22.4 程序流程图 113 程序清单 124 系统测试 304.1 测试数据 304.2 测试结果 315 总结.335.1 收获.335.2 不足.335.3 算法改进分析33宿舍管理查询系统11 设计目标设计目标随着计算机技术的发展以及网络的发展,对学生宿舍的管理与控制越来越实用并且得到管理者的证实,无论是查询还是修改都有很方便,查询的信息一目了然。 这个程序包含了学生宿舍信息的录入、修改,学生楼栋信息的录入、毕业生的退舍、智能分配宿舍等功能,但不能进行删除的操作,总体来说使用简单方便。这个程序应该满足以下几个要求:(1)信息的输入:需要建立起完整

4、的宿舍信息数据库,从而实现通过输入学生入住的楼栋号、宿舍号,该宿舍入住的人数以及入住的学生的信息(包括学生的姓名、学号和系别) ,来添加学生信息,实现信息录入。(2)信息的修改:进行信息输入后,过一段时间后,想要对里面的信息进行修改,可以通过学号等关键字对其进行修改。(3)信息的查询: 这个程序应该可以实现通过按学号或房号进行查找的过程。在此使用的是折半法,查找过程是:先确定待查记录所在的范围(区间) ,然后逐步缩小范围直到找到或找不到该记录为止。这样可以缩短查找时间,同时还可以减少查找的次数。(4)退出程序:当完成了所有的操作之后就要进行退出操作了。2 课题分析课题分析2.1 需求分析需求分

5、析学生宿舍管理是一个很大的项目,在早期,还没有利用计算机管理时,一切都是利用人工进行管理的,这样管理起来既烦琐又复杂,资料也很容易被丢失,而且耗时、耗资金。而利用本系统,可以高效地对学生宿舍进行统一管理与控制,资料也不容易被丢失,这样大大节省了人力与资源,提高了管理效率,给管理人员带来很多方便,基于以上分析有如下分析:(1) 要实现交互工作方式,各项操作结束后均应返回主菜单。(2) 系统本无任何信息数据,要建立数据文件,需要开发一个信息录入宿舍管理查询系统2功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,所以我们开发信息存盘功能;(3) 信息录入后都要保存在内存中,用户看不

6、到,需要设计一个信息显示功能,信息的显示应该便于查询,所以需要具备按各种关键字显示的功能;(4) 由于有些新同学入校,所以设计了插入功能;(5) 当用户操作完毕需要退出时,提供了退出选项,便于使用者退出交互式工作系统2.2 存储结构设计存储结构设计本系定义的存储结构为顺序存储结构,结构体为typedef struct char ID20; /学号 char name20; /姓名 char gender10; /性别 char dormitory4; /宿舍号 Student; typedef struct char ID4; /宿舍号 int max_num; /可容纳人数 int curr

7、ent_num; /已入住人数char gender10; /男舍或女舍2.3 算法设计及其分析算法设计及其分析在此系统中,根据对查阅资料的了解,我们对宿舍人员的信息以及各种函数进行了定义,具体如下:(1)将宿舍人员信息定义为一个名字为 typedef struct 的结构体,其中包括char ID20,char name20,cahr gender10,char dormitory4分别表示学号、姓名、性别和宿舍号,将宿舍信息定义为一个名字为 typedef struct 的结构体, 其中包括char ID4,char max_num,char current_num,char gender

8、10,分别是宿舍号、可容纳人数、已入住人数、男舍或者女舍。宿舍管理查询系统3(2)功能函数加上主函数一共有十二个,功能函数包括 create(),open(),insert_dorm(),insert_stu(),dormnumsearch(),change(),namesearch(),check_out(),numsearch(),exchange(),display(),main(),分别用新增楼栋,新增宿舍信息,新增学生入住宿舍信息,毕业生退舍,互换宿舍,姓名查询,学号查询,宿舍号查询,互换宿舍,调换宿舍,职能分配宿舍,退出本系统的功能。(3)在主函数中,使用一个 while 语句来选

9、择调用主菜单中的各个功能函 数。 由于本人负责新增宿舍楼栋,新增宿舍信息,新增学生宿舍信息的功能,所以 操作如下: 单击数字键“0”则为新增楼栋信息 单击数字键“1”则为新增宿舍信息 单击数字键“2”则为新增学生宿舍信息 在每次操作前都要输入相应的编号。 各功能函数的具体实现如下:void create()printf(“n请输入新增楼栋名称:n“);scanf(“%s“, filename);_fp = fopen(filename, “rb+“);if (_fp = NULL) /如果文件不存在则建立文件否则提示文件已存在_fp = fopen(filename, “wb+“);fp =

10、fopen(strcat(filename, “学生“), “wb+“);if (fp = NULL | _fp = NULL)printf(“File not open!n“);exit(-1);elseprintf(“文件已存在!n“);fclose(fp);fclose(_fp);宿舍管理查询系统4void open()printf(“请输入学生宿舍所在楼栋:n“);scanf(“%s“, filename);_fp = fopen(filename, “rb+“);fp = fopen(strcat(filename, “学生“), “rb+“);if (fp = NULL | _fp

11、 = NULL)printf(“File not open!n“);exit(-1);void insert_dorm()Dormitory * d = (Dormitory*)malloc(sizeof(Dormitory);open();printf(“n请输入宿舍号, 可容纳学生数, 已容纳学生数, 男舍/女舍(空格隔开, #结束):n“);scanf(“%s“, d-ID);while (strcmp(d-ID, “#“)scanf(“%d %d %s“, fwrite(d, sizeof(Dormitory), 1, _fp);scanf(“%s“, d-ID);fclose(_fp

12、);fclose(fp);void insert_stu()long locate, pre_locate;int flag = 0;Student *s = (Student*)malloc(sizeof(Student);宿舍管理查询系统5Dormitory * d = (Dormitory*)malloc(sizeof(Dormitory);open();printf(“n请输入学号、姓名、性别、宿舍号(空格隔开,#结束):n“);scanf(“%s“, s-ID);while (strcmp(s-ID, “#“) /不相等继续读取,相等为0便退出循环不再读取数据scanf(“%s %s

13、 %s“, s-name, s-gender, s-dormitory);locate = ftell(_fp);while (fread(d, sizeof(Dormitory), 1, _fp)if (!strcmp(d-ID, s-dormitory) /每增加一个学生,相应寝室的实际人数应当增加一个fseek(_fp, locate, SEEK_SET);d-current_num+;fwrite(d, sizeof(Dormitory), 1, _fp);flag = 1;break;locate = ftell(_fp);if (flag = 0)printf(“不存在该宿舍!n“

14、);exit(-1);fwrite(s, sizeof(Student), 1, fp);rewind(_fp);scanf(“%s“, s-ID);fclose(_fp);fclose(fp);宿舍管理查询系统6void change()int flag = 0, tag = 0;long locate, locate_b, locate_c;char input_stunum20;char input_dormnum4;char previous_dormnum4;Student *s = (Student*)malloc(sizeof(Student);Dormitory * d = (

15、Dormitory*)malloc(sizeof(Dormitory);open();printf(“n请输入需要调换宿舍学生学号:n“);scanf(“%s“, input_stunum);locate = ftell(fp);while (fread(s, sizeof(Student), 1, fp)if (!strcmp(input_stunum, s-ID)flag = 1;printf(“该学生信息如下:n%-20s%-20s%-20s%-20sn“, “学号“, “姓名“, “性别“, “宿舍号“);printf(“%-20s%-20s%-20s%-20sn“, s-ID, s-

16、name, s-gender,s-dormitory);strcmp(previous_dormnum, s-dormitory);printf(“n请输入新宿舍的宿舍号:n“);scanf(“%s“, input_dormnum);locate_b = ftell(_fp);while (fread(d, sizeof(Dormitory), 1, _fp)if (!strcmp(input_dormnum, d-ID)tag = 1;if (d-current_num = d-max_num)printf(“该宿舍已满员!“);宿舍管理查询系统7else/更换学生宿舍信息fseek(fp, locate, SEEK_SET);strcpy(s-dormitory, input_dormnum)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号