创新者:张 欣
自习室空位智能查询与预约系统的设计
创新者:张 欣
为解决占座导致自习室资料利用率不高,一座难求的问题,设计并实现用于高校自习室空位的管理在自习室空位智能查询与预约系统。该系统实现了空位的查询选择、预约和确认到座、取消预约等功能,并希望之后能够进一步实现添加好友,导入教务系统的课程安排的功能,并将确认到座这一过程优化。
现各大高校自习室资源不足的现象普遍存在,导致的占座现象尤为严重,造成了资源利用率不高,校园相关部门难以管理,而学生自习座位难找的问题。一些意识到此问题的高校也尝试了各种方法。例如东南大学图书馆利用红外接近检测来检测座位是否空闲,又如清华大学智能座位管理系统通过一卡通与图书馆门禁系统相结合来管理图书馆座位。由于图书馆的座位容量往往不能满足广大学生对自习座位的需求,所以本系统不同之处在于其主要针对自习室的系统管理,细化到每一个座位,并非仅局限于图书馆。另一点不同之处在于本系统对各高校的硬件条件并无特殊要求如一卡通或红外线检测仪器等,用于高校自习室空位的管理,降低了硬件成本。
自习室空位智能查询与预约系统提供了自习室的空位数量显示功能和自习预约功能,为避免预约之后并没有人自习这一浪费资源的现象,系统还提供了到座确认的功能,未确认的将取消预约信息。从而一定程度上消除长时间占座而无人使用的现象。此系统具有较好的普适性,管理员用户可根据学校的具体情况对系统进行设定。
自习室空位智能查询与预约系统设定了两类用户,学生用户和管理员用户。
对于学生用户,该系统统计了自习室每个座位有无人使用的情况,提供了实时查询的功能,即查询某一时刻,某自习室是否仍有空位,避免了同学们经常去图书馆,却发现没有空位的情况,使同学用户更方便的安排自己的学习计划。该系统也提供了预约空位的功能。这一功能将自习室的座位使用情况分时间段安排,既保证了有预约的同学用户的优先使用权,也保证了座位在其余空闲时间供不被白白浪费,给予其他人使用的权利,提高了座位资源的利用率。
管理员用户主要负责对系统的数据进行管理,比如哪些自习室可以开发预约,每个自习室的座位数量等。这使得校园有良好的秩序,有限的资源可满足更多学生的需求,创造更好的学习环境。
系统功能模块设计
自习室空位智能查询与预约系统的目的是分教室,分时间段来对座位进行合理分配。该款系统能统计每栋教学楼每个自习室的人数情况,并将数据返回给学生用户。学生用户可实时查询某时段的自习室剩余座位,也可以提前预约该时间段某自习室的一空位,以安排自己的学习计划。系统管理员可根据学校的自身情况开放自习室及图书馆阅览室,管理学生预约座位的情况。
自习室空位智能查询与预约系统的主要功能模块结构图如下图所示:
系统具体功能需求如下:
(1)学生和管理员注册和登录功能
在校学生有唯一的学号,以此注册系统用户,设置登录密码。学生用户将完善其信息,包括姓名、专业、年级。系统管理员也应注册系统用户,设置登录密码。
(2)学生查询自习室空位功能
学生用户可选择将要自习的时间段,根据选择的时间段查询有空位的自习室及该自习室的具体剩余空位。
(3)学生预约自习室空位功能及取消处理
学生用户可根据系统反馈的空余座位信息进自主选择,并确认预约信息。可临时取消预约。
(4)预约处理功能
学生用户在预约之后需在预约起始时间二十分钟内将座位编号进行确认到座,在设计时,考虑到一些同学预约后不到,座位仍被闲置的问题,系统需将自动取消此条预约信息,将座位状态置为空闲以供其他用户使用。为避免学生用户忘记确认而造成的系统误删预约信息情况,系统将在预约起始时间二十分钟时,发送推送消息,提醒确认。
(5)管理员添加和删除自习室功能
管理员可根据学校的具体情况,例如节假日或者某活动占用教室等,更改自习室的开放情况,供学生查询。
(6)管理员修改自习室容量功能
考虑到自习室的大小不一情况,管理员可以根据具体的自习室来修改该自习室的座位数量。
数据库设计
数据库作为系统服务器端的后台,分别用七张表存储了学生用户基本信息、管理员基本信息、用户登录信息、自习室基本信息、座位分时段基本信息、座位预约信息、课程安排信息。主要的三张表如下。
表1 座位分时段基本信息表
表2 课程安排信息表
表3 座位预约信息表
表1座位分时段基本信息表中预约Appointment为1表示空位,0表示已有预约。每个座位有唯一的座位编号,并在相应座位上可见,方便之后的确认到座过程。
表2课程安排信息表用来设置自习室对学生用户的开发时段,当自习室有课程安排时,表中Class=1,该时段的该自习室座位是不能被预约的。
学生用户选择自习时间后,系统将数据库中表1座位分时段基本信息表、表2课程安排信息表连接,显示出该时段有空位的自习室。学生用户选择自习室,并选定座位后,系统将修改表1相应座位的信息为0,系统自动在表3中添加一条预约信息记录,完成预约。
学生用户需在预约起始时间二十分钟之内(系统将提醒用户)到座后手动输入座位上的唯一座位编号确认到座,开始自习,系统将表3座位预约信息表中Asure改为1。否则系统将默认此条预约信息作废,座位无人使用,并在表3座位预约信息表默认删除此条预约记录,修改表1座位分时段基本信息表中的该座位信息为1。
该系统采用Java语言和B/S结构。B/S结构统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。此系统对交互性要求较高,需要进行局部实时刷新,B/S结构恰能满足此要求。
下面介绍系统的三个主要模块,分别为座位查询预约、预约确认或取消,修改自习室情况。
座位查询预约模块:根据学生用户所选自习时间段反馈该时间段空闲的自习室,选定自习室后显示该自习室空位的座位。通过使用处理预编译语句的接口和PreparedStatement执行带参数的动态SQL语句进行动态查询。选定座位后,随即可进行预约。系统将修改表1相应座位的信息Appointment为0,系统利用触发器或者存储过程实时在表3中添加一条预约信息记录。定义一个触发器,在表1座位分时段基本信息表中预约Appointment被修改为0时,触发以下过程:获得学生信息与该座位信息,在表3座位预约信息表中添加一条记录。
预约确认或取消模块:学生用户在预约之后需在预约起始时间二十分钟
内将座位编号进行确认到座,否则系统将自动取消此条预约信息,将座位状态置为空闲以供其他用户使用。定义一个定时触发器,从表1座位分时段基本信息表中Appointment被修改为1时开始计时,二十分钟后,触发以下过程:推送确认到座消息提醒学生用户,并确认表3座位预约信息表中Asure是否为1,为0则删除该条预约信息,并置表1座位分时段基本信息表中的相应座位号为1。学生可临时取消预约。表1座位分时段基本信息表中Appointment被修改为1时,则触发删除表3座位预约信息表中相应记录的过程。学生用户自习结束后,即其预约的时间结束后,系统将自动置表1座位分时段基本信息表中的相应座位号的Appointment为1。
修改自习室情况模块:管理员用户可对自习室的开发预约或关闭预约状态进行修改。置该自习室为不可预约状态时,在表1座位分时段基本信息表中select指定时间、指定自习室的记录,并UPDATE表1 SET Appointment=0。不同的自习室可能有不同的座位数量,管理员也可以在表1座位分时段基本信息表中增添或删除该自习室座位的记录。
自习室空位智能查询与预约系统既能解决长期以来大学里自习室占座,自习室利用效率不高等问题;节省了时间提高同学们的学习效率;规范了自习室秩序也营造了更良好的学习环境,以更加简便和科学的办法实现了自习室和图书馆的高效利用。
在实现该系统时对一些功能和操作都进行了简化,希望之后能够进一步实现对该系统的三个设想。第一,系统可以和学校的教务信息系统进行信息交换,获得教室的排课信息,以便于更有效地利用教室空位而不影响正常对教学。第二个设想是系统可根据学生基本信息表里的年级专业等提供添加好友等功能,可以查看好友的预约空位信息或者和好友一起预约相邻座位。实现基本的聊天信息,自习之余还可以互相讨论交流,提高了系统的用户黏性。最后,每个座位上的座位编号可换成唯一的二维码,学生用户到座后扫码即可将信息传回系统,无需手动输入座位编号,简化了学生用户的操作过程。
10.3969/j.issn.1001-8972.2015.15.031