《全开架图书管理系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《全开架图书管理系统的设计与实现毕业论文.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、全开架图书管理系统的设计与实现摘要:全开架借阅是当今高校图书馆发展的必然趋势。实行全开价借阅,不仅方便读者,大大促进图书馆资源的开发和利用,而且也能全方面体现图书馆的综合服务功能。全开架借阅不仅简化手续,方便读者,保证了信息的完整性和准确性,而且大大提高了图书及信息的利用率,节省了大量的时间。将“以藏为主”的服务方式转变为“以用为主”的服务方式,充分体现管理员主动服务的能力。在图书馆开发的一些理论的指引下,历经几代中外图书馆学者大力提倡和实践,图书馆的全开架服务,成为当今图书馆开放管理的重要基础。我国部分先进图书馆和和级少数有条件的高校图书馆也纷纷采用了这种方式。这种方式为图书馆的现代化搭建了
2、基础平台,为图书馆的可持续发展提供了保证。与之相反,“闭架式”,“书库式”的管理方式已制约了高校图书馆的发展。因此,高校图书馆实行全开架借阅方式势在必行。关键字:全开架、图书管理、系统、图书馆、现代化目录1 选题背景41.1 全开架图书馆的优势41.2 全开架图书馆开放管理的必然趋势41.3全开架图书馆设计的开发环境41.4全开架图书馆设计的功能简介52 可行性分析52.1 技术可行性52.2 经济可行性52.3社会可行性63 需求分析63.1系统的需求分析63.2 功能需求分析64 全开架图书馆个人设计实现部分74.1个人任务描述74.2图书管理模块概要设计74.3图书管理模块需求分析74.
3、3.1图书管理模块的E-R图84.3.2图书管理模块的数据流程图104.3.3图书管理模块的数据字典135图书管理系统详细设计145.1系统流程分析145.2主要模块的运行155.2.1登录界面155.2.2图书系统还书模块165.3 系统开发遇到的相关问题及解决165.3.1图书管理系统索引165.3.2如何验证输入的字符串165.3.3自动计算图书归还日期176.总结237. 谢辞248.参考文献及附录241 选题背景1.1 全开架图书馆的优势全开架借阅管理系统与“闭架式”,“书库式”管理系统相比,显示其独特的优势,为读者和管理者提供了满意的操作平台,充分发挥了各自的主题作用。实行全开价借
4、阅,不仅方便读者,大大促进图书馆资源的开发和利用,而且也能全方面体现图书馆的综合服务功能。全开架借阅不仅简化手续,保证了信息的完整性和准确性,而且大大提高了图书及信息的利用率,节省了大量的时间。将“以藏为主”的服务方式 转变为“以用为主”的服务方式,充分体现管理员主动服务的能力。这是读者和管理员都满意的服务方式1.2 全开架图书馆开放管理的必然趋势十七世纪被誉为“图书学开山鼻祖”的法国学者加布里埃诺迪指出:“图书馆应当对公众开放”。在图书馆开发的一些理论的指引下,历经几代中外图书馆学者大力提倡和实践,图书馆的全开架服务,成为当今图书馆开放管理的重要基础。西方发达国家图书馆凭借雄厚的经济实力和技
5、术实力早已实现了开架借阅。我国部分先进图书馆和和级少数有条件的高校图书馆也纷纷采用了这种方式。这种方式为图书馆的现代化搭建了基础平台,为图书馆的可持续发展提供了保证。与之相反,“闭架式”,“书库式”的管理方式已制约了特别是高校图书馆的发展。因此,图书馆实行全开架借阅方式势在必行。1.3全开架图书馆设计的开发环境系统是以Java Server Pages 2.0开发环境作为主要开发工具,使用MySQL作为关系数据库,配合功能强大的SQL查询语言实现建立关系数据库,访问数据库,对数据库的更新,较好地实现了预定的需求功能。使用了客户端/服务器结构,并使用My SQL创建中心数据库,提供完整的XML支
6、持,还具有构成Web站点的数据存储组件所需的可伸缩性、可用性和安全功能等特点。可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用。此外,SQL Server2000支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。数据库功能。数据库引擎充分保护数据的完整性,同时将管理上千个并发修改数据库用户的开销减到最小。SQL分布式查询可以引用来自不同数据源的数据,就好像数据是SQL数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器中。1.4全开架
7、图书馆设计的功能简介 全开架图书馆主要实现了5个方面的功能:1.图书查询,对图书进行查询,可查询书本的当前状态和相关信息;2.借阅管理,包括书籍借阅和书籍归还的管理;3.图书管理,主要实现书库的管理和书籍的管理,包括书库的建立和删除,新书的入库和废书的删除等;4.借阅者管理,是对借阅者信息和借阅进行管理;5.系统管理,是对系统的权限管理。系统设计利用JSP开发工具和Mysql数据库来开发这个图书管理系统。系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、修改删除管理等功能。系统能根据用户的需求,快捷方便的为读者提供借阅服务。2 可行性分析2.1 技术可行性对于现在的pc机
8、和开发软件配置都能满足的软件需要,一个班级开发一个系统,有相应的人力,和林老师的帮助支持,技术上是可行的。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。2.2 经济可行性 开发需求较低,加上成熟的软硬件环境、目标系统并不是十分复杂和开发周期较短,人员经济支出有限。开发完成运行后,为使用者带来便利,为系统的进一步推广创造了条件,经济收益将远超过投资。从经济角度考虑,此系统开发可行。2.3社会可行性目
9、前已有很多成功开发图书馆管理系统的先例,社会需要图书馆管理的现代化和信息化。图书馆管理系统开发和运行与国家的政策法规不存在任何冲突和抵触之处。另外,图书馆管理系统所采用的操作和工作方式符合工作人员和读者的日常习惯,而且操作方便灵活,便于学习。具有可行性。3 需求分析3.1系统的需求分析随着互联网的爆炸性发展,人们越来越不习惯于利用网络来实现所需的任务系统的主要目的是实现一个全开架图书管理系统。系统有2 类用户分别为管理员、读者会员。管理员经口令认证进人系统后,管理员可完成维护系统的功能, 包括管理图书和管理会员。读者会员则完成查询图书、修改个人资料、查询个人借阅信息的功能, 工作完成后可以退出
10、系统。 3.2 功能需求分析随着图书的日益增多,传统的手工图书管理不仅工作量大,而且容易出现问题。图书管理设计的内容非常复杂而且繁多,比如拥有图书信息录入管理、用户信息管理、图书借阅管理和归还管理,图书的查询和修改等。由于系统主要是为方便管理员定制开发的,因此针对图书管理的实际工作而言,经过了反复地论证,最终确定了图书管理系统的设计方案,图书管理系统的主要功能为:(1) 用户登录。管理员或会员根据工作证和密码登录系统进行身份验证。(2) 查询图书。登录系统后进行图书检索, 并可以通过点击图书名称查看书本详细信息。可以查看到书本的所有信息及借阅信息。(3) 添加图书。只有管理员登录成功后才能添加
11、图书。通过点击导航条上的“添加图书“超链接进入添加图书页面,填好后点提交, 就进数据库了。(4) 修改图书。只有管理员登录成功后才能修改图书。通过点击导航条上的“修改图书“超链接进入修改图书页面,修改好后点提交, 就进数据库了。(5) 删除图书。只有管理员登录成功后才能修改图书。通过点击导航条上的“删除图书“超链接进入删除图书页面,点删除就可将书删除。(6) 修改和查询个人信息。4 全开架图书馆个人设计实现部分 4.1个人任务描述我所完成的任务是全开架图书管理系统的模块功能流程图,需求分析,以及数库设计的编写。我们小组负责的模块是图书管理系统的还书部分。 4.2图书管理模块概要设计首先进入登陆
12、界面,验证用户名和密码,根据用户权限不同分别进入管理员界面或普通用户界面。管理员对用户登录信息,图书信息进行管理,普通用户根据分配的用户名,密码进行登录查询图书信息。本模块包括登陆页,普通用户页面,管理员页面,添加用户页面,添加图书信息页面,查询页面,增加页面,删除页面等。 4.3图书管理模块需求分析数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这个阶段不要考虑所采用的数据库管理系统,操作系统类型,及其类型等问题。这阶段可用的工具很多。用的最多的是E-R图,另外还有许多计算机辅助工具可以帮助进行设计。本系统采用了E-
13、R图的方法进行数据库概念结构设计。E-R图是描述数据实体关系的一种直观描述的工具。这种图中有:(1)实体:用方框表示,方框内实体的名称。(2)实体的各种属性:用椭圆表示,椭圆内为属性名称。使用线段将其和响应的实体连接起来。(3)实体之间的联系:用菱形表示,菱形内为联系的名称。实体和实体之间的联系较多,比较常见的联系有1:1,1:N,和M:N这三种。概念结构式独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。第一种转化是将实体转化为关系表。这种转化需要将实体的属性定义为表即可。第二种转化是联系的转化。即将各
14、个实体之间的联系转化为表格之间的关系,如外部键的定义。在上面工作的基础上归纳出人员管理数据库表格的组成之间的联系等等。该数据库系统具有以下方面的特点:结构合理,对一个人员建立多条记录。所建立的数据冗余度小,独立性强。建档,修改,查询,统计快速而准确。保密性好,可靠性好。 4.3.1图书管理模块的E-R图图书管理系统中要有图书,图书是图书管理系统中密不可分的部分,因此要创建一图书信息实体,用来保存图书的详细信息。图书信息实体E-R图:类型名称条形码操作员作者图书馆信息实体库存数量出版社页码书架 图书信息实体E-R图读者是图书管理系统的重要组成部分,它用来存储读者的详细信息。读者信息实体E-R图:
15、 性别读者编号读者名称 读者类型备注操作员读者信息实体 生日注册日期 证件类型证件号码电话读者信息实体E-R图图书的借阅和归还时图书管理系统中的一项重要环节,开发图书管理系统就是为了方便读者对图书的借阅和归还。因此要建立一个图书借还实体,用来保存读者对图书的借阅和归还的详细信息。图书的借阅和归还实体E-R图:读者编号借书编号注册日期是否归还读者借还实体还书操作借书时间 该还时间实际时间借书操作 读者借还实体E-R图图书管理系统为了增加系统的安全性,管理员只有在系统登录模块验证通过之后才能进入管理员的操作界面,因此要在数据库中创建一个存放登录用户信息的管理员实体。管理员实体E-R图:管理员实体密
16、码编号名称 管理员实体E-R图4.3.2图书管理模块的数据流程图根据需求分析的得到的现行业务处理流程,在反复研究后,首先确定目标系统的业务流程,其处理流程:图书登记用户验证 管理员 登录 合法用户 登记后 管理员借书或归还图书 的图书 图书管理系统的业务流程查询图书信息数据流程图:验证并查询错误返回查询关键字读者 查询图书信息数据流程图加工名:验证并查询简要描述:检验读者身份是否有效,并根据读者输入的关键字查询输入数据流:借书证号,读者信息,图书信息,还书信息,访问记录信息输出数据流:错误返回,查询信息加工逻辑:IF 借书证在读者库中不存在 THEN 发出:“错误返回“ ELSEIF 所要关键
17、字在图书库中不存在 THEN 发出“错误返回” ELSE IF 该图书在访问记录中且没有返回 THEN 发出“错误返回” ELSE 查询,并返回查询信息 ENDIF ENDIFENDIF数据流名:查询关键字说明:用于传递查询关键字段数据流来源:读者数据流去向:验证并查询数据流组成:查询信息1字母50数据流名:查询信息说明:用于显示读者查询的结果数据流来源:验证并查询数据流去向:读者数据流组成:查询信息读者信息图书信息数据流名:借书证号说明:校验读者是否入库数据流来源:读者数据流去向:验证并查询归还系统的数据流图: 图4.3.3归还系统的数据流图图书档案管理系统为用户提供图书档案信息其数据流图:
18、 图书档案管理数据流图读者档案用于记录读者的详细信息其数据流图: 读者档案管理数据流图4.3.3图书管理模块的数据字典有了系统的数据流图后,还有相当多的数据信息如图书、借阅、归还等信息需要进一步描述,这就是需要定义数据字典,才能把现有的系统描述清楚。列出系统的主要数据字典。1. 名称:管理员描述:记录管理员信息定义:管理员信息=管理员ID+管理员密码输入数据:管理员信息输出数据:管理员信息2. 名称:图书信息表结构描述:记录所有图书的基本情况定义:图书信息=图书编号+ISBN号+索引号+图书类别+图书名称+语种+原名+页码+作者+价格+出版社+出版时间+登记日期+备注输入数据:图书信息输出数据
19、:图书信息3. 名称:读者信息表结构描述:记录所有读者的基本情况定义:读者信息=读者编号+性别+姓名+类别+身份证号+办证日期+证有效期+工作单位+E-mail+联系电话输入数据:读者信息输出数据:读者信息4. 名称:借书登记表结构描述:记录所有图书的借阅情况定义:借书信息=读者编号+读者编号+读者类别+图书编号+图书类别+图书名称+原名+作者+出版社+借出日期+应还日期输入数据:借书信息输出数据:借书信息5. 名称:记录归还登记表结构描述:记录所有图书的归还情况定义:归还信息=读者编号+读者编号+读者类别+图书编号+图书类别+图书名称+原名+作者+出版社+借出日期+应还日期+实还日期+罚款输
20、入数据:归还信息输出数据:归还信息5图书管理系统详细设计5.1系统流程分析根据开发图书管理系统的需求分析,本系统设计了三种用户,分别为系统管理员,教师和学生。系统要求有系统管理员用户,我们设定系统管理员,当系统管理员使用帐户登录后,需要查看有关图书的一系列的信息,管理员可以通过系统导航菜单进入读者管理界面、图书管理界面、图书借还界面、系统查询界面,在读者界面中,管理员添加和修改学生或教师信息、用户可以查看自己的信息,在图书管理界面管理员可以添加和修改图书信息、用户可查看图书,在图书借还界面我完成读者借书还书的操作,系统查询界面管理员可以查看借出去的图书信息及库存的信息、用户可以查找自己所需的图
21、书。读者使用读者账号登录系统后,可以查询自己所需要的图书信息,也可以查询自己个人的基本信息及图书的借还信息。读者的借书和还书过程是通过管理员完成的。5.2主要模块的运行5.2.1登录界面当用户输入用户名、密码,系统自动将输入的信息和相关数据表中的内容进行比较,如果该用户输入的内容和数据表中的内容相符,则通过验证,此次登录成功;否则登录失败。比较的过程是由浏览器将指令、数据发送到Web服务器,Web服务器通过对数据库进行查询,将结果返回到浏览器,从终端显示成功的消息,用户只有成功登录系统后才能进行一系列的操作:5.2.2图书系统还书模块5.3 系统开发遇到的相关问题及解决5.3.1图书管理系统索
22、引图书管理系统开发中存在大量的数据和信息检索,怎样更好的检索数据和信息操作时保证检索速度的提高和局的分页显示,主要考虑了几个方面:(1)设计逻辑结构时充分考虑冗余量和可处理性两方面的要求,在接受冗余量的前提下,尽量减少表的连接操作。(2)关系的大小对查询的影响也是很大的,因此为了提高数据库的查询速度,减小系的大小和数据量也是必要的。(3)建立合理的索引结构。索引相当于一个映射机构,将键值转换成相对应的记录地址,形成索引文件。5.3.2如何验证输入的字符串在图书管理系统的开发过程中,需要对一些输入的字符串进行验证,例如金额、电话号码等,由于许多模块都要用到这些验证,因此可以将其写入到一个公共类中
23、然后在其他的页面中ingzhijie调用即可。5.3.3自动计算图书归还日期在图书管理系统运行中会常常遇到这样的问题:在借阅图书时,需要自动计算图书的归还日期,而这个日期又不是固定不变的,它是需要根据系统日期和数据表中保存的各类图书的最多借阅天数来计算的,即图书归还日期=“系统日期”+“最多借阅天数”。因此本系统是这样解决问题的:首先获取系统时间,然后从数据表中查询出该类图书最多借阅天数,最后计算归还日期。代码:struts 展现层:/* 管理员成功登录系统后 所显示的第一张页面*/public ActionForward returnDefault(ActionMapping mapping
24、, ActionForm form,HttpServletRequest request, HttpServletResponse response) /request.setAttribute(dateFormater,new SimpleDateFormat(yyyy-MM-dd);request.setAttribute(borrows, borrowBiz.getBorrowRecords();return mapping.findForward(unreturn);/* 学生图书归还功能实现*/public ActionForward doReturn(ActionMapping m
25、apping, ActionForm form,HttpServletRequest request, HttpServletResponse response) int id=Integer.parseInt(request.getParameter(id);Borrow borrow=borrowBiz.getBorrowRecordById(id);borrow.setReturnTime(new Date();borrowBiz.returnBook(borrow);return returnDefault( mapping, form, request, response);spri
26、ng 业务层:/* 从加载上所有学生的 借书未归还图书信息*/public List getBorrowRecords() return getUnReturnList(borrowDAO.findAll();private List getUnReturnList(List list)List result=new ArrayList();for (Borrow borrow:list)if (borrow.getReturnTime()=null)result.add(borrow);return result;/* 还书操作业务层实现, 分层主要是为了系统的灵活性*/public voi
27、d returnBook(Borrow borrow) borrowDAO.update(borrow);hibernate 持久层:/* 加载所有暂时没有归还的图书信息*/public List findAll() log.debug(finding all Borrow instances);try String queryString = from Borrow;return getHibernateTemplate().find(queryString); catch (RuntimeException re) log.error(find all failed, re);throw
28、re;/* 更新学生所归还的图书借阅信息*/public void update(Borrow transientInstance) log.debug(saving Borrow instance);try getHibernateTemplate().update(transientInstance);log.debug(save successful); catch (RuntimeException re) log.error(save failed, re);throw re;涉及到的具体领域模型类有图书借阅信息实体package com.wangluo076.entity;impo
29、rt java.util.Date;/* * Borrow generated by MyEclipse Persistence Tools */public class Borrow implements java.io.Serializable / Fieldsprivate Integer id;private Books books;private User user;private Date borrowDate;private Date returnTime;/ Constructors/* default constructor */public Borrow() /* mini
30、mal constructor */public Borrow(Books books, User user, Date borrowDate) this.books = books;this.user = user;this.borrowDate = borrowDate;/* full constructor */public Borrow(Books books, User user, Date borrowDate, Date returnTime) this.books = books;this.user = user;this.borrowDate = borrowDate;thi
31、s.returnTime = returnTime;/ Property accessorspublic Integer getId() return this.id;public void setId(Integer id) this.id = id;public Books getBooks() return this.books;public void setBooks(Books books) this.books = books;public User getUser() return this.user;public void setUser(User user) this.use
32、r = user;public Date getBorrowDate() return this.borrowDate;public void setBorrowDate(Date borrowDate) this.borrowDate = borrowDate;public Date getReturnTime() return this.returnTime;public void setReturnTime(Date returnTime) this.returnTime = returnTime;对应的配置文件borrow.hbm.xml!DOCTYPE hibernate-mappi
33、ng PUBLIC -/Hibernate/Hibernate Mapping DTD 3.0/EN 图书ID UserID 借书日期 还书日期 6.总结 经过几个月以来,同学们之间互帮互助,学校图书管理系统基本开发完毕。其功能基本符合用户要求。对于数据的一致性问题也通过程序进行了有效的解决。但是该系统还有许多不尽如人意的地方,在今后有待进一步改善。通过这次毕业设计真切地体会到毕业设计的目的并不止于自己单纯任务的完成,而在于学习心得知识并掌握具体的方法,如何具体使用和具体应用你所学的语言。从而获得一种本领:就是融会贯通各种语言。回首整个开发设计过程,我学到了很多书本上学不到的东西。以前开发软件
34、的时候,一般做的就是编码工作,实现比较简单的功能。但是这次毕业设计,小组要负责完成图书管理系统的整个开发过程,包括系统可行性分析、系统需求分析、系统概要设计、系统详细设计等方面的工作。在每个设计阶段我都能学到一些新知识,对我的动手能力提高很大。在整个毕业设计过程中,我们小组基本上完成了还书模块的功能,达到了毕业设计的要求。页面设计还有进一步改善的地方,我们会在今后的学习工作中着重加强这方面的锻炼。 在以后的工作生活中,或许还会遇到很多类似的情况。此次毕业设计为我以后的工作积累了经验,奠定了一定的基础。这一整个过程是一个不断地遇到问题解决问题的过程。当然仍然存在许多解决不了的问题,我们还需不断地
35、继续与探索。在结束设计的同时也感到了劳动的艰辛与劳动成果的来之不易,明白了毕业设计是给自己提供了一个锻炼、升华、提高、完善的机会。参考文献及附录1孙卫琴,李洪成.Tomcat 与 Java Web 开发技术详解.电子工业出版社,2003年6月:1-2052BruceEckel.Java编程思想. 机械工业出版社,2003年10月:1-3783FLANAGAN.Java技术手册. 中国电力出版社,2002年6月:1-4654孙一林,彭波.Java数据库编程实例. 清华大学出版社,2002年8月:30-2105LEE ANNE PHILLIPS.巧学活用HTML4.电子工业出版社,2004年8月:
36、1-3196飞思科技产品研发中心.JSP应用开发详解.电子工业出版社,2003年9月:32-3007耿祥义,张跃平.JSP实用教程. 清华大学出版社,2003年5月1日:1-3548孙涌.现代软件工程.北京希望电子出版社,2003年8月:1-246 9萨师煊,王珊.数据库系统概论.高等教育出版社,2002年2月:346010Brown等.JSP编程指南(第二版). 电子工业出版社 ,2003年3月:1-268 11清宏计算机工作室.JSP编程技巧. 机械工业出版社, 2004年5月:1-410 12朱红,司光亚.JSP Web编程指南.电子工业出版社, 2001年9月:34-307 13赛奎春.JSP工程应用与项目实践. 机械工业出版社, 2002年8月:23-223