1、课程设计Java Web图书管理系统 信息系统工程与实践- Java Web图书管理系统班级:文计081-2 姓名:* 学号:*一、题目的选择Java Web图书管理系统二、系统分析2.1 系统的可行性分析可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。信息系统也应从技术可行性,经济可行性和社会可行性三方面来论证。通过长时间的观察与实践,我认为图书馆管理系统的可行性分析如下:2.1.1经济可行性分析作为图书馆这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。由于各个图
2、书馆实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置图书上。建立信息中心,可将来自各方面的信息集中管理,提高图书管理的计划性和预见性,快速地反馈市场信息。2.1.2技术可行性分析技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。2
3、.1.3社会可行性分析社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是图书馆完全有可能也有能力采用这样先进的管理技术。它对图书馆带来的影响可以看到:(a)对传统管理理念的冲击,可能引起管理层的变动和人员的调整。(b)对图书馆工作人员的要求提高,使图书馆在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽图书馆在市场环境下的生存空间。(c)对图书馆与读者之间业务方式的转变和扩充。最后,针对用户对图书资源进行有效利用和管
4、理的功能需求,用建模技术对图书管理资源采用面向对象的描述方式,在具体系统功能实现之前,建立起系统模型是很必要的,这里采用具有可视化、能够柔性实现分析、设计和开发系统的统一建模语言实现系统模型构建。同时,结合最流行的基于浏览器的数据管理模式,建议采用基于组件技术的B/S(brower/server)系统结构。从技术的角度来考虑,随着计算机技术的深入发展,相关的应用软件、技术已经很成熟了,各种信息系统的开发工具也很完善了。运用现在软件行业中流行的开发工具JAVA以及MySQL,借鉴别人成功开发的宝贵经验,可成功开发一个功能基本完善的、符合中小型生产企业生产管理所需的生产管理信息系统。综上所述,实施
5、生产管理系统在技术上、经济上、运行上以及社会环境上都是可行的,因此,开发生产管理信息系统是可行的。2.2 系统的需求分析公司的图书管理涉及图书信息、系统用户信息、读者信息、图书借阅等多种数据管理。从管理的角度可将图书分为三类:图书信息管理、系统用户管理、读者数据管理。图书信息管理包括图书征定、借还、查询等操作,系统用户管理包括系统用户类别和用户数据管理,读者数据管理包括读者类别管理和个人数据的录入、修改和删除。图书借阅者的需求是查询图书室所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为
6、复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护等。图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或
7、是还书记录,并打印生成相应的报表给用户查看和确认。图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应该由图书馆工作人员执行,但是,删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。并且还应具有生成催还图书报表,并打印输出的功能。2.3系统的功能需求 在本系统中,对读者来
8、说,他们关心的问题其实是如何方便的查询到图书馆中的书籍以及自己正在借阅或是已经借阅过些什么书,所借的书是否到期等。3由此可以得出系统在面向读者方面应该至少做到如下几点:1图书查询。2读者信息查询,读者信息的查询内容应包括下面的几个方面:读者信息对读者的基本信息进行显示。书刊借阅对该读者借阅过的所有书籍进行查询。借阅历史查询该读者借阅过的所有书籍。违章信息该读者的违章信息。读者规则该读者所应用的规则。对系统的管理员来说,应该注意的是:1图书馆中有些什么书,它们都存放在那里,是不是可以被借阅;2本图书馆发放的读者证有那些,如何管理这些读者证;3这些读者证都借阅着那些书;4如何来确定这些读者证是否可
9、用,以及借书的还期等。从以上问题出发,可以得出本系统应该具有的功能:1图书查询对馆内的图书进行查询。2借阅管理对读者的每一次借阅,还书进进登记和管理。3图书管理对图书馆的书籍进行管理。4借阅证管理对读者的借阅证进行管理。5读者规则管理设置和管理读者规则。2.4设计模式设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。本系统开发采用目前一种目前广泛流行的软件设计模式MVC。MVC(Model-View - Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。把一个应用的输入、处理、输出流程按照
10、Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。如下图2.1所示:图2.1 MVC模式三、系统设计3.1 系统概要本图书管理系统总体上分为前台页面显示和后台管理。前台页面(即本书图书管理系统的首页)实现了公告的显示图书查询,留言建议三大功能。而后台的页面则集成了图书管理中所需的功能和录入新书到库,办公图书,借还手续,查询图书等等。平时图书管理人员的工作都是在后台中完成的。前台是为了师生显示的。师生们可以看到图书管理人员发布的最新公告信息;并可以查询自己感兴趣的图书,也可以给学校的图书管理人员留言提议。相对应的后台是针对学校图书管理人员,
11、后台的页面都加密,如果不正常登录是进入不了后台管理页面的,后台功能具体包括:发布首页公告,添加新书到库等等。3.2功能模块本系统的功能模块的设计如图3.1所示,整个系统包含基本信息设置,图书信息管理,查询图书管理,添加图书管理,修改图书管理和用户借阅管理。图3.1功能结构图3.3设计思想 利用软件开发现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用现在资源提高系统开发水平和应用效果的目的。系统应该符合软件工程开发的理论,开发方法等开发依据。系统应满足图书馆管理工作需要,到操作过程中的直观,方便,实用,安全等要求。系统具备数据库维护功能,及时根据用户需求进行数据库的各种操作。系统采用原
12、型,使用模块化程序设计方法,便于系统功能的各种组合和修改,以及系统的测试与维护。3.4模块设计及功能 3.4.1图书查询读者可以通过网络访问学校图书馆管理系统,并对馆内的图书进行查询,对查到的在馆图书可以进行借阅,如图3.2所示:图3.2 图书查询流程图3.4.2借阅管理这一部分是对书籍借阅、书籍归还的管理,当读者借书的时候,图书馆管理员把书籍的编号和读者的借阅证号输入系统,当此次借阅符合借阅规则的时候,借阅成功。并将结果写入到数据库中。读者归还书籍时,将图书交给图书管理员,管理员把书籍的编号和读者的借阅证号输入系统,系统核对借阅规则,对违规(如超期)的读者进行罚款之类。如图3.3所示:图3.
13、3借阅管理流程图3.4.3图书管理图书管理主要实现的功能是对新购的图书进行入库和废书记录从库中删除。当新书被放入图书馆时,管理员登录进入系统,把图书的信息添加到图书馆管理系统中,并指定是放到哪一个藏书馆中。这时图书可以被读者查询到,并可以借阅。当要把一本废书删除时,图书管理员登录进入系统,查找到这一本书,并将其删除。这时,这一本图书将不再能被查询到。如图3.4所示:图3.4图书管理流程图3.4.4借书证管理本部分是对借阅证进行管理,并对读者的一些基本的信息进行维护,提供增、删、改等功能。每一个借阅证都要以某一个读者规则相应,读者规则决定读者可以借阅书籍的等级,如借书时间、借书种类等。当读者借阅
14、证丢失时,可以进行挂失处理。持失之后借阅证失效。如图4.5所示:图3.5借书证管理流程图3.4.5读者规则管理读者规则包括借阅时间,可借阅的图书数目,可借阅图书的书馆等。这一部分可以对读者规则进行管理,主要是增、删、改操作。如图3.6所示:图3.6 读者规则管理流程图3.4.6借还图书功能流程图图3.7 借还书流程图3.5数据库设计设计两个表:a)书籍信息autos(id,category类别,model型号,no书籍编号,price租书价格),如表3.8所示:表3.8书籍信息表b)租书信息leases(id,autoId书籍id,customer客户名称,leaseDate租书日期,retu
15、rned是否还书?,returnDate还书日期),如表3.9所示:表3.9租书信息表3.5.1创建数据库的代码代码1:create database bookmanage; use bookmanage;create table autos(id int primary key auto_increment,category varchar(50) not null,model varchar(50) not null,no varchar(50) not null,price double )ENGINE=InnoDB DEFAULT CHARSET=utf8;代码2:create tab
16、le leases(id int primary key auto_increment,autoId int not null,customer varchar(20) not null,leasedate date,returned int default 0,returndate date)ENGINE=InnoDB DEFAULT CHARSET=utf8;四、程序设计与编码 4.1 系统登录界面当系统登陆时,首先出现的是一个用户权限登陆的界面, 权限设置主要是维护系统的安全性和完整性。拥有管理员权限的操作员能对其他操作员进行相应的权限设置,没有权限的操作员不能对相应的窗口进行操作。如下
17、图4.1所示:图4.1 管理员登入界面这是进入系统时的身份验证,用户首先要从软件开发者那里申请用户名和密码,才可以进入。该过程的流程图如下图4.2所示: 图4.2系统登入流程图核心代码如下: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(Constant.CONTENTTYPE); request.setCharacterEncoding(Constant.CHARA
18、CTERENCODING); try String method=request.getParameter(method).trim(); AdminBean loginbean = new AdminBean(); HttpSession session = request.getSession(); session.setMaxInactiveInterval(1200); SystemBean systembean = new SystemBean(); String sysdir = systembean.getDir(); if(method.equals(one)/admin登录
19、String username = request.getParameter(username); String password = request.getParameter(password); if(username = null|username.trim().equals() request.setAttribute(message, 请正确输入用户名!); request.getRequestDispatcher(index.jsp).forward(request, response); return ; else if(password = null|password.trim
20、().equals() request.setAttribute(message, 请输入密码!); request.getRequestDispatcher(index.jsp).forward(request, response); return ; DBO dao = new DBO(); String realPassword =; dao.open(); java.util.ArrayList list = new java.util.ArrayList(); ResultSet rs = dao.executeQuery(select * from admin where user
21、name=+username+); Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat(yyyy-MM-dd); String logintime = format.format(date); if(rs.next() realPassword = rs.getString(password).trim(); String userName = rs.getString(username).trim(); String right = rs.getString(quanxian).trim(); Inte
22、ger logintimes = Integer.valueOf(rs.getInt(logintimes); list.add(userName); list.add(right); list.add(logintimes); list.add(logintime); String pwd = MD5.MD5(password.trim(); if(!pwd.equals(realPassword) request.setAttribute(message, 密码错误!); request.getRequestDispatcher(index.jsp).forward(request, re
23、sponse); else session.setAttribute(list,list); session.setAttribute(user,username); request.getRequestDispatcher(admin/index.jsp).forward(request, response); 4.2 添加图书信息身份验证通过以后,点击可以使用系统的基本信息管理界面,这是管理员主要的输入信息部分,它即可以对数据进行输入包括图书类别,图书名称,图书作者等。填写好各项信息后,单击保存按钮,系统将对这些信息进行处理。界面见下图5.3所示:图4.3 添加图书信息界面核心代码如下:p
24、ublic int addBOOK(String booktype,String name,String author,String cbs,String isbn,String price,String num,String intro,String jyjg) String sql=insert into book(booktype,name,author,cbs,isbn,price,num,intro,jyjg,addtime) + values(+booktype+,+name+,+author+,+cbs+,+isbn+,+price+,+num+,+intro+,+jyjg+,+
25、date+); DBO dbo = new DBO(); dbo.open(); try int i = dbo.executeUpdate(sql); if(i = 1) return Constant.SUCCESS; else return Constant.SYSTEM_ERROR; catch(Exception e) e.printStackTrace(); return Constant.SYSTEM_ERROR; finally dbo.close(); public int upBOOK(String id,String booktype,String name,String
26、 author,String cbs,String isbn,String price,String num,String intro,String jyjg) String sql=update book set booktype=+booktype+,name=+name+,author=+author+,cbs=+cbs+,isbn=+isbn+, + price=+price+,num=+num+,intro=+intro+,jyjg=+jyjg+ where id=+id+; DBO dbo = new DBO(); dbo.open(); try int i = dbo.execu
27、teUpdate(sql); if(i = 1) return Constant.SUCCESS; else return Constant.SYSTEM_ERROR; catch(Exception e) e.printStackTrace(); return Constant.SYSTEM_ERROR; finally dbo.close(); 4.3 图书类别管理点击可以使用系统的基本信息管理界面,这是管理员主要的输入信息部分,它即可以对数据进行输入,可以添加图书的类别。填写好各项信息后,单击保存按钮,系统将对这些信息进行处理。界面见下图4.4所示:图4.4图书管理类别管理核心代码如下:
28、public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException System.out.println(-); response.setContentType(Constant.CONTENTTYPE); request.setCharacterEncoding(Constant.CHARACTERENCODING); PayBean pb=new PayBean(); String method=request.getParamet
29、er(method).trim(); /图书类型 if(method.equals(addTYPE) String name=request.getParameter(booktype); int flag=pb.addTYPE(name); if(flag=Constant.SUCCESS) request.setAttribute(message, 操作成功!); request.getRequestDispatcher(admin/type/index.jsp).forward(request, response); else request.setAttribute(message, 系统维护中,请稍后再试!); request.getRequestDispatcher(admin/type/index.jsp).forward(request, response); else if(method.equals(addBOOK) String booktype=request.getParameter(booktype); String name=request.getParameter(name);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1