基于Java的图书馆阅览室座位管理系统设计与实现

2024-10-23 00:00:00闵国锋
电脑知识与技术 2024年25期

关键词:Java;图书馆阅览室;座位管理

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)25-0048-03

0引言

近年来,随着高等教育的普及,高校学生数量不断增长,图书馆阅览室作为学生自学的重要场所,其座位资源日益紧张。然而,阅览室座位资源有限,座位增长率远低于学生人数增长率,导致座位供需矛盾突出,“占座”现象屡禁不止[1]。尤其在考试前夕出现了“一座难求”的现象,甚至因霸座行为引发争执,不仅影响学生学习效率,还加剧了座位资源与学生的供需矛盾。因此,设计开发一套图书馆阅览室座位管理系统,实现座位资源的公平分配,提高利用率,并为学生营造良好的学习环境,具有重要的现实意义。

1 需求分析

为了保证座位管理系统的顺利开发,须对系统的用户划分不同的角色,分析不同角色的流程和需求。阅览室座位管理系统面向全体在校学生,因此系统的用户角色可分为阅览室的管理员和使用阅览室的学生两类。

1.1 管理员

1) 发布通知和公告,例如阅览室开放时间、预约规则等。

2) 管理阅览室座位,例如改变阅览室布局、添加或删除座位等。

3) 管理学生信息,例如查询和更新读者信息。

4) 接收和处理学生反馈的意见和建议。

1.2 学生

1) 查看管理员发布的通知和公告。

2) 进行座位预约、入座和离座操作。

3) 查询个人信息,例如违规次数、预约历史等。

4) 向管理员反馈意见和建议。

2 系统设计

2.1 功能模块设计

根据系统的需求分析,座位管理系统采用B/S架构的Web应用模式,由登录管理、公告管理、学生管理、座位管理、预约管理、意见管理和阅览室管理7个功能模块组成。总体功能模块图如图1所示。

1) 登录管理:系统采用统一身份认证平台进行用户登录,实现单点登录。管理员登录后进入系统管理首页,学生登录后进入个人信息页面,可查看个人信息、取消预约等。

2) 公告管理:管理员在公告栏发布阅览室和座位预约的相关说明,如阅览室开放时间和预约规则等。学生通过公告栏实时浏览这些信息。

3) 学生管理:管理员查询参与座位预约的学生信息,修改提交申请学生的处罚信息,协助学生取消因故无法办理入座的预约等。

4) 座位管理:管理员在座位管理模块进行阅览室布局的调整操作,如扩充新的阅览室、添加或减少阅览室座位、标记阅览室开放区域等。

5) 预约管理:预约管理是整个系统的核心模块,学生可在此查看所有阅览室座位的预约情况,选择适合自己的阅览室、空闲座位、日期和时间段完成座位的预约操作。

6) 意见管理:学生就阅览室的学习环境和布局通过意见栏向管理员提出建议或意见,管理员则给予相应的回复。

7) 阅览室管理:预约的学生在规定的时间段到阅览室办理签到入座和签退离座操作。未预约的学生在阅览室管理中现场申请签到入座。管理员通过阅览室管理的图形界面实时查看阅览室的上座率。

2.2 数据库设计

数据库作为一个系统的核心部分,其安全性是数据信息安全和隐私安全的保证。因此,本系统采用稳定、高效和安全的SQL Server 2019 Standard数据库来存储和管理系统使用的数据[2]。

数据库设计须根据系统中的实体进行分析[3]。座位管理系统的实体包括管理员、学生、阅览室的座位、学生的预约记录、管理员发布的公告信息、学生提出的意见。实体间存在着多对多和1对多的关系,如管理员和学生之间是多对多的关系,管理员和公告信息之间是一对多的关系,如图2所示。

实体由多个属性组成,实体和属性在数据库中体现为数据表和字段的关系[4]。因此,座位管理系统涉及的主要数据表有:公告信息表(notice) 、学生信息表(user) 、座位信息表(seat) 、预约记录表(order) 和意见表(opinion) 。

公告信息表(notice) 用于存储管理员发布的公告信息,如表1所示。

学生的基本信息存储在统一身份认证平台,学生信息表(user) 只用来记录学生在预约中的违规信息,如表2所示。

座位信息表(seat) 用来存储阅览室的座位信息,如表3所示。

预约记录表(order) 用来存储学生的座位预约信息,如表4所示。

意见表(opinion) 用来存储学生提的意见和建议以及管理员的回复信息,如表5所示。

3 系统实现

系统采用MyEclipse 10 作为开发平台,SQLServer 2019作为数据库管理系统。后端采用Java语言,前端采用Vue.js框架。Vue.js是一款轻量级响应式JavaScript框架[5],能够方便地构建用户界面,并确保页面在不同设备上的显示效果。

座位管理系统提供了网上预约和现场申请两种方式供学生使用阅览室座位资源。学生可提前一天登录管理系统网页,确认允许预约后选择阅览室、时间段和“空闲”的座位进行预约操作。学生必须在预约规则规定的时间内到预约的阅览室进行签到办理入座操作,否则会被判违规1次。违规累计3次,将进入7天的处罚期,在此期间禁止申请座位,系统同时对违规次数清零。当阅览室有“空闲”座位时,学生可现场刷卡申请座位,经系统派位后入座。学生离开阅览室时也须刷卡办理离座操作,否则会被记录违规。选择“临时离开”的,须在规定时间内返回并刷卡办理重新入座操作。学生使用座位的业务流程如图3所示。

座位管理系统的核心是预约管理模块,主要代码如下:

int et=c.getTime();

//获取预约时间

if(ct>et&&ResStatus.equals("空闲"))

//当前时间大于预约时间且座位“空闲”,对预约

的学生和座位信息进行更新,座位恢复为无预约

状态。

{

int flag=seatD.userupdateresR(Integer.parseInt(Re⁃cordID));

int flagseat=seatD.seatTimeNum();

seaD.userupdateS(Integer.parseInt(RecordID));

}

Calendar b=Calendar.getInstance();

try {

b.setTime(df.parse(TimeEnd));

} catch (ParseException e) {

e.printStackTrace();

}

int etime=b.geTime();

//当前时间大于预约时间且座位“忙碌”,对预约的学生和座位信息进行更新

if(ct>etime&&ResStatus.equals("忙碌"))

{

int flag=seatD.userupdataR2(Integer.parseInt(Recor⁃dID));

int flagseat=seatD.seatTimeNum();

seatD.userupdateS(Integer.parseInt(RecordID));

}

4 结束语

本文设计并实现了基于Java的图书馆阅览室座位管理系统,该系统能够有效解决阅览室“占座”问题,实现座位资源的公平分配,提高座位利用率,为学生营造良好的学习环境,提升图书馆服务质量。