1、计算机实习报告宿舍管理系统计算机实习报告面向过程编程用C语言求解实际问题 班级: 学号: 姓名: 实习时间: 年 月 日- 月 日一、开发任务开发任务的具体要求。宿舍管理系统:编程模拟实现宿舍系统的管理。二、需求分析(这一部分主要是确定要做什么,以及问题的边界。如下例所示,说明电话号簿管理程序将实现的基本功能。具体来说,就是给出程序的基本功能和性能)1说明自己针对这个任务将完成哪些功能的设计。宿舍管理系统的基本功能是:(1)选择登陆身份:管理员登陆或用户登录。(2)管理员功能有:(a)创建宿舍(b)修改宿舍信息(c)添加宿舍(d)查询空闲宿舍、床位(e)统计宿舍信息(f)显示所有宿舍信息(g)
2、文本导入宿舍信息(h)保存宿舍信息(3)普通用户功能有: (a)查询空闲宿舍 (b)查询空闲床位 (c)统计信息 (d)显示所有宿舍信息2说明程序将会具有什么样的性能:程序中有如下性能:(1)用菜单方式提供对操作的选择,一目了然。(2)为了防止宿舍信息的破坏,管理员操作必须是有管理员密码才可进入。普通用户的操作则不用密码。(3)选择显示后及时清屏,方便用户的后操作。(4)可导出文本文件,也可从文本文件中导入,便于信息的永久存储。三、程序设计(这一部分主要是说怎么做,以及语言环境对问题处理的特殊影响。如下例所示,电话号码簿的结构体类型,电话号码信息的存储数组,以及结果输出格式。具体来说,就是给出
3、程序的数据结构,模块划分,主程序结构)针对需求做如下设计:(1)数据结构设计 利用结构体组建宿舍相关信息,包括宿舍编号、楼栋编号、宿舍性质、已住人数、空床人数。typedef struct _dormitory int dormNO;/宿舍编号 int apartmentNO;/楼栋编号 int dormAttribute;/宿舍性质(男/女) int personNum;/已住人数 int bedavailble;/空床位数dormitory; 初始化程序时,规定最多有1000个宿舍,每个宿舍最多4人。/一个房间有四个人#define ROOMPERSONNUM 4/最多有1000个宿舍#d
4、efine MAXROOMNUM 1000(2)模块设计本任务的主要算法是对宿舍信息Dms的操作函数,具体如下:A, 管理员操作:输入正确的管理员密码后即可有以下操作:1 创建、添加新宿舍:先后输入宿舍号、楼号,判断不重复后继续输入宿舍属性、空床数。全部格式输入正确后即可写入结构体数组。2 修改宿舍信息在输入宿舍号以及楼栋号后查询是否存在该宿舍。查询到便进行宿舍性质、空床数的修改。3 查询空宿舍间数根据提示输入楼栋号,首先判断楼栋是否存在。存在就查询该楼栋的空闲宿舍数,并显示给用户。4 输出空床位根据提示输入楼栋号、宿舍号,首先判断宿舍是否存在。存在就查询该宿舍的空闲床位数,并显示给用户。5
5、统计分性别输出男女分别的占用床位数、空闲床位数。6 显示所有宿舍信息遍历结构体数组,将所存的宿舍信息全部打印出来。7 文本导入宿舍信息从文本文件”dorm.txt“中读取信息,并将信息存入结构体数组中。8 文本导出即保存宿舍信息将结构体数组中全部信息写入到文本文件“dorm.txt”中B, 普通用户操作1 查询空宿舍间数根据提示输入楼栋号,首先判断楼栋是否存在。存在就查询该楼栋的空闲宿舍数,并显示给用户2 输出空床位根据提示输入楼栋号、宿舍号,首先判断宿舍是否存在。存在就查询该宿舍的空闲床位数,并显示给用户。3 统计分性别输出男女分别的占用床位数、空闲床位数。4 显示所有宿舍信息遍历结构体数组
6、,将所存的宿舍信息全部打印出来。(3)主程序结构主程序结构是一个菜单,选择后转入相应的子程序中:A,主菜单:1.管理员账户2.普通用户0.退出B,管理员菜单:1.创建宿舍2.修改宿舍信息3.添加宿舍4.查询空宿舍间数5.查询空床位6.统计7.打印所有宿舍信息8.从文件中载入宿舍信息9.保存0.注销C,用户菜单:1.查询空宿舍间数2.查询空床位3.统计4.打印所有宿舍信息0.注销四、程序实现(这一部分主要是说子程序的实现,以及引用的语言资源。具体来说,就是给出程序模块的实现)(1)程序中宿舍信息由结构体数组实现存储。typedef struct _dormitory int dormNO;/宿舍
7、编号 int apartmentNO;/楼栋编号 int dormAttribute;/宿舍性质(男/女) int personNum;/已住人数 int bedavailble;/空床位数dormitory;dormitory DMsMAXROOMNUM;(2)菜单的实现主菜单在主程序中实现代码: while(run) system(cls); ShowMenu(); fflush(stdin); choose =getchar(); switch(choose) case 1: adminControl(); break; case 2: userControl(); break; cas
8、e 0: run =0; break; default: printf(输入错误,请输入0-2n); break; system(pause); 管理员菜单选择代码:void adminControl() char psword20=0; int run =1; char choose; printf(请输入管理员账户密码:); fflush(stdin); gets(psword); if (strcmp (psword,123456) != 0) printf(密码错误!); return; while(run) system(cls); showAdmin(); fflush(stdin
9、); choose =getchar(); switch(choose) case 1: create(); break; case 2: modifyDorm(); break; case 3: Add(); break; case 4: searchByapartmentNO(); break; case 5: searchBedavailable(); break; case 6: statics(); break; case 7: showAll(); break; case 8: Load(); break; case 9: Save(); break; case 0: run =0
10、; break; default: printf(输入错误,请输入0-9n); break; system(pause); 普通用户菜单选择代码:while(run) system(cls); showUser(); fflush(stdin); choose =getchar(); switch(choose) case 1: searchByapartmentNO(); break; case 2: searchBedavailable(); break; case 3: statics(); break; case 4: showAll(); break; case 0: run =0;
11、 break; default: printf(输入错误,请输入0-4n); break; system(pause); 五、程序测试(这一部分主要是说用什么数据测试程序,保证程序的每一条分支上的语句都被调试。具体来说,就是进行程序白盒测试)对电话号码管理测试,分别依次选择菜单的各个选项,根据不同选项中需要输入的数据和操作提示,完成程序的测试。以下抓图说明测试过程:图1 主菜单图2 管理员菜单图 3 普通用户菜单图 4 宿舍信息新增图5 统计功能图6 显示所有宿舍信息功能图7 文件保存功能六、设计小结本任务设计的代码完成基本功能,但是有几个缺点:(1)宿舍程序内置床位为4宿舍程序内置床位为4,
12、有的宿舍床位可能不为4,灵活性不够。(2)宿舍最多保存1000宿舍总数可保存1000,当超过1000时,程序就容易出错了。(3)密码不可变目前程序中关于宿舍信息修改虽然是需要密码才可以进行,但是密码是固定的,不利于真正保护系统的安全,最好是提供密码修改模块,供管理员及时更新密码。七、使用说明(这一部分主要是说程序安装说明和启动。具体来说,就是给出程序的运行软硬件环境,启动方法,操作步骤,如果程序有完整的提示,操作步骤可以简写)本程序提交的是for DOS源代码 Dormitory.c,所以用VC打开该程序Dormitory.c,再经过编译、连接,后根据屏幕上的提示操作就可以实现对宿舍管理系统的简单操作。八、附录程序源代码参见C语言程序文件Dormitory.c。其中有详细的注释解释了各模块的功能及主要语句的作用,以及数据结构中数据项的含义。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1