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