版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图书馆管理系统的设计与实现图书馆管理系统的设计与实现摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,企业要生存要发展,要高效率地把企业活动有机地组织起来,就必须加强企业管理,即加强对企业内部的各种资源(人、财、物等)的有效管理,建立与自身特点相适应的管理信息系统。本文介绍了在Java语言环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统(MIS)的过程。通过分析传统的人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。文章详细介绍了图书馆管理信息系统的系统分析部分,包括可行性分析、组织机构分析、管理职能分析、业务流程分析、数据流程分析、数据字典、处理描述等等;系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。本系统界面友好,操作简单,比较实用。关键词:图书管理系统;数据库设计;Java语言图书馆管理系统的设计与实现THEDESIGNMENTANDACTUALIZATIONOFALIBRARYMANAGESYSTEMABSTRACTWithmoreandmorewidespreadandprofoundapplicationofinformationtechnologyinmanagement,theimplementofmanagementinformationsystemhasbecomematureintechnologystepbystep.Managinginformationsystemisanewsubject.Enterpriseneedsexistenceanddevelopment,soenterpriseactivitiesshouldbeorganizedefficientlyandorganically,whichmeanstighteninguptheenterprisemanagementandstrengtheningeffectivemanagementofanyresource(staff,finance,property,etc.)internaltheenterprise,andalsoestablishingamanagementinformationsystemfittinginwithitsowncharacteristics.ThisarticleintroducesthedetailedprocessofexploringamanagementinformationsystemundertheenvironmentofJavalanguage,utilizing“Top-Bottom”overallplanandastrategyaccordingto“Bottom-Top”applicationandexploitation.Thatistoestablishasetofeffectiveschemeforlibrarymanagementbycomputer,throughanalyzingdisadvantagesoftraditionallibrarymanagementbyhumanresources.Thisarticleemphasizesonthreesections.Thesystemanalysissectionoflibrarymanagementinformationincludesfeasibleanalysis,organizingorgansanalysis,managementfunctionanalysis,technologicalprocessofbusinessanalysis,technologicalprocessofdataanalysis,datadictionary,disposaldescriptionandthelike.Thesystemdesignsectionmainlyfocusesonsystemfunctiondesignanddatabasedesign.Andthesystemrealizationsectionhasprovidedseveralmajorprogramcharts,togetherwiththemainwindowsandprograms.Thiseconomicalandpragmaticsystemhasexplicitinterface,withsimpleoperation.Keywords:librarymanagementsystem;databasedesignment;Javalanguage图书馆管理系统的设计与实现TOC\o"1-5"\h\z\o"CurrentDocument"第1章引言- -1\o"CurrentDocument"本论文的设计目的就意义 ——-1\o"CurrentDocument"本论文研究的主要内容 ---2\o"CurrentDocument"第2章研究现状及设计目标—— 3\o"CurrentDocument"课题研究的现状 ----3\o"CurrentDocument"现行课题研究所存在的问题及解决方案 4\o"CurrentDocument"本系统的设计目标 4\o"CurrentDocument"第3章要解决的几个关键问题 5\o"CurrentDocument"当前课题研究中要解决的问题 5MIS系统的开发方法 5MIS系统的开发过程 5系统前台客户端的实现技术 7系统后台服务器的构建 7\o"CurrentDocument"课题中所涉及的关键技术及其复杂性分析 ------ 7采用的关键技术 7数据库结构设计 8数据库设计中的范式分析 9第4章系统结构与模型 -- --- 10\o"CurrentDocument"系统需求分析 10数据库结构分析 ------ 114.3数据库表设计 4.3数据库表设计 图书馆管理系统的设计与实现 12\o"CurrentDocument"第5章系统实现技术 16概述 ---- 16\o"CurrentDocument"系统模块窗体 16主窗体构建模块 16系统各功能窗体实现模块 18系统数据库操作模块 21\o"CurrentDocument"第6章性能测试与分析 24\o"CurrentDocument"应用程序测试 24面向对象的单元测试 24单元测试策略 24系统测试环境和结果 ---- 25系统性能分析 ---- 25\o"CurrentDocument"参考文献 26\o"CurrentDocument"致谢 27附录附录A开题报告附录B外文资料原文附录C外文资料译文附录D程序源代码附录E系统使用说明书图书馆管理系统的设计与实现第1章引言本论文的设计目的及意义随着人类社会的发展,人类对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就必不可少的[1][2]。而当今时代是一个飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,如果对信息管理的主要方式是基于文本、表格等纸介质的手工处理,数据信息处理工作量极大,容易出错;由于数据繁多,容易丢失,且不易查找[3]。基于这些问题,我认为有必要建立一个图书馆管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。图书馆管理系统是典型的信息管理系统(MIS),系统结构采用C/S架构,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面[4]。对于前者要求建立起数据一致性和完整性强、数据安全性好的库[5]。而对于后者则要求应用程序功能完备,易于使用等特点。开发该软件系统的一个目的是针对目前普遍的图书管理系统存在的功能不全,操作复杂,系统要求高等一系列问题,而想设想一个具有个性化的图书管理系统。该管理系统与MIS系统相联系,在图书馆内部建成可靠,方便,并且功能齐全的MIS系统。从而在图书馆对新旧书的反应;对书籍借阅的管理能力;对读者和图书馆工作人员的管理能力;对图书馆管理人员软件操作的适应时间和操作感觉这些方面都将大大的提高。当然对该软件的态度是渴望获得显著的社会效益。开发该系统的另一个目的是使其具有强大的实用价值,即它可以满足中小型图书馆的借阅与管理的需要。在一般的学校与科研机构,其下属的很多分支的研究中心,试验中心,各个学院,它们往往都有着自己的规模较大的图书资料室。而这些图书资料室由第1页共27页
图书馆管理系统的设计与实现于本身规模不大,因此其对书籍或资料的管理模式一般都比较旧,而且在没有能力同时也没有必要引进大型的图书馆管理软硬件的基础上,寻求一个针对中小型图书馆的管理软件是必要的。本论文研究的主要内容本次课题是针对企业或学校的图书馆书籍管理流程而详细设计一个图书馆管理系统。结合作者对软件的开发流程及开发工具的了解程度,同时考虑到软件系统完成后的可维护性,系统将采用Java语言来实现。Java语言除了具有一般面向对象语言的优点外,还具有一次编写,处处运行的突出优点,大大加强了软件系统的可移植性。管理信息系统(简称MIS)是介于信息论,经济管理理论,统计学与运筹学及计算机科学之间的一门边缘性,综合性,系统性的交叉科学,它是随着管理科学,信息技术,计算机技术等的发展而产生和发展起来的⑹。图书馆管理系统就是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端的应用程序的开发两个方面[7]。对于前者要求建立数据的一致性和完整性,对于后者则要求应用程序功能的完备,易于用等的特点。基于上述考虑本系统主要利用Eclipse作为前台客户端的应用开发工具,而系统后台服务器端的数据库则采用微软的Access2003数据库,以WINDOWSXP作为系统开发平台来开发此图书馆管理系统。另外本图书馆管理系统利用软件工程化思想和方法,总体上是采用结构化生命法进行系统分析和设计的,而系统实现等步骤则采用了原型法和面向对象的方法。文章中详细介绍了图书管理信息系统的系统分析部分,包括可行性分析、组织机构分析、管理职能分析、业务流程分析、数据流程分析、数据字典、处理描述等等;系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序;系统测试部分则给出了系统前期开发完成后所采用的系统的测试方法与测试结果。第2页共27页
图书馆管理系统的设计与实现第2章研究现状及设计目标课题研究的现状本课题是专门针对中小企业或学校而设计一个图书馆管理系统。虽然现在已经进入了信息化的时代,图书馆管理信息系统的开发技术也是在飞速的发展着,使得图书馆向社会提供了高质量、高效率的服务,在服务范围、服务层次以及服务内容方面均有着较大的创新,这也是知识经济时代对图书馆信息服务总的要求,但是在看到这些可喜的变化的同时,也应该同样注意到,由于经济,政治及文化发展不平衡等原因,现在有很多中小型图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。而对这些中小型图书馆来说,由于规模不大,也不适合投入大量的资金来购置昂贵的软硬件来改善工作坊式。总的来说,缺乏系统,规范并且廉价的信息管理手段。即使有一些中小型的图书馆已经装配了计算机,但是尚未用于信息管理,没有发挥它的最大效力,资源闲置比较突出,这也是中小型管理信息系统开发的一个基本环境。现行课题研究所存在的问题及解决方案数据处理手工操作的缺点是工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于这些问题,我认为有必要建立一个专门针对中小型图书馆的信息管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。第3页共27页
图书馆管理系统的设计与实现通过系统开发前期的调研,作者认为,要想比较好的解决上述问题,能否很好地控制住开发成本及系统运行成本是成功的关键所在。因此,在开发系统时所选用的技术及工具上,作者进行了认真仔细的研究,最后结合系统的需求分析,决定采用Java语言来开发该系统,前台的开发工具选用免费且功能强大的Eclipse,而后台数据库则选用微软的Access2003,从而可以很好的控制开发的成本,并且系统软件的运行的硬件需求也是中小型图书馆可以接受的。本系统的设计目标大学生活即将结束,经过大学四年理论课程的学习,以及校内校外的实践,极大的丰富了自身的理论基础,并且也具备了一些处理简单问题的能力,但即将踏上社会的我深知这还远远不够,因此我利用了毕业设计的机会,在老师的指导下去完成一个具有挑战性的,其具体应用及社会服务相结合的项目,深知通过对本课题所研究系统的设计与实现,将,检验自己学习所得,进一步巩固的所掌握知识,对我的能力有更高层次的突破,为进入社会工作打一个伏笔。希望通过对本课题的研究,开发出一个能满足中小型图书馆一般需求的图书馆信息管理系统。在软、硬件方面对系统的需求,软件要求易学,界面友好,容易掌握,可以很简单方便的管理各种图书信息。硬件的配置要求不能太高,这样可以很好的适应当前很多中小型的图书馆,从而使图书馆对新旧书的反应;对书籍借阅的管理能力;对读者和图书馆工作人员的管理能力;对图书馆管理人员软件操作的适应时间和操作感觉这些方面都大大的提高,推进其图书馆管理工作信息化的脚步,利用自己在大学四年来学习的知识来为社会做出一定的贡献。第4页共27页
图书馆管理系统的设计与实现第3章要解决的几个关键问题当前课题研究中要解决的问题图书馆管理系统就是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端的应用程序的开发两个方面。因此应该首先了解一个MIS系统开发的方法及过程,然后对系统的前端应用程序开发和后台数据库的建立分别进行分析与设计[8]。MIS系统的开发方法管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法等:(1)生命周期法(LifeCycleMethod)此方法是20世纪60年代发展起来的一种应用广泛且比较成熟的管理系统开发方法,它的基本思想是将系统的开发工作从开始到结束划分为若干个阶段,每个阶段都有明确的任务,而系统开发出来后,并不意味着生命周期的结束,而意味着根据组织的需要对系统的修改和重建的开始。(2)原型法(PrototypingMethod)此方法是20世纪80年代发展起来的,旨在改变生命周期法的缺点的一种系统开发方法,该法的开发思路是首先根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型,再在此基础上与用户交流,将模型不断补充、修改、完善,如此反复,最终直至用户和开发者都比较满意为止,从而形成一个相对稳定、较为理想的管理信息系统。(3)面向对象(ObjectOriented)这种开发方法是于20世纪80年代开始兴起的,是一种基于问题对象的自底向上的一种系统开发方法,这种方法的特点是以对象为基础,对象是分析问题和解决问题的核心。这也是本系统开发中所重点采用的开发方法。MIS系统的开发过程一个MIS系统的开发过程一般包括如下几个步骤:(1)需求分析需求分析主要是了解用户的需求。需求了解得越详细,程序的后期开发与维护费用第5页共27页
图书馆管理系统的设计与实现就会越少。一般的开发团队中,需求分析都是由资历较深的系统分析员或项目经理担当,可见它的重要性。需求分析制订好后,需要反复修改。将最后的结果交给用户审定,确认无误后,由系统分析员完成需求分析文档,再开始下一步工作。(2)概要设计概要设计紧跟在需求分析之后。用户需求明确后,将得到的数据分析后,开始构建数据库的逻辑结构。此时,数据库中的表格还未成形,通过各种分析工具(如PowerDesigner等)画出数据流图,最后就可抽象出数据库的具体表结构。这时由系统分析人员反复审核。确认所有的需求都考虑在内,没有遗漏后,就可以开始制订概要设计文档。概要设计文档形成后,整个程序的逻辑框架也就形成了。(3)详细设计概要设计完成后,根据设计中制订的业务模块。就可以进行详细分析设计了。详细设计就是将各个业务模块的窗口全部建好,各个窗口控件的处理代码全部用语言表达出。所以详细设计是整个系统中最繁琐的环节。详细设计完成后,整个程序就确定了,再由编程人员根据详细设计文档将代码完成。整个开发工作就宣告结束。(4)程序编码程序编码相对于其他环节来说比较简单,程序员只需要根据详细分析文档写程序编码,保证代码没有错误即可。程序编码需要注意的是整个程序书写中命名的规范化与编程风格的规范化,这需要较长时间的培养来形成。需要在不断的实践中形成自己独特的风格。总的来说,不要过分地追求复杂的算法,因为那可能会导致后期维护人员无法读懂你的代码而造成维护的困难。(5)测试与优化程序编码完成后,就需要测试。测试有几种类型,主要是测试代码有无逻辑错误以及在加载数据环境下程序的稳定性问题。测试工作中发现的错误应及时改正,然后将它记录到测试文档中。(6)打包发行测试完成,确认无误后。程序就可以打包发行了。此时系统正式提供给用户使用,项目进入后期维护阶段。以上是一个完整的MIS系统开发过程,其实不仅MIS系统,其他类型的程序开发也基本相同。第6页共27页
图书馆管理系统的设计与实现系统前台客户端的实现技术系统前台的实现方法可以有很多种选择,最终作者在开发语言上选用了面向对象的Java编程语言,开发工具选用的是开源工具Eclipse。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?概括来说,Java是一种简单的,面象对象的,分布式的,解释的,键壮的,安全的,结构的中立的,可移植的,性能很优异的,多线程的,动态的语言[9]。除了上述种种Java的令人着迷的语言特性,它还是一种在开源社区特别受到欢迎的语言,互联网上可供Java使用的免费工具非常多,尤其是开发工具Eclipse,它是一种开源但功能十分强大的软件开发工具,通过采用Eclipse来开发Java程序,可以大幅度的节约开发成本,这也解决了阻碍中小型图书馆管理信息化进程的一个主要的问题。系统后台服务器的构建本系统的后台数据库采用的是微软公司的Access2003数据库。Access2003是微软公司Office2003中文版套装软件中的关系数据库软件,是Access2000的重要升级。它继承了前期版本的各项优点,在Windows系列操作系统的支持下,以其友好的操作界面、强大的开发能力及完善的网络功能得到了用户的一致好评。Access是一个典型的开放式数据库系统,它可以和Windows系统下的其他应用程序共享数据库资源,支持多媒体技术,并可将声音、图片以及动画图象等存放在数据库中。提供了一个功能强大、使用方便灵活的信息管理环境,在用户和数据之间架起了一个桥梁,使得用户对数据的存取、分类和查看更为容易[10]。Access数据库其实是一种文件数据库。虽然Access的性能是比较差的。而且安全性很低,但它对系统的要求不高,维护起来比较简单,而且费用比较低。另外,它相对其他数据库而言,AccessODBC驱动程序所支持的SQL指令最齐全,因此本系统数据库选用Access2003作为后台的数据库。课题中所涉及的关键技术及其复杂性分析采用的关键技术目前较为流行的MIS开发方法是结构化生命周期开发方法,其基本思想是:用系统的思想和系统工程的方法,按用户至上的原则,结构化、模块化地自上而下对生命周期进行分析与设计。依据图书馆管理系统的特点以及本人对开发工具的熟悉程度,本系统采用面向对象的系统开发方法。确定系统的开发方法对之后的设计实现奠定了坚实的基第7页共27页
图书馆管理系统的设计与实现础,从而实现对系统构建过程中所需关键技术的选定。面向对象的系统开发方法(OO,ObjectOriented),是近年来受到关注的一种系统开发方法[11]。面向对象的系统开发方法的基本思想是将客观世界抽象地看成是若干相互联系的对象,然后根据对象和方法的特性研制出一套软件工具,使之能够映射为计算机软件系统结构模型和进程,从而实现信息系统的开发。数据库结构设计一个成功的信息管理系统,是建立在许多条件之上的,而数据库的结构设计是其中一个非常重要的条件和关键技术,甚至可以说数据库设计的好坏直接决定着一个信息管理系统成功。本系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试[11]。(1)数据库需求分析的任务是将业务管理工作流程转化为数据流,划分主题之间的边界,绘制出DFD图,并完成相应的数据字典[12]。(2)概念设计的任务是从DFD出发,绘制出本主题的实体一关系图,并列出各个实体与关系的纲要表。(3)逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体及关系的表名属性。(4)物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化,实现物理建库,完成数据库物理设计字典。(5)加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:(1)基本表的个数越少越好。(2)主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。(3)字段的个数越少越好。(4)所有基本表的设计均应尽量符合第三范式。严格按照上述流程与规则,结合前期进行的需求分析进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。系统数据库设计时要综合图书馆的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的第8页共27页
图书馆管理系统的设计与实现功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。数据库设计中的范式分析数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的[13]。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。数据库设计的步骤是:(1)数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有联机分析处理CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。(2)数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定[14]。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。(3)存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性[15]。(4)数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。(5)数据字典设计:用数据字典描述数据库的设计,便于维护和修改。以上设计完成后数据库和数据结构设计工作基本完成,只待系统实现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中,一个规范化数据库系统结构就建立起来了。第9页共27页
图书馆管理系统的设计与实现第4章系统结构与模型本系统以C/S结构实现,并且考虑到中小图书馆的实际情况,不能也没有必要购买昂贵的硬件服务器,因此采用胖客户机/瘦服务器的模式,将计算主要集中在前台客户端,后台的数据库只是负责数据的存储工作。接下来就对所要开发的系统进行分析研究。4.1系统需求分析整个软件生命周期中,开发所占的费用和时间都很小。后期维护工作一般要占整个软件生命周期的80%以上。所以系统分析很重要,一个好的系统分析可以减少很多后期维护工作。而设计一个性能良好的数据库系统,明确应用环境对系统的要求是首要的和最基本的。特别是数据应用非常广泛,非常复杂,要是事先没有对信息进行充分和细致的分析,这种设计就很难取得成功。通过需求分析阶段对图书管理系统的整个应用情况作全面的、详细的调查,确定图书管理的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些写成用户和数据库设计者都能够接受的文档。事实上,需求分析是数据库开发中最难的任务之一。因为,第一,系统本身是可变的,用户的需求必须不断调整,使之与这种变化相适应。第二,用户很难说清某部分工作的功能处理过程。所以,设计人员必须认识到:在整个需求分析以及系统设计过程中,用户参与的重要性,通过各种方法展开调查分析。图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅管理员、图书馆书籍管理人员和图书馆系统管理员。图书借阅管理员的需求是查询图书馆所存的图书、发放并管理图书证、完成借书还书的相关操作、罚款清缴等;图书馆书籍管理人员对图书馆馆内所藏图书进行管理,同时形成书籍报表以作分析;图书馆系统管理员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护并生成催还图书报表等,该角色应该具有系统全部的权限[16。归纳一下,系统所应完成的功能有:(1)系统管理:实现对系统操作员管理、系统参数配置、系统安全管理及切换用户的相关操作。第10页共27页
图书馆管理系统的设计与实现③乂力考图书馆管理系统的设计与实现(2)图书管理:实现对书籍信息的添加和维护的管理操作。(3)证件管理:实现对借阅证的发放、维护和注销的管理操作。(4)借书管理:实现对书籍出借、续借和出借信息的维护的管理操作。(5)还书管理:实现对书籍还入和过期罚款的管理操作。(6)信息一览:实现对书籍信息、借阅信息、读者信息以及催还清单进行方便察看的相关查询。(7)软件信息:软件版本说明及客服联系方式。数据库结构分析根据以上的需求分析,开始设计数据结构,即根据需求勾画出系统的数据流图。系统的顶层数据流图如图4.1所示。图4.1图4.1系统顶层数据流图系统将登录用户分为三种权限,分别是:系统管理员,图书操作员和借阅操作员。其中系统管理员具有最高权限,可以操作系统中的所有功能,包括添加系统用户。图书操作员为一种权限受控角色,其职能为向系统添加图书并对书库中的已有书籍的信息进行维护。借阅操作员也是一种权限受控角色,其主要职能为管理图书证的发放,挂失与注销,进行借书管理和还书管理的相关操作,察看系统的图书信息,借阅信息和读者信息,生成催还清单和完成罚款的清缴工作。根据需求分析及权限划分,可画出系统得0第11页共27页
图书馆管理系统的设计与实现图4.2第0层数据流图图书馆管理系统的设计与实现图4.2第0层数据流图其中书籍操作员的系统流程图较易理解,在此给出关于借阅操作员的数据流图如图所示。系统管理员的数据流图与借阅操作员的类似,但是多了管理系统登录用户和添加书籍的功能,为节约篇幅,不再复述。数据库表设计现在需要将上面所描述的数据库概念结构化为Access2003数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有计算关系,如一个表中有单价字段、数量字段,就不应第12页共27页图书馆管理系统的设计与实现读者库文件 借阅记录图4.3图书馆管理系统的设计与实现读者库文件 借阅记录图4.3借阅操作员部分数据流图该有一个总金额字段。如果程序运行过程中需要总金额,可以实时计算。不过在一些较常用的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减少由于表间互相关联而使用速度降低等问题。这就是所谓的第四范式。数据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时产生的错误。表与表相关联的外键最好是由程序自动生成的主键,这样数据库就比较规范了。数据库初期设计时一定要谨慎,把所有可能的情况都考虑进去,即使当时没有用到,也要将它留在数据库中作为备用字段以便将来扩充。程序一旦开始编码,就应该尽量避免再修改数据库。因为如果数据库结构一旦改变,所有与修改的数据表相关的业务都有可能受到影响,而某些影响还很难看到,这样就容易形成一个恶性循环。错误越改越多,越改越乱,最终导致程序的失败系统数据库设计时综合了图书馆的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,以设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型为目标,最终得到如下六张数据库表,可以满足当前设计系统的全部需求。各张表的详细设计如下所示。第13页共27页
图书馆管理系统的设计与实现(1)BOOKINFO:书籍信息表,详细设计如图4.4所示,图中各字段名称前钥匙状标识表示主键,以下若有雷同不再单独说明。字段名称数据类型BOOT:ID交本书籍工口(不可为空)BOOXNOE交本书籍名称〔不可为空)EOOJCAUTHOR交本书籍作者C不可为空)BOOKCLASS交本书籍类别BOOK_FITBLLSH交市出版社匚E数字价格C不可为空)BCiOJCFITBEESHDATE日期『时间出版日期BOOXINTO交本书籍简介EOOJCIffDATE日期『时间入库时间C不可为空)BOOK_STATE交本书籍状态愚t认为“在架”〕图4.4书籍信息表⑵BORROWINFO:借阅信息表,详细设计如图4.5所示。字段名称数据类型匚AMJD史本借书证号(不可为空JBOKROWDATE日期/时间惜出日明[不可为空】BCiKROW.RETUOTATE日期『时间应还日明(不可为空】BOOE_ID更本书籍编号(不可为空3图4.5借阅信息表(3)CARDMANAGER:证件信息表,详细设计如图4.6所示。字段名称数据类型CMCDID交本图书证号码(不可为空)CMCDNOE交本持去大姓名(不可为王)CMCD_EEFART交市持木人所在部门1不口」为空JCMUJ_AID交本持卡人现住址匚的FHDHE交本持天人联系电话匚烟)CLASS交本卡种(不可为空)CMCDSTATE交本状态CMCD_EA.TE日期/时间注册日期【不可为空)图4.6证件信息表⑷LOGIN:系统用户信息表,详细设计如图4.7所示。字段名称数据类型USERID神用户口(不可为空)F0TED0M史本用户权F艮〔不可为空)U5IEPASSN0KD型本用尸密码〔不可为空)图4.7系统用户信息表第14页共27页图书馆管理系统的设计与实现◎乂力D比号图书馆管理系统的设计与实现OPTION:系统配置参数表,详细设计如图4.8所示。字段名称数据类型匚□MMIZilISOOKAM0UBT数字普逋含员借书上眼(不可为空)SUTER_BOOE_AMOUUT数字高皴含员借书数量上限(不可为空)匚则叽口灯小口师数字含逋金员借书天数上限(不可为空)SUTERDAYAMOUNT数字高级合员借书天数上限(不可为空)FINISH加皿数字罚金谩置(不可为空)C0HTI1IUIDAIAMOUNT数字续借天数上限C不可为空)OFTIOMII)文本规则口(不可为空3图4.8系统配置参数表PUNISHINFO:借阅超期罚款信息表,详细设计如图4.9所示。字段名称数据类型FinnsHsum数字宜CkRE_ID文本罚款总领(不可为空)借书证号(不可为空)图4.9借阅超期罚款信息表第15页共27页
图书馆管理系统的设计与实现第5章系统实现技术概述经过系统分析和总体设计后,图书馆管理系统实现的前期工作已经完成,接下来使用工具把各个模块的功能加以实现。本系统采用Java语言实现,利用其其强大的面向对象特性,根据系统开发前期的系统分析,将图书管理系统的各个功能模块进行了封装,并在编码过程中严格遵守编码规范,力求使所编写的代码结构清晰,易读易懂,从而大大加强了系统的可维护性。本章将系统实现的过程做详细记载,图文共存,且对系统功能作了透彻分析,易于理解。系统模块窗体图书馆管理系统共包括八大模块:系统管理模块、图书管理模块、证件管理模块、借书管理模块、还书管理模块、信息一览模块、数据操作模块以及系统主窗体构建模块。下面以图文结合的方式介绍各个模块主要的实现技术方案。主窗体构建模块图5.1系统登录窗口本系统采用C/S架构,客户端支持多用户登录,为确保系统安全,每次启动时会自动弹出用户登录窗口,如图5.1图5.1系统登录窗口此时应在对应的输入栏内填入相应的系统用户ID和密码,然后点击登录按钮登录系统。系统将根据所客户机端填入的用户ID在服务器端进行判断,以确定登录用户权限种别。以系统管理员为例,成功登录系统后系统的显示界面如图5.2所示。第16页共27页
图书馆管理系统的设计与实现图5.2系统管理员成功登陆界面图书馆管理系统的设计与实现图5.2系统管理员成功登陆界面系统的登录权限的判定和分配主要在此模块内实现,而权限判定又是系统的核心功能之一,其实现的主要源代码如下。classBookManagerMain_this_windowAdapterextendsjava.awt.event.WindowAdapter{BookManagerMainadaptee;BookManagerMain_this_windowAdapter(BookManagerMainadaptee){this.adaptee=adaptee;)publicvoidwindowOpened(WindowEvente){adaptee.this_windowOpened(e);))classBookManagerMain_jMenuItemLogIn_actionAdapterimplementsjava.awt.event.ActionListener{BookManagerMainadaptee;BookManagerMain_jMenuItemLogIn_actionAdapter(BookManagerMainadaptee){this.adaptee=adaptee;)publicvoidactionPerformed(ActionEvente){adaptee.jMenuItemLogIn_actionPerformed(e);第17页共27页
图书馆管理系统的设计与实现))权限判定的操作被封装在setEnable()函数中,再系统主窗体构建时进行调用来进行权限判定,从而保证了系统的安全。privatevoidinitialize(){this.setSize(517,295);this.setContentPane(getJPanel());this.setBackground(newjava.awt.C010r(204,204,204));this.setResizable(false);this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);this.setJMenuBar(getJJMenuBar());this.setTitle("图书馆管理系统");this.addWindowListener(newBookManagerMain_this_windowAdapter(this));)系统各功能窗体实现模块系统的各个功能模块均是构建在系统主窗体上的,其核心的功能模块的主要实现窗体和代码如下所述[19。限于篇幅,详细的窗体设计样式和完整的源代码请参见附录。下面仅以证件管理模块中的注册图书证为例说明。系统图书证注册的关键功能即为向系统内添加一条新记录,这一个过程要涉及到读者信息表的查询及插入操作,具体实现代码如下。voidjButtonOK_mouseClicked(MouseEvente){//校验书名是否为空if(CARD_ID.getText().trim().equals("")){JOptionPane.showMessageDialog(null,”图书证编号不许为空!");return;)if(CARD_NAME.getText().trim().equals("")){JOptionPane.showMessageDialog(null,”持卡人名称不许为空!");return;第18页共27页
图书馆管理系统的设计与实现//判断图书证编号是否重复StringstrSQL;strSQL="select*fromCARDMANAGERwhereCARD_ID='"+CARD_ID.getText().trim()+"'";rs=db.getResult(strSQL);booleanisexist=false;try(isexist=rs.first();}catch(SQLExceptionex1){)//若用户名存在,提示警告信息if(isexist){JOptionPane.showMessageDialog(null,”此图书证编号已经被占用,请更换其它未使用编号!)CARD」D.setText("");CARD_NAME.setText("");CARD_DEPART.setText("");CARD_DATE.setText("");CARD_PHONE.setText("");CARD_ADD.setText("");CARD_STATE.setSelectedItem('综合性图书");CARD_CLASS.setSelectedItem("综合性图书");return;}//生成sql操作语句else{strSQL="insert into CARDMANAGER(CARD_ID,CARD_NAME,CARD_DEPART,CARD_DATE,CARD_PHONE,CARD_ADD,CARD_STATE,CARD_CLASS)"第19页共27页
图书馆管理系统的设计与实现+"values。";strSQL=strSQL+CARD_ID.getText().trim()+"','"+CARD_NAME.getText().trim()+"',";strSQL=strSQL+"'"+CARD_DEPART.getText().trim()+"','"+CARD_DATE.getText().trim()+"',";strSQL=strSQL+"'"+CARD_PHONE.getText().trim()+"','"+CARD_ADD.getText().trim()+"','"+CARD_STATE.getSelectedItem().toString().trim()+"','"+CARD_CLASS.getSelectedItem().toString().trim()+"')";//由数据库操作对象执行数据库操作,并返回操作成功失败的提示信息if(db.executeSql(strSQL)){JOptionPane.showMessageDialog(null,"添力口操作成功!");CARD_ID.setText("");CARD_NAME.setText("");CARD_DEPART.setText("");CARD_DATE.setText("");CARD_PHONE.setText("");CARD_ADD.setText("");CARD_STATE.setSelectedItem('综合性图书");CARD_CLASS.setSelectedItem("综合性图书");return;}else{JOptionPane.showMessageDialog(null,"办证日期不可为空,请重新操作!);CARD_ID.setText("");CARD_NAME.setText("");CARD_DEPART.setText("");CARD_DATE.setText("");CARD_PHONE.setText("");CARD_ADD.setText("");第20页共27页图书馆管理系统的设计与实现CARD_STATE.setSelectedItem('综合性图书");CARD_CLASS.setSelectedItem("综合性图书");return;)))其实现窗体如图5.3所示。图5.3添加图书信息界面系统数据库操作模块系统设计时,为保证系统的可维护性和可升级行,对系统后台数据库的连接和操作代码进行了单独的封装,保证了系统可以在后期进行方便的数据库升级,提高系统性能。其数据库操作模块的主要实现代码如下。packagebookmanager;//引入sql包importjava.sql.*;//数据库操作类publicclassDBManager{〃定义返回结果集ResultSetrs;//创建指定数据库的URL第21页共27页
图书馆管理系统的设计与实现Stringstrurl="jdbc:odbc:LibraryDB";//缺省构造方法publicDBManager(){}〃查询方法,返回查询结果集publicResultSetgetResult(Stringsql){try{//加载驱动程序Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");〃创建连接Connectionconn二DriverManager.getConnection(strurl);//创建statement对象Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//执行SQL语句,返回结果集ResultSetrs二stmt.executeQuery(sql);System.out.println("executeSql "+sql);//返回returnrs;}〃异常处理catch(Exceptione){System.out.println("getResult "+e.toString());〃若有异常,返回nullreturnnull;}}〃执行更新,删除语句方法publicbooleanexecuteSql(Stringsql){try{第22页共27页图书馆管理系统的设计与实现//加载驱动程序Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");〃创建连接Connectionconn二DriverManager.getConnection(strurl);//创建statement对象Statementstmt二conn.createStatement();//执行SQL语句,返回结果集stmt.executeUpdate(sql);System.out.println("executeUpdate "+sql);//提交到数据库mit();//返回true,表示操作成功returntrue;)catch(Exceptione){System.out.println("executeSql "+e.toString());//返回false,表示操作失败returnfalse;)))第23页共27页图书馆管理系统的设计与实现第6章性能测试与分析应用程序测试测试软件的经典策略是,从“小型测试开始”,逐步过度到“大型测试”。用软件测试的专用术语,就是从单元测试开始,逐步进入集成测试,最后进行确认测试和系统测试。对于传统的软件系统测试来说,单元测试集中测试最小的可编译的程序单元(过程模块),一旦把这些单元测试完之后,就把她们集中到程序结构中去;在集中过程中还进行一系列系统作为一个整体测试,以发现软件需求错误[20]。测试面向对象软件的策略与上述策略基本相同,但也有许多新特点。面向对象的单元测试当考虑面向对象的软件时,单元的概念改变了。“封装”导致了类和对象的定义,这意味着类和类的实例(对象)包括了属性(数据)和处理这些数据的操作(也成为方法或服务)。现在,最小可测试单元是封装起来的类和对象。一个类可以包含一组不同的操作,而一个特定的操作也可能存在于一组不同的类中。因此,对于面向对象的软件来说,单元的测试的含义发生了很大的变化[21]。测试面向对象的软件时,不能再孤立的测试单个操作,而应该把操作作为类的一部分来测试。例如,假设有一个类层次,操作X在超类中定义并被一组子类继承,每个子类都使用操作X,但是,X调用子类中定义的操作并处理子类的私有属性。由于在不同的子类中使用操作X的环境有微妙的差别,因此有必要在每个子类的语境中测试操作X。这就说明,当测试面向对象软件时,传统的单元测试方法是不适用的,不能再在“真空”中(即孤立地)测试单个测试。单元测试策略本系统编码完成后采用面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中职作物生产技术(植物栽培技术)试题及答案
- 云南省昭通市水富县2027届数学五下期末质量跟踪监视模拟试题含答案含解析
- 小学名著考试题及答案
- 南京消防考试题库及答案
- 2026年中职棉花加工与检验(棉花检验仪器操作)试题及答案
- 《腹部CT读片》课件
- 《产品质量检测》课程说课
- 上海绿城1期景观扩初
- 任务7柱的模板施工
- 生产车间现场标准化作业管理手册
- 海南省2023年中考英语试卷试题真题及答案(精校打印版)
- 夜间施工方案及安全措施
- 退伍留疆考试题库及答案
- 2025至2030全球及中国锂离子电池保护集成电路行业发展趋势分析与未来投资战略咨询研究报告
- 政法维稳工作课件
- 园区车辆安全管理培训课件
- 《农业技术推广》课件
- 啤酒市场营销策略考核试卷
- 安全环保主管竞聘
- 检测合同三方协议
- 小儿隐匿性阴茎手术
评论
0/150
提交评论