图书借阅管理系统设计与开发.doc_第1页
图书借阅管理系统设计与开发.doc_第2页
图书借阅管理系统设计与开发.doc_第3页
图书借阅管理系统设计与开发.doc_第4页
图书借阅管理系统设计与开发.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书借阅管理系统设计与开发引 论 书籍承载着几千年来人类发展史的成果,对书籍进行良好的保存和管理是使书籍发挥最大作用的保障。几千年来,人类在自身发展过程中留下了无数的知识和经验教训,这些大都以书籍的形式流传了下来,如何在浩瀚的书海中找到我们所需要的是我们所必须面对的一个问题。图书借阅管理系统就是为了实现对书籍进行科学,合理的管理,提高书籍的利用率而开发的。1 系统开发相关技术简介1.1管理信息系统定义 管理信息系统是一个宽泛的,不断发展的概念,至今在学术界并没有一个能被大家所接受的定义。随着计算机技术的更新换代与管理方法的不断发展,管理信息系统的外延和内涵也在不断的发生着变化。一般认为,管理信息系统并不像我们经常所说的系统软件,因为他并不是简简单单的一个系统软件,而是一个由人、计算机等组成的复杂系统,它的主要作用在于进行信息的收集、传输、存储、加工、维护和使用,通过这个系统人们可以更好的利用信息。在实践中综合运用各种技术手段,充分挖掘信息的价值,给管理人员在进行管理和决策时提供重要参考,以帮助他们做出科学,合理的管理和决策,同时也可以最大程度的避免由于决策失误该企业带来的损失。1.11管理系统的特点现代管理系统具有如下一些特点。(1)面向管理决策管理信息系统主要是对各种信息进行综合管理,提炼信息的价值,为管理者进行决策时提供参考,是一个为管理决策服务的系统。(2)进行全面管理管理信息系统可以在宏观上全面处理各种信息,其最终目的还是服务于企业管理者。(3)人机结合正如前文所说这并不是一个单纯的软件,需要人们参与其中,最终的决策还是需要人来完成,因此这是一个人机结合的系统(4)现代管理理方法和手段相结合管理信息系统是以先进的管理方法和手段为支撑的一个系统,只有这样才能满足现代管理的需要(5)多学科交叉 管理信息系统是在计算机科学技术,管理学,运筹学等学科基础之上发展起来的,综合各学科的优势来为管理提供决策支持。1.12管理信息系统的功能结构管理信息系统的功能结构主要包括以下结构。(1)信息处理结构;(2)决策层次结构;(3)管理职能结构;1.13管理信息系统的开发方法管理信息系统的开发方法主要有结构化方法,原型法,面向对象方法等。(1)结构化方法 所谓结构化系统开发方法指的是在系统开发过程中将结构与控制加入到整个系统项目中,并且严格规划时间和预算安排,保证项目在规定的时间和费用内完成。(2)原型法 原型法的主要思想就是先按照客户的需求构建出一个简单的原型,这个原型可以实现一些基本的功能,当客户试用后,再根据客户的反馈意见对原型进行修改,补充,如此不断循环往复,直到最后形成一个可以满足客户各方面需求的模型,就可以作为本次开发的结果了。其基本流程是:确定系统的基本需求;开发工作模型;模型验证;修改和改进;判定原型完成;判别细节说明;严格说明细节;判定原型效果;整理原型和提供文档。(3)面向对象方法 面向对象的方法主要是按照人类正常的思维习惯来进行系统的开发。面向对象方法中的对象就相当于现实世界中的每一个具体的事物或者是我们所抽象出来的概念。这也更能符合人类认知世界的一般过程,更容易为人们所接受和理解。1.2开发工具简介1.21 java简介Java是由Sun Microsystems公司于 1995年5月推出的Java面向对象程序设计语言和Java平台的总称。1995年的时候java正式作为一种编程语言被推向世界上所有的开发者。Java最初被称为Oak,开发目的是为了实现为消费类电子产品的嵌入式芯片开发提供一种简单易用的编程语言。在1995年的时候开始称为Java,其功能也越加强悍,因此人们重新设计了java,并把它用于开发Internet应用程序。Java编程语言相对于其他高级语言更加简单易懂,安全性更高,在不同平台之间可以方便的进行移植,功能强大,因此被广泛应用于面向对象的软件开发工作中。1.22 SQL语言简介结构化查询语言(Structured Query Language)简称SQL,结构化查询语言不仅是一种数据库查询语言,同时也是一种程序设计语言,广泛应用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是一种非过程化的高级编程语言,用户可以在高层数据结构上工作。它对用户如何存放数据没有要求,也不限制用户具体的数据存放方式,因此即便底层结构不同的数据库系统, 也可以使用相同的结构化查询语言来输入和管理数据。结构化查询语言语句不能进可以单独作为一种编程语言也可以嵌套在其他高级语言中,这使它相对于其他的语言具有更大的灵活性和强大的功能。2 系统总体设计2.1需求分析现实中图书管理系统一般面向两类用户:一类是管理员,一类是读者。对不同的用户提供的服务是有所区别的。对于读者,主要是满足读者的注册,登陆,基本信息管理,图书查询,预借,我的预借和我的节约等功能;对于管理员则需要满足用户管理,图书管理,分类管理和借阅管理等功能。2.2系统功能描述图书借阅管理系统主要包含用户注册,用户登录,读者操作,管理员操作四大功能模块。其各个功能模块包含的内容如下图所示2.3系统设计系统设计是以系统分析报告为依据,综合考虑经济,技术和运行环境等各方面的因素,来确定系统的总体结构和各个组成部分的技术实现方案,并采取适当的工具将设计的成果表达出来。系统设计包含总体结构设计和物理模型设计两部分。总体结构设计是对系统总体上进行一个宏观设计,对整个系统的功能划分,资源配置,数据存储以及整个系统的实现计划等方面做出合理的安排,以达到完善系统结构,优化系统流程的作用;物理模型设计偏向于具体的设施方案,包括代码设计,数据库的设计,人机界面的设计,处理过程设计和安全设计等,每个模块相互独立又互相联系,串联一起才能完成整个系统的设计。3 数据库设计3.1数据库分析选择一个好的数据库是保障系统成功运行的重要条件之一,本文选择SQL Sever2005作为本文的数据库。SQL Sever2005是微软开发的一个数据库系统,具有很强的可伸缩性和可用性,而且易于部署和使用,性价比也比较高,因此在本文采用它作为本文的数据库。3.2数据库设计 数据库设计包含两个部分:一是概念模型设计,通俗地讲就是E-R图设计;二是物理模型设计,也就是数据库表/字段的设计。3.21概念模型设计 从本文前面所进行需求分析,系统分析的基础之上,我们可以大概总结出本系统所使用的数据库实体分别为读者实体,管理员实体,图书实体,图书分类实体,图书预借实体和图书借阅实体。各个实体的E-R图如下所示:3.22物理建模 物理建模,也就是数据库建模,建立在前面所说的概念模型基础上,每一个实体对应一个数据库表,实体中的每一个属性对应数据库表中的一个字段。一个实体转化成一张数据库表,转化结果如下: 本章主要是对程序中所需的数据通过数据库来进行合理的安排,对不同的数据进行分类存放,提高数据的利用效率。好的数据库是程序正常,高效运行的基础,因此这部分是系统设计环节重要的一部分,应该给与足够的重视。4 系统功能模块实现4.1注册与登录模块实现 本模块的主要功能是实现用户注册与登录的功能,当用户没有账号时可以申请注册一个账号,如果已有账号输入正确的账号和密码时可以正常进入系统,如账号或密码错误则显示登录失败。具体实现注册的代码如下: Public class RegisterAction extends Action Private static final Log log=LogFactory.getLog(RegisterAction.class); Public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)RegisterForm registerForm = (RegisterForm) form; User user = registerForm.getUser(); Try UserService userservice = new UserServiceImpl(); Userservice.register(user); catch (ActionException e) If (e instanceof ExistNameActionException) request.setAttribute(“exceptionString”,e.getExceptionString () ); Log.debug (e.getExceptionString (),e); Return mapping.finForward (“failure”); Log.error (e); return mapping.findForward (“success”); 登陆实现代码如下: Public class LoginAction extends Action Private static final Log log = LogFactory.getLog (LoginAction.class); Public ActionForward excute (ActionMapping, ActionForm form) , HttpServletRequest request,HttpServletResponse response) LoginForm loginForm = (LoginForm) form ; String loginName = loginForm.getLoginName () ; String Password = loginForm.getpassword () ; String reqpage = request.getParameter (“pagename”) ; ActionForward actionforward = mapping.findForword (reqpage) ; Try UserService userservice = new UserServiceImpl () ; Userservice.login (loginName , password , request , response) ; catch (ActionException e) If (e instanceof NotFindActionException) request.setAttribute (“loginerrorString” , e.getExceptionString () ; Log.debug (e.getExceptionString() ,e); return actionForward ; else if (e instanceof InvalidPasswordActionException) request.setAttribute (“loginerrorString” , e.getExceptionString () ; Log.debug (e.getExceptionString () , e) ; Log.error(e) ; return actionforward ; 4.2图书查询模块的实现 图书查询有3种方式:全部图书,分类浏览和关键字搜索。4.21全部图书全部图书实现的代码如下: Public class BookAllAction extends Action Private static final Log log = LogFactory.getLog (BookAllAction.class) ; Public ActionForward excute (ActionMapping mapping,ActionForm form, HttpServletRequest request , HttpServletResponse response) if (!UserSession.isLogin(request , response) return mapping.findForward(“/main”); PageBean pageBean = PageBean.getPageBean(request , response) ; try BookService bookservice = new BookServiceImpl (); PageResult pageresult = bookservice.getBooks(pageBean) ; Request.setAttribute (“pageresult” , pageresult) ; catch (ActionException e) Log.error (e) ; return mapping.findForward (“success”) ; 4.22分类浏览 分类浏览实现的关键代码如下: Public class BookCategoryAction extends Action Private static final Log log = LogFactory.getLog(BookCategoryAction.class) ; Public ActionForward excute ( ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response) if (!UserSession.isLogin(request , response) return mapping.findForward(“/main”); int categoryNo = 0 ; String scategoryNo = request.getParameter(“categoryNo”) ; if (scategoryNo != null & !scategoryNo.equals (“”) ) categoryNo = ConverUtil.convertInt (scategoryNo) ; PageBean pageBean = PageBean.getPageBean(request , response) ; try BookService bookservice = new BookServiceImpl (); String categoryFullnname = bookservice.getCategorysFullname(categoryNo) ; int parentNo = 0; Category category = bookservice.getCategory (CategoryNo) ; if (category != null) parentNo = category.getParentNo () ; List categorylist = bookservice.getCategoryBooks(CategoryNo) ;pageResult pageresult = bookservice.getBooksByCategory(categoryNo , pageBean) ; request.setAttribute(“categoryfullname” , categoryfullname) ; request.setAttribute(“parentcategoryno” , pareNo); request.setAttribute(“categoryno” , categoryno) ; request.setAttribute(“categorylist” , categorylist); request.setAttribute(“pageresult” , pageresult); catch (ActionException e) Log.error (e) ; return mapping.findForward (“success”); 4.23关键字搜索关键字搜索实现的代码如下: Public class BookQuerjyAction extends Action Private static final Log log = LogFactory.getLog(BookQueryAction.class) ; Public ActionForward excute ( ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response) String findKey = request.getParameter(“findKey”) ; if (findKey = null) findKey = “” ; int findKey = 0; String sfindKey = request.getParameter(“findType”) ; if (sfindKey != null & !sfindType.equals(“”) findType = ConvertUtil.converInt(sfindType) ; PageBean pageBean = PageBean.getPageBean(request , response) ; try BookService bookservice = new BookServiceImpl ();pageResult pageresult = bookservice.findBooksByKey(findKey , findType ,pageBean) ;request.setAttribute(“findKey”,findKey); request.setAttribute(“findType” ,findType) ; request.setAttribute(“pageresult” ,pageresult) ; catch (ActionException e) Log.error(e) ; return mapping.findForward(“success”) ; 4.3用户管理用户管理包括用户列表,用户修改和用户删除,其具体实现大致相同,只需做简要修改即可,因此在此仅以用户列表为例,写出具体实现代码: Public class UserManAction extends Action Private static final Log log = LogFactory.getLog(UserManAction.class) ; Public ActionForward excute (ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response ) if ( !UserSession.isManager (request , response) return mapping.findForward (“/main”); pageBean pageBean = PageBean.getPageBean(request , response) ; try UserService userservice = new UserserviceImpl () ; PageResult pageresult = Userservice.getUserService (pageBean) ; request.setAttribute(“pageresult” , pageresult) ; catch ( ActionException e) Log.error (e); return mapping.findForward(“success”) ; 4.4 图书管理 图书管理包括图书列表,图书修改和图书删除三个模块,每个模块实现框架大致相同,因此在此仅以图书列表为例写出其具体实现代码: Public class BookManAction extends Action Private static final Log log = LogFactory.getLog(BookManAction.class) ; Public ActionForward excute (ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response ) if ( !UserSession.isManager (request , response) return mapping.findForward (“/main”); pageBean pageBean = PageBean.getPageBean(request , response) ; try BookService bookservice = new BookServiceImpl (); pageResult pageresult = bookservice.getBooks(pageBean) ; request.setAttribute(“pageresult” , pageresult) ; catch (ActionException e ) Log.error (e); return mapping.findForward(“success”) ; 4.5 分类管理 分类管理包括分类增加,分类列表,分类修改和分类删除,下面以分类增加为例写出具体实现代码: Public class CategoryAddSubAction extends Action Private static final Log log = LogFactory.getLog(CategoryAddSubAction.class) ; Public ActionForward excute (ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response ) if ( !UserSession.isManager (request , response) return mapping.findForward (“/main”); if (form instanceof CategoryForm) CategoryForm categoryform = (CategoryForm) form ; Category category = categoryform.getCategory () ; BookService bookservice = new BookServiceImpl (); try bookservice.addCategory(category) ; catch (ActionException e ) if (e instanceof ExistNameActionException) try Category parentcategory = bookservice.getCategory(category.getParentNo (); if (parentcategory = null) Parentcategory = new Category(); parentcategory.setName(“根分类”); parentcategory.setCategoryNo (0) ; request.setAttribute (“parentname” , parentcategory.getName () ; request.setAttribute (“parentNo” , parentcategory.getCategoryNo () ) ; catch (ActionException e1) Log.error (e1); request.setAttribute(“errorString” , e.getExceptionString() ; return mapping.findForward(“failure”) ; Log.error (e); else request.setAttribute(“errorString” ,”分类内容有误,请重新输入”) ; return mapping.findForward(“failure”) ; return mapping.findForward(“success”) ; 4.6借阅管理 借阅管理包括借阅,归还功能,下面以借阅为例写出实现代码: Public class BorrowSubAction extends Action Private static final Log log = LogFactory.getLog(BorrowSubAction.class) ; Public ActionForward excute (ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response ) if ( !UserSession.isManager (request , response) return mapping.findForward (“/main”); int preBorrowNo = 0 ; String spreBorrowNo = request.getParameter(“preBorrowNo”) ; if (spreBorrowNo != null&!spreBorrowNo.equals(“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论