图书馆毕业论文.docx

上传人:知****量 文档编号:18880654 上传时间:2022-06-02 格式:DOCX 页数:26 大小:570.39KB
返回 下载 相关 举报
图书馆毕业论文.docx_第1页
第1页 / 共26页
图书馆毕业论文.docx_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《图书馆毕业论文.docx》由会员分享,可在线阅读,更多相关《图书馆毕业论文.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、毕业设计(论文)题目: 图书馆管理系统 学 生 姓 名: 学号: 学 部 (系): 专 业 年 级: 指 导 教 师 职称或学位: 年 月 日目 录摘 要3前言41.系统需求分析51.1现行业务描述51.2可行性分析62.系统逻辑方案73.系统总体结构设计83.1软件模块结构设计83.2数据库设计104.系统详细设计124.1登陆页面设计124.2 图书管理员页面设计144.2.1添加图书144.2.2 查询/修改/删除图书154.2.3添加借阅信息194.2.4查询/删除借阅信息194.3借阅者页面设计21结束语24参考文献25致谢26图书馆管理系统摘 要随着人类社会的发展,人类对知识的需求

2、也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就成不可少了,本文介绍了在JAVA环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发本系统的详细过程,提出实现图书馆信息管理、资源共享的基本目标,从而推动迈向数字化图书馆的步伐,并阐述系统结构设计和功能设计,从图书的入库登记到查询浏览,从借书证发放到图书的借阅,形成了一个整体自动化管理模式,从软件工程的角度进行了科学而严谨的阐述。【关键词】图书管理 St

3、ruts2 Hibernate MySQL数据库前言随着电子计算机和通信技术的发展,人类已经逐渐地进入信息化社会。信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看,可以提高工作效率;对外来看,获得竞争优势。管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法等。生命周期法(Life

4、 Cycle Method)是20世纪60年代发展起来的一种应用广泛且比较成熟的管理系统开发方法,它的基本思想是将系统的开发工作从开始到结束划分为若干个阶段,每个阶段都有明确的任务,而系统开发出来后,并不意味着生命周期的结束,而意味着根据组织的需要对系统的修改和重建的开始;原型法(Prototyping Method)是20世纪80年代发展起来的,旨在改变生命周期法的缺点的一种系统开发方法,该法的开发思路是首先根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型,再在此基础上与用户交流,将模型不断补充、修改、完善,如此反复,最终直至用户和开发者

5、都比较满意为止,从而形成一个相对稳定、较为理想的管理信息系统;面向对象(Object Oriented)的开发方法于20世纪80年代开始兴起的,是一种基于问题对象的自底向上的一种系统开发方法,这种方法的特点是以对象为基础,对象是分析问题和解决问题的核心。基于以上三种方法的特点和各自的优缺点,本图书馆管理系统利用软件工程化思想和方法,总体上是采用结构化生命法进行系统分析和设计的,而系统实现等步骤则采用了原型法和面对对象的方法。管理信息系统的开发是一个开发周期长、技术要求高、影响因素多的复杂系统工程,因此制定一个完善、可行、合理的开发计划,不仅是系统开发成功的保证,而且可以提高效率、节省时间、降低

6、成本。1.系统需求分析1.1现行业务描述通过调查,先画出图书馆的组织结构图如下:馆 长采编组书库阅览室工具书室目录厅借阅室通过调研了解到,该图书馆各个部门负责的主要业务如下:(1)采编组主要负责图书采编工作,包括购置新书、打印编目、增加数量。(2)目录厅主要负责借阅者查询工作,包括可借图书(按图书类别、图书名称或图书作者查询);新书目录(按图书类别、日期查询);借书情况(按借阅者用户名查询)(3)借阅组主要负责图书流通、查询统计、借阅查询等工作。(4)阅览室、工具书室主要负责读者阅览工作,包括:阅览各种杂志、报纸、阅览各种工具书。下面绘制出图书馆流通业务中借书的流程图: (1)读者在目录厅查阅

7、索引(2)读者写出所借图书的分类号、种次号、交给图书管理员,并出示本人的借书证;(3)图书管理员根据图书的分类号、种次号到书库找书;(4)将图书交给读者,并根据借阅者信息和图书信息填写借阅记录; 得出该图书馆业务流程图如下所示: 1.2可行性分析通过对该图书馆的各个方面进行了具体的了解之后,现对该单位开发图书管理系统的可行性进行分析。技术上可行:该系统所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备,软件上,操作系统采用Windows系列操作系统,数据库管理系统采用MySQL, 这些软件在开发中已被大量应用,技术上都比较成熟。因此在技术上是可行的。经济上可行:由于学校急需采用计算机来

8、进行图书馆的管理,因此对开发图书管理系统大力支持,开发经费没有问题。管理上可行:该学校的图书馆有很多的管理体制,每位借书人均有借书证,同时图书馆还为每位借书人建立了档案。因此管理上可行。另外,图书馆管理人员对开发该系统也是大力支持的,同时制定了培训计划,并 进行了实施前的物质准备和工作准备。综上所述,开发图书管理系统在技术上、经济上、管理上都是可行的。2.系统逻辑方案在对图书馆的管理模式和业务流程进行认真分析和研究的基础上,最后确定了该图书管理系统的逻辑模型。下面以数据流图和数据字典的方式来描述新系统的逻辑功能。数据流图:数据字典:下面为借书业务流程图中的每一部分编制数据字典。(1) 数据元素

9、:每本书都有单价这个信息,其描述内容如下:数据元素名称:单价 类型:数字 长度:6位,其中整数部分占3位,小数部分占2位 数据值类型:离散 取值范围:0-999.99相关的数据结构:书号+书名+出版社+类型+数量+单价+内容摘要(2) 数据流。数据流“借书信息”条目如下:数据流名称:借书信息 说明:借阅者的信息数据流来源:借阅者数据流去向:图书管理员数据流组成:分类号种次号(3) 数据存储:数据存储“借阅信息”条目如下:数据存储名称:借阅信息简述:存放的是每个借阅者的借书情况输入数据:借书情况数据存储组成:借阅者用户名书号借书日期存储方式:按借书的先后顺序排列(4) 数据处理。数据处理“查询图

10、书”条目如下:数据处理名称:查询图书数据处理编号:1.1简要描述:根据借阅者写的图书的书号和类型查询输入数据流:借阅信息输出数据流:查询结果处理逻辑:根据借阅者写的图书的书号和类型检索相应的图书信息。(5) 外部实体。外部实体“图书管理员”的条目如下:外部实体名称:图书管理员输入数据流:借阅信息、借书证号、查询结果输出数据流:借阅信息数目:3人3.系统总体结构设计3.1软件模块结构设计系统方案确定。通过对系统调研与分析,系统主要应完成的功能如下:书库信息管理、读者档案管理、借阅管理、还书管理、图书检索、系统维护。软件结构设计。图书馆管理系统包含图书采编、读者管理、流通、查询等功能。该系统执行时

11、,先输入数据,然后根据输入的数据选择执行路径;购入图书进行登记、编目调用图书采编功能,借书、还书调用功能,查询调用查询功能。图书馆管理系统属于事务型系统,其系统示意图如下图所示:接受数据事务中心图书采编读者管理图书流通查询 图书馆管理系统示意图系统结构图示意如下:图书馆管理系统图书采编借阅者管理图书流通 查询输入图书信息 借书 还书图书馆管理系统结构图系统功能图如下:图书馆管理系统系统登陆图书管理员借阅者添加图书查看图书删除图书查询借阅信息查询图书添加借阅信息修改图书3.2数据库设计本系统数据库采用了MySQL数据库。数据库中建有3张表,其名称及功能如下:admin图书管理员表,图书管理员的信

12、息borrowinfo借阅信息表,提供借阅者的借书信息,方便查看book图书表,保存馆内所有图书的信息本系统涉及到的实体:(1)本系统中所涉及到的主要实体及其属性有:Book(图书管理)表:书名,书号, ,出版社,类型,价格,操作员admin(图书管理员)表:用户名,密码 borrow (借阅)表:借阅用户名,书名,借书日期(2)本系统的实体-联系(E-R)图为了使E-R图表示得更加清晰,现将E-R图分成实体及其属性图和实体及其联系图。分别如下图所示:图书编号书名出版社价格数量图书管理图书管理员用户名密码借阅借阅用户名图书号借书日期还书日期各表的物理结构如下:Book(图书管理)表:字段代码字

13、段名称类型宽度小数位数boodidId自动编号Bookname 书名文本50ISBN书号数字50Type类型文本20CBS出版社文本50Price价格数字10Count数量数字10Admin(图书管理员)表:字段代码字段名称类型宽度小数位数username用户名文本50password密码文本30Borrow(借阅)表:字段代码字段名称类型宽度小数位数idid自动编号Borrower借阅者用户名文本50Bookname书名文本50Borrowtime借书日期日期/时间4.系统详细设计整个系统主要有登陆界面,图书管理员界面和借阅者界面。图书管理员界面包括图书的添加、查询、删除和修改,还有借阅信息

14、的添加、删除,借阅者界面主要有图书的查询和对借阅信息的查询。4.1登陆页面设计 登陆界面主要有username、password 2个输入文本框和一个用户权限的选择框。在JSP页面中username和password分别用一个textfield来接收用户输入的数据,而用户权限则可以用一个select穿件一个选择框让用户根据自己情况选择。 用户名 密  码 权  限 借阅者图书管理员 页面接收到的数据会传送到对应的indexAction有这个Action保存然后传送给相应的IfAdmin方法,在Action中首先会判断传进来的用户权限这个数据,如果用户选择

15、的是图书管理员就会把username、password传入方法IfAdmin中,这个方法会去连接数据库,在数据库中匹配。如果匹配成功就会跳转到admin.jsp这个页面,如果没有就会在页面中提示错误;如果用户选择的是借阅者权限,页面就会跳转到borrow.jsp这个页面。AdminService service=new AdminServiceImpl();if(role.equals(图书管理员)if(!service.IfAdmin(username, password)return admin.jsp;this.addActionError(用户名或密码错误);if(role.equal

16、s(借阅者)return borrower.jsp; 4.2 图书管理员页面设计 用户输入正确的密码选择对应的权限判断成功之后就会跳转到这个页面,这个页面有添加图书、查询/删除/修改图书、添加借阅信息、查询/删除借阅信息,还有退出系统这几个标签。4.2.1添加图书 添加图书页面就在JSP页面中定义几个textfield分别来接收用户输入的bookname、ISBN、type、cbs、price、count这几个值书名:ISBN:类型:出版社: 这几个值会传给addBookAction,Action会保存这几个值,然后将这些保存的值传到方法service.addBook这个方法中,这个方法会将这

17、些值保存到数据库中,更新数据库中的数据。public String execute()throws ExceptionBook book=new Book();book.setBookname(bookname);book.setCbs(cbs);book.setCount(count);book.setType(type);book.setPrice(price);book.setISBN(ISBN);AdminService service=new AdminServiceImpl();service.addBook(book); 4.2.2 查询/修改/删除图书 查询的JSP页面有一个文

18、本输入框和4个按钮,4个按钮分别是按书名、按书号、按类型和显示所有。JSP页面中会定义一个textfield名为condition,就是说textfield接收到的值就是condition的值,这个值会传送到queryBookAction中,Action会创建一个list,condition和按钮的值会存入这个list,然后传到service.queryBookList这个方法中。System.out.println(condition);AdminService service=new AdminServiceImpl();ArrayList list=service.queryBookLi

19、st(condition,howsearch);Condition和按钮的值传进这个方法之后,方法会首先判断按钮的值,根据不同的值,方法会创建不同的查询语句。然后根据condition的值到数据库中查询相匹配的数据。if (howsearch.equals(按书号)Session session=factory.openSession();session.beginTransaction();Query query=session.createQuery(from Book where ISBN=?).setString(0, condition);session.beginTransacti

20、on().commit();list=(ArrayList)query.list();session.close(); 查询之后,数据会保存到一个list当中,然后返回到queryBookAction中,然后Action把得到的值传送给querybookresult.jsp中。Map request=(Map)ActionContext.getContext().get(request);request.put(ls, list);JSP得到这个list之后,会将其中的值分别传给与其匹配的类。在页面中显示出来。input type=checkbox name=check value=$book

21、.boodid 在显示结果页面中有查询到的图书信息,还有2个修改和删除按钮以及一个复选框。这样就可以对查询到的图书信息进行相关的处理。 前面的复选框对应的是数据库中的boodid的值,boodid是插入图书信息数据库自动添加的一个值,在上面的查询结果传到list的时候,数据库中的boodid也会传出来给JSP页面中的checkbox接收。选中复选框就是选中了一个boodid,点击删除之后JSP页面会就将boodid和按钮的值传给dealqueryBookAction中,在这个Action中他先判断按钮的值,如果是删除boodid的值就会传到service.deletebook这个方法中。Adm

22、inService service= new AdminServiceImpl();if(submit.equals(删除)service.deletebook(id); 在这个方法中会创建一条删除语句。删除的对象就是与boodid相对应的那条数据库数据。因为考虑到有时会不只删除一条图书信息,可以选择多个boodid所以用一个for循环。for(int i=0;iid.length;i+)session.createQuery(delete Book where boodid=?).setString(0,idi).executeUpdate(); 如果用户选择的是修改按钮,dealquery

23、BookAction就会先得到boodid的值然后在将刚才查询到图书信息的值取过来再将它们显示到update.jsp 这个页面,这样用户就可以直接在原来的信息上修改。if(submit.equals(修改)ArrayList ls=service.querybookid(id);request.put(ls,ls); Book b=(Book) ls.get(0); return update.jsp; 用户要更改的信息改好之后点击保存,update.jsp页面就会就这些得到的值传给updatebookAction,由Action保存到一个list然后传给方法service.updateboo

24、k,由这个方法连接数据库并把list当中的值分别保存到数据库中,更新数据库的数据。Session session=factory.openSession();session.beginTransaction();Book book=(Book)session.get(Book.class, (Serializable) arr.get(6);book.setBookname(String)arr.get(0);book.setISBN(String)arr.get(1);book.setType(String)arr.get(2);book.setCbs(String)arr.get(3);b

25、ook.setPrice(Integer)arr.get(4);book.setCount(Integer)arr.get(5);session.update(book);数据库成功更新数据之后就会回到Action,Action会返回一个更新成功的信息显示在页面上。4.2.3添加借阅信息 当借阅者来借书的时候就需要添加借阅信息。添加借阅信息的页面比较简单。因为只实现了相当简单的功能就没有那么多的数据要填写。只有2个文本输入框。一个文本输入框填写借阅者的用户名一个文本框填写借阅者所借的书名,借书时间取系统当时时间。 图书管理员在JSP页面输入借阅的信息,这些数据传送给addBorrowInfoA

26、ction,Action保存传过来的数据然后传给方法servoce.addBorrowInfo,这个方法会连接数据库,并把得到的数据添加进去。 BorrowInfo borrowinfo=new BorrowInfo();borrowinfo.setBookname(bookname);borrowinfo.setBorrower(username);borrowtime=new Date();borrowinfo.setBorrowtime(borrowtime);AdminService service=new AdminServiceImpl();service.addBorrowInf

27、o(borrowinfo);4.2.4查询/删除借阅信息 查询借阅信息的界面与查询图书的界面大同小异,还是用一个textfield文本输入框来接收输入的信息,定义名为condition。页面将condition的值和按钮的值传给QueryBorrowInfoAction,Action保存的值传给service.queryBorrowList这个方法UserService service =new UserServiceImpl();ArrayLis list=service.queryBorrowList(condition, howsearch);service.queryBorrowLis

28、t得到传进来的数据时,判断按钮的值是按什么查询,然后根据不同的按钮创建不同的查询语句。最后根据condition的值进行查找。 if(!howearch.equals(显示所有) if (howearch.equals(按书名) Session session = factory.openSession();session.beginTransaction();Query query=session.createQuery(from BorrowInfo where bookname=?).setString(0, condition);session.beginTransaction().c

29、ommit();list= (ArrayList) query.list();session.close();查询之后还是将查询到的结果放在一个list当中,然后将这个list返回。list就会传到QueryBorrowInfoAction,Action得到这个list先判断这个list是否为空,如果为空则在页面上显示空记录。if(list.isEmpty() this.addActionError(空记录); return INPUT; 如果list不为Action就会将这个list传给页面请求。Map request = (Map)ActionContext.getContext().ge

30、t(request); request.put(ls, list); queryborrowinforesult.jsp就会请求得到list,然后list就传进了queryborrowinforesult.jsp。JSP页面就会将这些值取出来放进与其对应的类中。 查询结果在页面中显示出来,如果借阅者将书已经还回的话就需要将这条借阅信息删除,删除还是与删除图书差不多。首先要选定要删除的借阅信息的复选框然后点击删除。 这个复选框对应的是数据库中borrow表中的id值,它是每次添加借阅信息数据库自动添加的一个值。查询借阅信息的时候系统也会自动将数据库中的这个id取出来放到list当中。现在JSP页

31、面会将这个id值与按钮的值一起传给dealBorrowInfoAction,Action在将这个id值传进service.deleteborrowinfo这个方法。AdminService service= new AdminServiceImpl(); if(submit.equals(删除)service.deleteborrowinfo(id); Service.deleteborrowinfo这个方法得到id之后先进行一个for循环,然后创建一条删除语句,删除borrow表中与这个id相同的那条数据。Session session =factory.openSession(); ses

32、sion.beginTransaction(); for(int i=0;iid.length;i+)session.createQuery(delete BorrowInfo where id=?).setString(0,idi).executeUpdate(); session.beginTransaction().commit();session.close(); 4.3借阅者页面设计 借阅者页面只有查询图书、查询借阅信息和退出系统几个标签。借阅者不能有太多的权限,只能查找一下图书然后能根据自己的用户名查询一下自己的借阅信息。查询图书页面只有3个submit按钮和一个name为cond

33、ition的textfield文本输入框。JSP页面将接收到的数据传送给queryBookAction,queryBookAction用一个list保存condition和submit的值,然后传给service.queryBookList这个方法,在这个方法中先判断submit的值,根据submit的值的不同,方法将创建不同的查询语句,在配合condition的值就可以完成查询。借阅信息查询页面只有name为condition的textfield文本输入框和一个submit按钮。Textfield提示借阅者输入自己借书的用户名,然后就将取得的值传送给borrowerqueryborrowin

34、foAction,Action在将得到的condition值传给service.queryborrowinfo。这个方法直接创建一条查询语句,查询borrowinfo表中borrower与condition的值相匹配的那条数据。ArrayList list=new ArrayList(); Session session=factory.openSession(); session.beginTransaction();Query query=session.createQuery(from BorrowInfo where borrower=?).setString(0,username);

35、 session.beginTransaction().commit(); list=(ArrayList) query.list();session.close();然后将得到的结果存入一个list当中返回出来,Action就会的到返回的list,然后在Action中进行判断,如果list为空就提示空记录,如果list不为空,就将list传给JSP页面,在页面中将结果显示出来。点击退出系统的话,页面就会跳转到登陆界面。结束语在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对图书管理

36、的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。尽管该图书管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是图书管理系统所必需的。参考文献1 邬继成.J2EE开源编程精要15讲:整合Eclipse、Struts、Hibernate和Spring的Java Web 开发.北京:电子工业出版社,2008.12 刘宝林.Java程序设计与案例.北京:高等教育出版社,2004.113 牛丽平.UML 面向对象设计与分析基础教程.北京:清华大学出版社, 2007.74 张海藩,倪宁.软件工程.北京:人民邮电出版社,2010.2

37、5 武剑洁,陈传波,肖来元.软件测试技术.武汉:华中科技大学出版社,2008.106 严耀伟,王芳.计算机网络技术及应用.北京:人民邮电出版社,2009.97 王珊,萨师煊.数据库系统概论.北京:高等教务出版社,2006.58 徐国平,武装.网页设计与制作教程.北京:高等教育出版社,2008.6 9 彭作民,高茜.ASP.NET 3.5.北京.电子工业出版社,2009.910 严蔚敏,吴伟民.数据结构.北京.清华大学出版社,2007致谢在本次毕业设计中,我从指导老师身上学到了很多东西。他认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到很大的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此感谢他耐心的辅导。26

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁