基于Java的图书馆座位管理系统的设计与实现Word格式文档下载.docx
- 文档编号:3907776
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:36
- 大小:998.09KB
基于Java的图书馆座位管理系统的设计与实现Word格式文档下载.docx
《基于Java的图书馆座位管理系统的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于Java的图书馆座位管理系统的设计与实现Word格式文档下载.docx(36页珍藏版)》请在冰点文库上搜索。
(3)学生学习的需求与物质环境冲突所造成的矛盾。
当今社会日新月异,每天都有大量的知识等着学生去摄取。
另外如今就业压力过大,学生不得不通过学习来提高自己的竞争力,弥补自己的不足。
而图书馆的座椅缺乏的情况与学生的需求产生了矛盾,导致了图书馆座椅紧张的问题。
可以解决问题的办法有:
(1)增加座椅数量,从物的方面解决座椅紧张问题。
但是由于资金,空间,时间限制,这种方案的局限性很大。
(2)设置制度规定,从人的方面解决座椅紧张问题。
加强宣传教育,使大家自觉遵守规章制度。
另外也要加强图书馆管理员的积极性,如果出现不服从的规章制度的情况,管理员应及时积极劝阻,制止不文明的现象。
以上方法都具有一定的不足。
因此,我认为开发一套成本低廉,简单易行的图书馆座位管理系统是十分有效的方法。
1.3研究现状和发展趋势
国内外的研究现状:
在计算机还未完全开展之时对于图书馆座位的管理十分混乱,仅仅只是依靠人工手动记录,这种传统的管理方式虽然也能够达到目的,但是过于耗费精力物力,随着计算机的普及,经调查研究,很多例如清华北大的各大院校已经拥有了成熟的图书馆座位管理系统,学生可以通过学校图书馆的网上平台进行方便的借书、座位预定等一系列操作,本次设计开发的图书馆座位管理系统无法和成熟的系统在细节方面和逻辑严谨度上与之相比,所以本次开发的系统目的是将成熟的系统进行一个简化,使整个系统更加轻便并实现酒店管理系统的增删查改的基本功能。
发展趋势:
现在市面上的类似系统也有部分采用SSM框架进行构建,相关编程语言有采用C#、Java等,本系统开发选择了Java语言,因为其继承了C++语言的优点,摒弃了C++里多继承、指针等概念,使得程序员的软件开发设计得到简化,让开发和设计变得更加轻松简洁。
数据库设计通常有SQLServer、Oracle和MySQL等几种选择,这里我采用了MySQL数据库,MySQL数据库的数据存储方式使得数据崽存储的时候更加轻巧灵活,而且支持多种数据库连接的方式。
2系统开发环境及平台
2.1开发环境
仅仅使用Eclipse是不够的,我们还需要SUN公司提供的JavaSDK的帮助。
总体而言,我们需要安装以下软件,才能搭建完整的Java开发环境,从而准确的进行Java应用程序的开发。
(1)JavaSDK
(2)Eclipse
2.2JavaSDK
到
2.3Eclipse
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
2.4Tomcat
Tomcat用来处理动态的网页部分,使用范围比较广泛,JavaEE的很多特性可以直接集成进来。
3系统分析
3.1系统的目标分析
(1)图书馆座位管理系统的建立目的,可以使学生选座时对座位进行合理分配。
(2)学生选坐时,是通过学生证号和密码进行登录,这样大大提高了图书馆和学生信息的安全性。
(3)为了解决普遍的占座问题,使每个座位都能得到充分利用,让学生能够自觉进行一人一座制度,图书馆座位管理系统实现管理科学规范化;
实现管理自动简便化;
提高管理水平和质量;
实现管理网络化。
(4)图书馆对座位定位加以以规章制度说明,使同学自觉使用该系统,可以使因占座而引起的不文明现象减少。
3.2可行性分析
可行性分析主要以经济利益为核心,通过分析大量的数据,辩证的看待项目的可行性大小,提出对系统大略的评价,并探讨投入使用时的优缺点。
3.2.1
经济可行性
随着信息产业科技的迅速发展,信息基础设备价格不断下降,这就为我们建设网站提供了方便的经济因素。
系统的成本主要是系统开发和后期维护时的大量人力和物力,特别是后期维护所消耗的成本,但是相对于运营后所带来的巨大经济效益,成本基本是可以忽略的。
3.2.2技术可行性
位置管理系统对机器没有太高的要求,只需要一台计算机就行;
如今程序设计语言已经成熟,对于软件技术要求完全足够。
3.3系统需求分析
系统设计如下:
(1)选座位模块
学生以终端的方式来浏览图书馆座位分布、使用状况,节省学生找座位的时间,此外,学生可以用学号和密码来登陆系统。
(2)预约座位模块
学生可以通过登陆图书馆座位管理系统的方式来对座位进行预定。
(3)确认入座模块
学生预约座位成功以后,可以从移动终端确认自己已经入座。
若在15分钟内没有入座座位将被自动释放。
若预约座位已被其他同学使用,可以点击座位被占并呼叫管理员选项,由管理员对无预约占用座位的同学进行警告,劝阻不听将计入失信学生模块,处罚与预约不按时入座的学生相同。
(4)统计模块
统计模块分两个作用。
首先是对图书馆座位使用情况进行统计,其次是对学生的累计用坐时间进行统计。
这样既可以了解图书馆的使用高峰,节约学生的时间,又可以对累计一定时间积极学习的学生采取优先预定座次的奖励措施,促进学风建设。
(5)失信学生管理模块
对于选座位或是预约座位后5次没有按时入管自习的学生,系统会将其信息存入失信学生信息表,该学生将于3个月不可以入馆自习,并于找图书馆管理员删除失信信息。
3.4业务流程分析
业务流程分析需要仔细的分析各个环节的的流程包括处理业务的方式、处理的信息内容、处理的顺序结构和对处理时间的要求等方面的信息,这就要求我们清楚地知道各个环节所需要的信息包括。
业务流程图流程如图3-1所示。
图3-1业务流程图
3.5数据流图
现行的顶层数据流图如图3-2所示。
空位查新
空座反馈
图书馆座位
空位管理管理系统
座位信息反馈
图3-2座位系统的数据流图
4系统设计
4.1功能设计
在对信息发布系统进行分析研究以后,就可以制定规划。
包括系统的总体、详细、数据库、系统开发等设计。
从数据流图来看,对数据流图进行剖析,得出的层次化的模块结构。
图4-1座位系统功能模块图
、
图4-2学生用户功能模块图
图4-3管理员用户功能模块
图4-4 图书馆座位管理系统功能结构图
4.2数据库设计
如果数据库做的不合理将会对系统带来很多麻烦。
甚至在后期的系统维护、系统功能变更和系统功能扩充的时候,都会出现很多不必要的麻烦,严重的时候甚至要重新设计,所有以前做的工作都白费了。
4.2.1实体-属性图
实体、属性、联系这三部分组成的E-R模型,通常用E-R图来表示。
图4-5座位信息实体属性图
图4-6学生个人信息实体属性图
图4-8座位信息实体属性图
图4-7管理员信息实体属性图
4.2.2实体-联系图
下面分别介绍本系统中实体之间的联系。
(1)管理员可以管理员进行管理,如图4-9所示:
图4-9管理员-管理员联系图
(2)管理员可以对管理多个学生,每个学生可以被多个管理员管理,如图4-10所示:
图4-10管理员-学生联系图
(3)管理员可以对多个图书进行管理,每本图书可以被多个管理员所管理,如图4-11所示:
图4-11管理员-图书联系图
(4)管理员可以管理多个座位,每个座位可以被多个管理员管理,如图4-12所示:
图4-12管理员-座位联系图
(5)一位学生可以选择多个座位,而一个座位只能被一个学生所使用,如图4-13所示:
图4-13学生-座位联系图
(6)一位学生可以借阅多本图书,而一本图书只可以被一名学生借阅,如图4-14所示:
图4-14学生-图书联系图
(7)根据上述关系图,可得到全局E-R图。
如图4-15所示:
(8)
图4-15全局E-R图
4.2.3数据库表设计
本软件中有数据需要存储数据。
因此选择MySQL作为存储数据的方法,建立新闻,并且建立数据结构。
(1)books:
图书信息表如表4-1所示:
表4-1图书信息表
序名列名数据类型长度主键外键说明
1books_idint11是否主键
2books_namevarchar255否否书名
3books_typevarchar225否否图书类型
4books_stockvarchar225否否库存
5books_addrvarchar225否否图书地址
(2)bre:
失信列表如表4-2所示:
表4-2失信学生信息表
1bre_idint11是否主键
2fk_breStu_idint11否否失信学生学号
3bre_timedate0否否失信日期
(3)fac:
学院表如表4-3所示:
表4-3学院信息表
1fac_idint11是否主键
2fac_namevarchar255否否学院名称
(4)recs:
借书学生列表如表4-4所示:
表4-4学生借书信息表
1recs_idint11是否主键
2fk_recsBooks_idint11否否书名
3fk_recsStu_idint11否否借书学生学号
4recs_sDatedata0否否借书日期
4recs_eDatedata0否否还书日期
5recs_statusint11否否还书状态
(5)seats:
座位信息列表如表4-5所示:
表4-5座位信息表
1seats_idint11是否主键
2fk_seatsStu_idint11否否选座学生学号
3seats_floorint11否否座位楼层
4seats_sDatetimestamp0否否入座开始时间
4seats_eDatetimestamp0否否入座结束时间
5seats_posivarchar255否否座位位置
6seats_statusint11否否座位状态
(6)stu:
学生信息列表如表4-6所示:
表4-6学生信息表
1stu_idint11是否主键
2stu_namevarchar255否否学生姓名
3fk_stuFac_idint11否否学生学院
4stu_codevarchar255否否学生学号
5stu_clazzvarchar255否否学生班级
6stu_accountvarchar255否否学生账号
7stu_passwordvarchar255否否学生密码
8stu_ageint11否否学生年龄
9stu_cardvarchar255否否学生身份证
10stu_statusint11否否学生状态
(7)userinfo:
管理员信息列表如表4-7所示:
表4-7管理员信息表
1user_idint11是否主键
2user_namevarchar255否否管理员姓名
3accountvarchar255否否管理员账号
4passwordvarchar255否否管理员密码
5user_cardvarchar255否否管理员身份证号
6user_telvarchar255否否管理员电话
7user_sexint11否否管理员性别
8user_ageint11否否管理员年龄
9user_powervarchar255否否管理员权限
5系统开发
5.1文件结构与用途
以librarys来命名管理系统的工程名。
工程源代码的结构如图5-1所示
图5-1library为工程源代码文件
5.2系统实现
5.2.1登陆页
进入该系统登录界面,需要用户输入账号和密码,后台会对输入的信息进行校验,校验成功后会登陆到系统菜单的主界面,如流程图5-3所示。
管理员登陆界面如下图5-4所示:
图5-3用户登录流程图
图5-4管理员系统登录界面
学生登陆界面如下图5-4所示:
图5-4学生系统登录界面
5.2.2主界面
当管理员登陆后,进入主界面,可以进行管理员管理、学生管理、图书管理、借书管理、座位管理、统计管理等多项操作。
如图5-5所示:
图5-5管理员主界面
5.2.3管理员管理模块实现
管理员身份权限包括:
管理员,员工。
再添加管理员时,会选择被添加人员的身份,在数据库中,以1代表管理员,2代表员工。
(1)当进行添加操作时,点击添加按钮,会触发对应userList.jsp里的方法。
执行userController.java里userAddDO方法,将数据封装到user对象,再将对象作为参数传到add方法里。
调用UserService层的add接口,在接口实现类中调用UserMapper层接口中对应方法的xml文件进行关联映射,执行其中SQL插入语句,将插入结果逐层返回到contrller,然后返回jsp页面显示插入成功或失败的结果。
在添加的过程中,会进行校验。
当输入的姓名、身份证号和手机号不合法时,则会提示用户输入的信息有误,请重新输入的一条弹窗提示。
校验流程图如图5-6所示:
图5-6添加管理员流程图
管理员添加页面如图5-7所示;
当输入信息不合法时,如图5-8所示:
图5-7管理员添加页面
图5-8输入信息不合法页面
(2)当管理员想对一名管理员进行信息删除的时候,点击删除按钮,触发userList.jsp里对应的UserDel方法,将删除行对应的id作为参数传到控制层。
在userController.java里执行userDelDo方法,调用UserService.java里的delete接口,在接口实现类中调用UserMapper层接口中对应方法的xml文件进行关联映射,执行其中SQL删除语句,这样整行数据就被删除。
然后将删除成功的message返回到控制层,再由控制层将信息返回到执行删除操作的jsp页面。
删除操作流程图如图5-9所示:
图5-9删除管理员流程图
管理员删除页面如图5-10、5-11所示:
图5-10删除管理员页面
图5-11删除管理员成功页面
(3)当进行修改操作,触发userList.jsp对应方法,执行userController.java里UserMid方法。
将数据封装到user对象,在将对象作为参数传到update,调用UserService层的update接口,在接口实现类中调用UserMapper层接口中对应方法的xml文件进行关联映射,执行其中SQL修改语句,将插入的结果逐层返回控制层,随后返回到页面提示修改成功。
在管理员修改操作时,有着和管理员添加同样的校验,当输入的姓名、身份证号、手机号不合法时,将会提醒用户输入的信息有误,请重新输入的一条弹窗提示。
校验流程图如图5-12所示:
图5-12删除管理员流程图
(4)管理员查询操作,利用的是对管理员姓名和账号的查询。
在控制层里传一个map容器,在业务层调用userList接口,进入到userList实现类,在接口实现类中调用UserMapper层接口中对应方法的xml文件进行关联映射,执行其中SQL查询语句进行模糊查询。
如果输入的数据为空,就会把所有的数据查询出来;
如果输入姓名或账号,就会查询到具体的数据。
最后将查找的结果逐层返回控制层。
查询页面如图5-13、5-14所示:
图5-13查询成功页面
图5-14未查询到页面
(5)管理员修改密码,如图5-15所示:
图5-15密码修改
当管理员想要修改密码时,点击修改密码,此时触发passwordMdi.jsp对应的密码修改方法,在页面会弹出如图5-16所示的页面来进行密码修改。
在passwordMdi.jsp添加两个校验。
如果输入的旧密码在数据库中查找不到,提示旧密码输入有误。
如图5-17所示。
如果经过校验得到两次输入新密码不一致,提示用户新密码输入不一致。
如图5-18所示。
当用户旧密码输入正确的同时新密码输入一致时,则修改密码成功,如图5-19所示:
图5-16密码修改页面
图5-17旧密码错误页面
图5-18新密码输入不一致页面
图5-19密码修改成功页面
(6)管理员对学生进行管理,也可以分为学生添加、修改、删除和查找。
对于学生添加,点击添加按钮,会触发对应stuList.jsp里的方法。
执行stuController.java里stuAddDO方法,将数据封装到stu对象,再将对象作为参数传到add方法里。
调用StuService层的add接口,在接口实现类中调用StuMapper层接口中对应方法的xml文件进行关联映射,执行其中SQL插入语句,将插入结果逐层返回到contrller,然后返回jsp页面显示插入成功或失败的结果。
如图5-20所示:
图5-20学生添加页面图
(7)管理员也可以对图书进行管理,同样分为增删查改。
以图书增加为例,点击添加按钮,会触发对应booksList.jsp里的方法。
执行booksController.java里booksAddDO方法,将数据封装到stu对象,再将对象作为参数传到add方法里。
调用BooksService层的add接口,在接口实现类中调用BooksMapper层接口中对应方法的xml文件进行关联映射,执行其中SQL插入语句,将插入结果逐层返回到contrller,然后返回jsp页面显示插入成功或失败的结果。
这里会对添加的图书的类型和库存进行校验,如果输入的信息不合法,就会提示用户,输入信息有误,请重新输入。
图书添加页面如图5-21所示:
图5-21图书添加页面
(8)管理员可以查询、删除学生选座信息,如图5-22。
在控制层里传一个map容器,在业务层调用seatsList接口,进入到seatsList实现类,在接口实现类中调用seatsMapper层接口中对应方法的xml文件进行关联映射,执行其中SQL查询语句进行模糊查询。
如果输入学号,就会查询到具体的数据。
当错误输入,则显示空信息,如图5-23所示。
图5-22学生座位信息页面
图5-23查找为空页面图
当执行座位删除操作时,点击删除按钮,触发seatsAllList.jsp里对应的SeatsDel方法,将删除行对应的id作为参数传到控制层。
在SeatsController.java里执行seatsDelDo方法,调用SeatsService.java里的delete接口,调用这个接口的实现类,在接口实现类中调用SeatsMapper层接口中对应方法的xml文件进行关联映射,执行其中SQL删除语句,这样整行数据就被删除。
如图5-24所示。
图5-24删除学生座次信息页面图
(9)管理员可以对学生入座时间进行统计,如图5-25所示。
通过seatsGrList进行统计操作,将数据库的信息返回到页面;
也可以对每天的占座位数进行统计,如图5-26所示。
通过seatsDateList里进行统计操作,将数据库信息返回到页面。
图5-25学生座次信息统计页面图
图5-26每日占座次数统计页面图
5.2.4学生功能模块实现
学生的功能分为图书管理、借书管理、座位管理三个模块。
学生图书管理操作,可以进行图书查询和借书两项操作,如图5-27所示。
当学生借书时,把选取书籍的id作为参数传入substock,调用BooksService里substock接口的方法,在接口实现类中调用BooksMapper层接口中对应方法的xml文件进行关联映射,把这本书籍的书记数目减少1,逐层返回到控制层。
再将所借书籍的借书时间、借书状态封装传入mapper曾管理映射,执行插入数据库语句。
此时借书信息增加1。
图5-27学生图书管理页面图
学生借书管理操作,这一模块主要显示该同学的个人信息以及借书信息,包括借书时间,还书时间和还书状态。
可以进行的操作是查询,通过输入学号或者书名来进行查询。
如图5-28所示。
图5-28借书状态页面图
(1)学生座位管理模块主要分找座位、预定座位和已选座位三个功能。
找座位功能首先在页面输入结束时间,如图5-29所示。
用seatsTime.jsp来获取输入的时间。
此处会有一个命名为CheckTime的function来进行校验。
如果输入的时间是已经过去的时间,则会提醒用户输入时间小于系统时间,然后进行重新输入,如图5-30所示。
图5-29找座位页面图
图5-30输入时间不合法页面图
当合法输入结束时间时,将时间作为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 图书馆 座位 管理 系统 设计 实现