大学图书馆座位预定系统的设计与实现
2021-12-19陈恺
摘要:该文利用面向对象程序设计语言,针对大学图书馆自习室中的座位预定研究一个解决方案,同时完成系统的设计与实现。文章首先阐述了开发大学图书馆座位预定系统的现实背景和意义,然后根据具体问题进行需求分析,得出该系统具体的功能点,最后设计该系统相应的数据表以及各个数据表之间的关联。
关键词:大学图书馆;座位预订;数据表
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)32-0070-02
大学图书馆经常出现占座现象,这使得本来就紧缺的自习室座位更加捉襟见肘。为了最大程度地减少占座现象,缓解自习室座位紧张问题,计划设计开发一款大学图书馆座位预定系统,高效地安排和管理有限的自习室座位资源,让来图书馆的同学有座位自习,让长时间离开图书馆的同学释放座位资源,尽可能提高图书馆内自习室座位的利用率。本文将基于B/S架构来实现大学图书馆座位预定系统,采用Java作为编程语言,将Tomcat服务器作为应用容器,采用MySQL数据库,并使用Maven进行代码工程管理。
1 系统开发背景与意义
大学图书馆不仅为学生们提供图书借阅的服务,还有一个非常大的功能就是给学校学生提供自习的场地。但是毕竟图书馆自习室的座位有限,平时还能勉强维持,一旦到了期末前的复习阶段,图书馆自习室座位根本不能满足需求。但是仔细查看发现,其实很多位置被有些学生的物品给占座了,使得到了图书馆的同学没有座位,但是却有很多座位光有物品人却不在。针对这个问题,座位预约就是一个很好的解决方案。学生要来自习室自习,先预约,然后在预约好的指定的时间段内来自习,到时间就离开。如果预约不来即视为违约,这样会对以后的预约造成影响,如果次数较多甚至可能导致以后不能预约。这种方式从某种程度可以缓解自习室座位紧张问题,但是却给图书馆工作人员带来极大的压力和强度,也会出现记录错误而导致预约冲突等问题。所以,为了解决这个问题,本文开发一套大学图书馆座位预定系统,可以对自习室座位进行预约,还可以对座位使用情况进行统计分析,通过信息化的手段对图书馆自习室的座位进行统筹管理[1]。
2 相关技术
2.1 Java开发语言
Java是当下非常流行的一种编程语言[2]。越来越多的企业和项目选择使用Java,因为它功能更加强大并且更加容易。由于Java语言独有的特点加上其简明严谨的结构及简洁的语法编写,使得它在各项服务器应用程序的开发中都占有优势,因此Java已经成为IT产业中最常用的开发语言之一[3]。
2.2 MySQL数据库
MySQL是当下非常流行的一款数据库管理系统[4]。MySQL有一个非常大的优势就是它是开源软件,正是由于它的开源特性使得MySQL成本很低,因此对于那些成本预算有限的项目来说,MySQL会成为它们的首选。
2.3 Tomcat 服务器
Tomcat是一个非常流行的Web 应用服务器,该服务器属于轻量级并且它也是开源软件,因此Tomcat在中小型系统的设计与实现中非常受欢迎,并且常常成为这些系统的首选服务器。本项目属于小型系统,所以选择Tomcat 服务器作为应用容器。
2.4 Maven
Maven是一个简单、易用的项目管理工具,目前许多项目都会选择使用Maven进行项目管理和程序构建。使用Maven进行项目构建非常简单,只需要简单的Maven脚本即可。因此,很多项目开发人员更倾向于使用Maven来进行项目管理,因为这样可以大大简化构建复杂度,降低程序員管理代码的成本。
3 模块设计
结合大学图书馆的实际需求,通过分析和讨论,可以将本系统分为5大模块。这5个模块以及每个模块里的功能点如图1所示。下面,我们将针对每个模块的功能进行详细的说明。
3.1 登录注册模块
此模块是系统的入口,所有使用该系统的用户都需要由这个模块进入系统。如图1所示,该模块有4个功能。如果首次使用该系统,要先注册。注册内容是学生在校的一些个人信息,这些信息需要和学校教务系统分配的学号等信息相吻合,例如专业、班级、学号、姓名、手机号、密码等。注册成功后即可登录使用系统。登录后,用户可根据需要修改密码。如果出现忘记密码的情况,可以根据学号和手机号进行密码找回,系统会发送密码到相应的手机号上。
3.2 座位管理模块
如图1所示,该模块有6个功能。学生登录成功后可以进入座位管理模块,然后通过预约座位功能预约座位,可以预约座位的地点和时间段,一个学生同一个时间段只能预约一个座位。同学在预约操作完成后,还可以利用查询预约状态功能查看自己是否预约成功。对于预约成功的座位,如果在规定时间内一直没有人过来学习,管理员可以认定这是占座行为,将之踢出,并记违约一次。如果学生有事情需要短暂离开,可以标记为暂时离开,回到座位后再标记为回到座位。如果长时间没有回到座位,管理员可以把该学生踢出。座位预约次数和时长会生成相应的积分,如果正常来学习,系统则会把相应的积分给到学生;如果学生预约座位不来,则不仅不会给积分,还会倒扣积分。
3.3 学生管理模块
如图1所示,该模块有3个功能。学生注册完成后就会生成学生的对应信息,学生可以自行修改相应信息,比如昵称、头像等,但是学号、姓名、专业、班级等信息不能随意修改。如果该生已离校,那么管理员可以删除该生信息。由于预约座位并学习可以有积分,所以学生可以在这个模块中利用查询积分功能查看自己的积分。积分高的同学在每年的奖学金评定中可以有额外加分。当然,这个规则是可以实现定制化,不同的学校可以根据自己的实际情况制定符合自己要求的规则。例如,可以制定规则如表1所示。当然,管理员有权对一些异常情况进行判断和审核,如果出现其他违规现象,可以取消当次的积分[5]。
3.4 信息管理模块
如图1所示,该模块有7个功能。假如图书馆因为特别原因需要调整开闭馆时间,或者有其他事项需要公布,管理员可以通过发布公告功能发布相关公告。新公告发布之后,学生登录后主界面就会弹出最新的公告,学生可以通过查看公告功能查看对应的公告。系统还提供了对公告进行修改和删除的功能,管理员利用此功能对公告进行修改或者删除。学生如果遇到问题,也可以通过学生申请功能向图书馆管理员提出申请,比如遇到椅子坏了或者灯坏了,可以通过学生申请功能向管理员发布申请;管理员通过查看申请功能查看对应的申请,如果检查核实后,可以通过审批申请功能进行审批,然后对相应的问题进行处理。
3.5 数据分析模块
数据分析模块包括4个功能:座位数量统计、在线人数统计、预约比例统计和积分排名统计。管理员和学生可以通过座位数量统计知道图书馆自习室可用的座位数量,也可以通过在线人数统计查看当前在线的人数,以及预约比例统计查看已经预约的座位占总座位数的比例。系统每天夜间会自动更新积分并重新排名,学生可以次日查看最新的积分和排名情况。
4 数据库设计
大学图书馆座位预定系统数据库设计其实就是对一些数据表的设计,在数据表的设计过程中,应该保证数据表尽可能独立,并尽可能降低表与表之间的依赖性。该系统的数据表设计如下:
1)学生信息表。该表保存已注册的学生信息,具体如表2所示。
2)学生状态信息表。该表保存已注册学生的登录状态,具体如表3所示。
3)管理员信息表。该表保存管理员的信息,具体如表4所示。
4)自习室信息表。该表保存自习室座位的相关信息,具体如表5所示。
5)公告信息表。该表保存管理员发布的公告信息,具体如图6所示。
6)申请信息表。该表保存学生的申请信息和相应的审核信息,具体如表7所示。
5 结束语
大学图书馆座位预定系统基于B/S架構,不需要安装客户端,直接利用浏览器即可登录使用。这个系统不仅可以解决大学校园图书馆座位紧张的问题,还可以减轻图书馆工作人员关于座位安排的工作量,具有非常积极的意义。
参考文献:
[1] 何奇典.高校图书馆社会服务水平提升研究[D].济南:山东财经大学,2018.
[2] 耿祥义,张跃平.Java大学实用教程[M].4版.北京:电子工业出版社.
[3] 张桂珠,刘丽,陈爱国.Java面向对象程序设计[M].2版.北京:北京邮电大学出版社.
[4] 王珊,萨师煊.数据库系统概论[M].5版.北京:高等教育出版社,2014.
[5] 徐琼,张颖,陈寿祺,等.基于云技术的图书馆微信座位管理系统的设计与实现[J].图书情报导刊,2017,2(12):32-37.
【通联编辑:谢媛媛】
收稿日期:2021-06-25
基金项目:多波长阵列可调谐激光器的单片集成线宽压窄技术研究(项目编号:62004094)
作者简介:陈恺(1988—),男,江苏扬州人,助教,中级工程师,硕士,研究方向为移动通信技术。