版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.z本科毕业设计〔论文〕题目:基于Java的图书管理信息系统的设计和实现院系:计算机科学系专业:计算机科学与技术姓名:指导教师:2012年4月10日-.z摘要图书管理信息系统是现在学校图书馆必不可少的系统。随着数字化信息技术的普及,将一些先进的信息技术结合运用到图书管的管理和效劳中。促进图书馆各部门之间协调工作,提高图书馆的工作效率,清晰反映图书的库存与读者的借阅情况,是本系统的开发目的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的数据信息管理。现今,有很多的图书馆都是初步的开场使用,甚至尚未使用计算机进展信息管理。根据调查得知,他们以前对信息管理的主要方式都是基于文本、表格等纸介质的手工处理,对于图书借阅情况的统计和核实等往往采用对借书卡的人工检查进展,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进展数据处理工作量大,容易出错;由于数据繁多,容易丧失,且不易查找。总的来说,缺乏系统,规的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比拟突出,所以图书管理系统的开发显得尤为重要。本系统使用到的开发工具是MyEclipse,它采用了当今软件设计的最新技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。使用J2SE进展界面设计,使用SQLServer2000建立数据库。本系统中解决了学校图书管理事务中的常用根本问题以及相关统计工作。实现图书管理员对图书的分类、录入和新进图书的根本操作,对图书借阅情况的查询和对系统的维护等。本系统中包含6个功能模块:管理员登录,读者管理,图书管理,图书借还,系统查询和系统维护。关键词:图书管理系统;信息技术;MyEclipse;J2SEAbstractThelibrarymanagementsystemisanessentialsystemforschoollibrarytoday.Withthepopularizeofthedigitalinformationtechnology,someadvancedinformationtechnologyarebinedwiththemanagementandserviceoflibrary.Topromotetheworkbetweeneveryapartment,toimprovetheworkingefficiencyandtoreflecttheinventoryoflibraryandtheborrowingclearlyarethepurposeaboutdevelopingsuchasystem.Asakindofcollectinganddistributingcenterofinformationresources,librarycontainsagreatnumberofdataaboutthelargenumberofmaterialoflibraryanduserborrowing.Nowadays,therearemanylibrariesjuststartorevennotuseputerstomanageinformation.Basedonthesurvey,theauthorgetsthatthemainwaytomanageinformationisdealtmanuallywithpaperte*tandpaperformsandsoon.Forthestatisticsandverificationofborrowingarecheckedmanually,aswellastheborrowingprivilegesanddays.Checkingmanuallyhasmanyproblems,notonlythelargeworkloadbutalsorangeofdatawhichmakemistakeseasily,arelosteasilyandaredifficulttofind.Totallyspeaking,manylibrariesareshortofsystematicalandnormativemanagementmeasure.Althoughsomelibrarieshasputers,theyarenotusedforinformationmanagement.Therearemanyidleresources,soitisvitaltodevelopthelibrarymanagementsystem.ThesystemuseMyEclipsewhichadoptedthenewesttechnologyofsoftwareatthepresent.Thenewestonehasmanyfeaturesincludedhighefficientdevelopment,fl*ibledesignandbeautifulsoftwareinterface.ThesystemwillbedesignedbyJ2EE,andbuilddatabasethroughSQLServer2000.Thesystemsolvesmanyusualbasicproblemsinschoollibrarymanagementservicesandrelevantstatisticalwork.Itmakesthebasicoperationoflibraryclassificationandnewentryofnewbooksaswellasqueryforbooklendingandmaintenanceforsystemetrue.Thesystemcontainssi*functionsinmodule:adminlogin,audiencemanagement,librarymanagement,librarycirculation,thesystemqueriesandsystemmaintenance.Keywords:librarymanagementsystem;informationtechnology;MyEclipse;J2SE目录21272摘要I5817第一章绪论119578第一节毕业设计主要任务13322第二节课题意义115144第三节论文的工作和安排125282第二章图书管理信息系统需求分析34599第一节可行性分析37423一、技术可行性320962二、经济可行性34474第二节图书管理信息系统需求概述322366一、系统目标322875三、用户类型和用户特性429528第三节图书管理信息系统需求模型413499一、功能描述413556二、图书管理员详细功能描述520432三、读者详细功能描述512945四、主要用例和用例描述67806第三章总体设计921404第一节数据库设计926949一、数据库设计概述927183二、图书信息表构造设计1016113三、图书类型信息表构造设计108861四、读者信息表构造设计1122644五、图书借阅信息表构造设计1116463六、用户信息表构造设计1210442七、数据库表间关系图136820第二节、系统总体构造设计1324803一、图书管理系统总体构造图138625二、系统管理员模块功能1412251三、读者管理模块功能1512813四、图书管理模块功能152581五、图书借还模块功能1530745六、系统查询模块功能1621991第四章、程序设计与编码1826206第一节、开发平台与工具184865一、J2SE平台188180二、开发系统所有工具1831157三、开发中使用的类与接口的描述1832532第二节、程序设计1914787一、程序设计概述1924895二、数据库的连接与关闭2031842三、登录模块程序设计2128067四、系统管理员功能模块的实现2311154五、读者管理功能模块的实现2528581六、查询功能模块的实现2720731七、图书管理功能模块的实现2728344八、图书借阅功能模块的实现2812530第五章、软件测试3013799第一节、软件测试的方法与步骤3010828第二节、测试用例设计与测试用例的运行过程及测试结果分析3120673一、模块测试3127178二、集成测试3228801三、验收测试3315090第三节、评价33943致3412281参考文献35-.z第一章绪论第一节毕业设计主要任务1.实现图书管理员对所藏图书的按类别、书名等多方面的添加、修改等管理;2.建立图书馆外借读者数据库,方便工作人员对读者进展添加、修改和删除等管理;3.实现新书订购管理,方便管理员订购新书和验收新书;4.实现借阅管理,方便管理员和读者对图书的查询与归还;5.实现图书管理系统的系统维护,方便管理员更改口令和对用户的添加、删除和修改的管理。第二节课题意义图书管理信息系统是现在学校图书馆必不可少的系统。随着数字化信息技术的普及,将一些先进的信息技术结合运用到图书管的管理和效劳中。促进图书馆各部门之间协调工作,提高图书馆的工作效率,清晰反映图书的库存与读者的借阅情况,是本系统的开发目的。随着计算机的广泛应用,其逐步成为现代化的标志。图书馆或者一些企业部,甚至是书店,在正常运行过程中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进展管理,及时了解各个环节息的变更,要对因此而产生的单据进展及时的处理,为了提高图书馆或者企业部对图书存销的自动化的管理,能够更快速的满足读者的要求,提高各种工作的效率,现对其设计相应的系统,以到达上述的目的。图书管理信息系统的主要功能是实现图书馆图书借阅和归还的管理的自动化。围绕这一主要功能,本系统涉及到以下核心功能:查询图书,新书订购图书归还等。除了这些核心功能外,还包括一些根本和辅助功能,它们是:管理员登录、读者管理、图书信息管理和借阅管理等。论文的工作和安排本次设计的目标是,促进图书馆各部门之间协调工作,提高图书馆的工作效率,清晰反映图书的库存与读者的借阅情况,规化的管理读者用户,设定不同用户权限,实现图书管理员对图书的查询,添加,修改和删除等,方便读者的使用,最终到达提高图书馆资源利用效率。论文设计实现了图书馆管理信息系统,可以根据管理员的工作安排,对图书馆的的各种信息进展添加、删除、修改或查询操作。论文分为五个局部:第一章即本章绪论,简述图书管理系统这个课题的背景情况以及开发本系统的意义。第二章为需求分析,本章中明确了系统需要实现的功能,分析了系统的用例,并介绍根据系统的需求选择的开发工具和技术的概况。第三章是总体设计,详细描述了本系统中数据库的设计情况,并给出了系统总体界面的设计方案。第四章为程序设计与编码各主要功能模块的实现方法和局部关键代码,同时提供了个主要界面运行的参考图片,以更直观了解系统的实现情况。第五章是软件测试,测试系统功能实现并对测试结果进展记录分析第二章图书管理信息系统需求分析第一节可行性分析采用现代化统一的计算机信息系统,能够有效优化图书馆管理系统,使其高效的发挥最大作用,能够迅捷的为读者提供相应的效劳。开发本系统的可行性研究如下:一、技术可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用Java开发出友好的人机界面,便于用户理解、操作。使用MyEclipse作为开发工具,使用方面、规性强。数据库管理系统采用SQLServer2000,它能够处理大量数据,同时保持数据的完整性、平安性。因此本系统的开发平台已成熟可行。硬件方面,在科技飞速开展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越廉价,因此硬件平台也能够满足本系统所需。二、经济可行性鉴于计算机技术开展异常迅猛,在硬件软件配置以及开发技术均以可行的情况下开发这样一个管理系统本钱不会很高,但其可以大大提高图书馆的工作效率,也是图书馆管理开展的必然趋势,其必将有比拟宽阔的市场,因此该系统在经济可行性上是可行的。第二节图书管理信息系统需求概述一、系统目标该系统主要建立一个基于C/S模式的图书馆借阅管理系统,面对当起很多小型图书管理仍是人工管理带来的检索速度慢,效率低,借阅归还图书量大,图书统计工作量大,藏书不能完成及时更新的问题,该系统可以对跟系统的三个用户类型的使用实现:1.对于管理员在本系统的应用下可实现按照各种方式(如:书名,,作者)查询图书馆的藏书清单,添加图书和对读者归还图书,借阅图书情况查询等;2.对于图书馆工作人员能够便捷的对图书信息进展添加、修改、删除,分类管理等操作,对读者信息进展相关添加,修改,分类管理等操作;3.对于系统管理员可以对图书馆信息进展修改更新操作,对系统用户进展添加、修改、删除、权限设置等操作。三、用户类型和用户特性图书借阅管理系统是一个基于C/S模式的对图书馆进展高效率管理的应用系统,它的用户主要是读者和图书管理员,读者通过该系统进展图书查询进而对自己需要的图书进展借阅及自己的借阅情况进展查询,图书管理员则通过本系统实现对图书及读者的高效管理,除此之外,还需要一个系统管理员对不同的用户进展权限的设置等操作。三类用户的具体描述如下表所示:表2.1用户类描述图书管理员图书管理员是该系统的另一个重要使用者,图书管理员通过该系统进展图书的增加,修改,删除,分类管理等操作,实现对读者借阅归还续接图书的方便操作,实现对系统中图书,读者,读者借阅情况的查询,信息更改维护等操作,管理读者类型,对不同类型读者可借阅的图书数量进展设置等图书馆的根本操作。系统员系统管理员主要是图书馆管理系统中对用户的管理,实现用户添加修改删除以及用户权限设置等操作,实现对图书馆根本信息的修改维护等操作。第三节图书管理信息系统需求模型一、功能描述通过图书管理员对图书的根本管理,如:查询、录入、读者管理等,实现系统的根本功能:管理员登录:管理员输入用户名及密码,单击"登录〞按钮,进入图书馆管理界面;读者管理:通过"根底数据维护〞菜单下的"读者信息管理〞,对读者信息进展添加、修改、删除等操作;图书信息管理:通过"根底数据维护〞菜单下的"图书类别管理〞,对图书类别信息进展添加、修改、添加、查询等操作;新书管理:通过"新书订购管理〞,对订购新书信息进展添加、验收等操作;借阅管理:通过"借阅管理〞,对图书借阅信息进展添加,图书归还信息进展添加,图书信息进展查询等操作;系统维护:通过"系统维护〞,对当前管理员的密码进展修改,对用户信息进展添加,对用户信息进展修改及删除等操作;退出系统:通过"根底数据维护〞菜单下的"退出系统〞命令,退出当前操作系统。下面的系统用例图描述了整个系统用户之间的动作联系,及功能模块的概述。图2.1二、图书管理员详细功能描述管理员输入用户名及密码,单击"登录〞按钮,进入图书馆管理界面;1.读者管理功能:对读者的类型和读者档案进展管理,包括添加,修改,删除读者类型和读者用户的相关信息,管理不同类型读者借阅图书的数量。2.图书管理功能:包括对图书类型和具体图书信息的管理,可以增加,修改,删除图书,丰富具体图书的信息,对不同图书进展分类操作。3.图书借阅功能:可以完成对读者查询、借阅和还书的操作。4.新书管理功能:新书订购和验收新书等操作。5.系统维护功能:可以修改自己的登录密码,添加用户和对用户进展修改和删除的操作。三、读者详细功能描述通过"根底数据维护〞菜单下的"读者信息管理〞,对读者信息进展添加、修改、删除等操作;1.读者信息添加:添加读者信息。2.读者信息修改与删除:对读者信息修改和删除,查看读者信息情况等。四、主要用例和用例描述图书管理系统涉及到的用例包括:图书借阅,图书归还,读书查询,读者信息管理,图书信息管理,用户管理等,现就系统的主要用例图书借阅,图书归还,图书查询进展详细分析。用例"图书借阅〞表2.2用例名称图书借阅参与者图书管理员,系统管理员描述图书管理员可以通过查询等方式获得读者想借阅的图书的名称,编号,等其他可唯一识别的信息,向读者提供借阅请求,管理员在系统中记录相应信息,将图书交给读者,借阅成功。前置条件1.登录;2.进入图书借阅的页面后置条件更新图书借阅列表过程借阅图书1.读者请求借阅图书,并提供自己的编号2.学生用户提供想借阅的图书的标号3.系统存储学生用户和借阅的图书,并将之存储到数据库中4.系统更新借阅表优先级高用例"图书归还〞表2.3用例名称图书归还参与者图书管理员描述学生用户将自己借阅的图书归还图书馆。前置条件1.登录;2.进入图书归还页面后置条件更新图书归还列表;过程图书归还1.读者请求归还借阅的图书并提供自己的编号2.系统显示该读者的借阅信息表3.学生用户将要归还的图书交给管理员4.管理员点击要归还的图书并提交,系统存储归还信息,并将之存储到数据库中5.系统更新图书归还列表优先级高3)用例"图书查询〞表2.4用例名称图书查询参与者图书管理员描述图书管理员通过读者提供的图书名称,等信息对相应的图书进展查询。前置条件1.登录;2.转到图书查询页面后置条件查询页面显示相应的图书的信息主干过程图书查询1.管理员输入想要查询的图书信息2.系统显示相应的图书信息3.管理员点击读书名称,跳转到图书详细信息页面分支过程1输入信息时(第2步后)1.系统显示:请选择查询依据2.用户进展相应选择重新查询〔第2步后〕1.系统已经显示了相应图书信息2.读者想查询其他图书分支过程2查询的图书不存在〔第2步后〕1.管理员输入的图书信息不能在数据库中查询到2.系统显示暂时无该图书信息优先级高第三章总体设计第一节数据库设计一、数据库设计概述数据库是整个系统的基石,数据库的设计优劣直接影响到整个系统的设计成败,本节对数据库的设计进展专门阐述。数据库是数据管理的最新技术。十多年来数据库管理系统已从专用的应用程序开展成为通用的系统软件。由于数据库具有数据构造化,最低冗余度,较高的程序与数据独立性,易于扩大,易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。因此不仅大型计算机及中小型计算机,甚至微型机都配有数据库管理系统。数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用性和相容性,提高了决策的可靠性。目前,数据库已经成为现代信息系统不可分割的重要组成局部。数据库技术也是计算机领域中开展最快的技术之一。数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的根底之上,数据库的数据是一切操作的根底,如果数据库设计不好,则其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进展数据处理。设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是式,式是符合*一种级别的关系模式的集合。一般人们设计数据库遵循第三式。即:数据库表中不包含已在其他表中包含的非主关键字信息。采用式减少了数据冗余,节约了存储空间,同时加快了增、删、改的速度。整个系统所包括的信息有图书信息、读者信息、管理员信息、图书状态信息。可将这些信息抽象为以下系统所需要的数据项和数据构造:1.图书信息〔编号,类别,图书名称,作者,,译者,出版日期,单价〕2.学生用户信息〔编号,,性别,年龄,职业,有效证件,证件,最大借书量,,办证日期〕3.管理员信息〔编号,,性别,年龄,办证日期,联系,押金,密码〕4.图书借阅信息:〔读者编号,,押金,可借数量,图书编号,类别,名称,价格〕注:带下划线表示主键二、图书信息表构造设计图书信息表主要用于存储图书馆中所藏图书的相关信息,其中的相关信息是在图书入库时由图书管理员进展添加完善,此表主要用于读者和图书管理员对馆中图书的查询,系统用户根据图书的*个属性进展查询,便可得知图书的其他相关信息。表的具体结果如下:表3.1图书信息表tb_bookInfo字段名称数据类型字段长度可否为空说明ISBNvarcharDefaultNo〔Key〕图书编号BookNamevarchar50Yes书名writervarchar50Yes作者translatortvarchar50Yesdatevarchar50Yes图书入库时间pricevarchar50Yes预约状态三、图书类型信息表构造设计该表的设计主要是方便对图书的分类,和对图书的查询,在实际应用中图书管理员就是根据图书类型的不同将之分列在不同的书架,以方便读者的借阅寻找,其中可借阅天数项设置了不同类型图书的借阅期限,可根据图书的具体情况进展不同的维护管理,表的具体构造设计如下:表3.2图书类型信息表tb_bookType字段名称数据类型字段长度是否为空说明IDint10NoKeytypenamevarchar30Nodaysint10No可借阅天数四、读者信息表构造设计读者信息表的设计是为了图书馆管理员对读者进展管理,其中读者ID,不同类型证件的都是唯一的,是读者在借阅图书时需要输入对读者身份进展识别的信息,读者等信息室为了与读者进展联系,读者类型信息决定了读者一次性可借阅的图书的数量,注册时间可用于查询计算读者身份有效的期限,操作员是为了便于对信息才操作的查询。表的具体构造设计如下:表3.3读者信息表tb_reader字段名称数据类型字段长度是否为空说明Idint10NoKeynamevarchar20Nose*varchar4NoidentityCardvarchar30Notelvarchar20YespaperTypevarchar10No证件类型PaperNO.Varchar20No证件birthdaydateYesdztimedateNo登记时间operatorvarchar30No操作员五、图书借阅信息表构造设计该表的设计是用于对读者借阅图书进展管理,表中图书ID属性是对借阅图书的唯一性识别标识,读者ID号记录借阅的相应读者,结出时间记录了相应的归还时间,以及归还时是否超时,操作员是对借阅进展操作的人员的记录方便日后的查询,是否归还标识可查询当起读书是否被归还,表的具体构造设计如下:表3.4图书借阅信息表tb_borrow字段名称数据类型字段长度是否为空说明IDint10NoKeyReaderISBNvarchar10NobookISBNint10NoBorrowdatedateNo结出时间backdatedateNo应归还时间六、用户信息表构造设计该表的设计用于记录图书管理系统用户的信息,方便对用户的管理,表中包括用户ID和用户的登录密码,表的具体构造设计如下:表3.5系统用户信息表tb_order字段名称数据类型字段长度是否为空说明ISBNint10NoKeynamevarchar30NoNumbervarchar30No七、数据库表间关系图实现图书馆管理系统需要如下几表,tb_bookInfo存储图书信息,tb_reader存储学生用户信息,tb_operator存储管理员信息,tb_borrow存储借阅信息,tb_bookType存储图书类别信息,数据表之间的关系图如图3.1所示。图3.1表间关系图第二节、系统总体构造设计该系统在Windows98/2000/*P环境下,主要采用Java语言开发,SQLServer2000数据库来设计,开发过程与成果应符合GB/T11457-1995软件工程术语,GB/T8567-1988计算机软件产品开发文件编制指南等。一、图书管理系统总体构造图绘制系统构造图的过程,实际上就是对系统功能模块进展分解设计的过程,即合理地将数据流程图转变为所需要的系统构造图[8]。系统构造图将会使读者和用户能直观的了解系统的构造模式,理解系统的各个功能的构造,能很好地方便用户使用和理解整个系统。本系统的构造图如下:图3.2二、系统管理员模块功能该模块主要包括图书馆信息设置,用户管理,图书信息管理等。1.图书馆信息设置该功能选项用于系统管理员对图书馆名称,地址,联系方式,简介等信息的管理更新,以便于读者和外界人士对图书馆的了解。2.用户设置该功能子模块主要是系统管理员对系统用户的管理,通过此子模块的功能实现可以对用户进展添加、修改、删除、权限设置等操作,该子模块能将图书馆的不同工作细化到不同的相关人员,极提高了图书馆的工作效率。该操作是对tb_order表进展操作,在对用户进展了相关的操作后把操作后的最新信息存放在该表中。3.图书馆参数设置通过该子模块设置在图书馆办理临时读者证的费用及证件有效期限。该操作是对于tb_stockpile表进展,并把操作后的最新数据存放在该表中。三、读者管理模块功能该模块主要包含读者类型管理和读者信息管理两个子模块:图书类型管理该子模块是对图书馆系统用户图书的类型进展维护,修改等操作,在此模块中主要设置图书的类型,该操作是对于tb_bookType表进展,并将操作结果保存在该表中。读者信息管理该子模块是对读者的根本信息进展管理,可以对读者的根本信息进展添加,修改,删除操作,这下操作均是对tb_reader表进展的,并将操作后的结果保存在该表中。四、图书管理模块功能图书管理功能模块的实现如下面表中所示:表3.6图书管理描述图书管理功能描述对图书进展根本操作和信息管理的数据库表图书信息表:tb_bookInfo图书状态信息表:tb_borrow进展的操作图书入库、修改、删除图书,对图书的编号、、书名等根本信息进展管理产生的结果对图书根本操作管理,对不同图书参数进展各自信息的设置管理结果存储位置或输出结果存储在图书信息表(book)中,结果在当前页面和图书查询页面均可输出五、图书借还模块功能该功能模块主要实现对学生用户借阅、预约图书的操作,其中子模块各自的描述如下各表所列:表3.7图书借阅描述图书借阅管理功能描述对读者借阅图书进展根本操作和信息管理的数据库表图书信息表:tb_bookInfo读者信息表:tb_reader进展的操作对学生用户借阅图书进展管理产生的结果学生用户借阅成功,系统对借阅信息进展记录结果存储位置或输出结果存储在图书状态信息表(record)中,结果在图书借阅页面输出六、系统查询模块功能该模块包括对图书馆藏书进展查询,对读者借阅情况进展查询,以及对借阅到期和超期的读者进展提醒的信息,其中三个子模块的各自实习如下所示:表3.8图书查询描述图书查询功能描述系统用户对馆藏图书信息进展查询操作的数据库表图书信息表:tb_bookInfo进展的操作用户通过图书的编号,作者,等信息对图书进展相关查询产生的结果读者查询到相应的图书或系统提醒查询的图书不存在结果存储位置或输出结果在图书查询页面输出表3.17图书借阅查询描述图书借阅查询功能描述系统用户对读者借阅图书信息进展查询操作的数据库表图书借阅表:tb_borrow进展的操作用户通过图书的编号,读者编号等信息对摸个读者或*本图书的借阅情况进展相关查询产生的结果查询到相应的读者或图书得借阅情况结果存储位置或输出结果在图书查询页面输出表3.9图书借阅到期提醒描述图书借阅到期提醒管理功能描述对读者借阅的到期图书进展提醒的数据库表图书借阅表:tb_borrow读者信息表:tb_reader进展的操作对借阅到期和超期的读者进展提醒产生的结果向借阅到期和借阅超期的读者发送等提醒信息结果存储位置或输出结果存储在图书借阅到期提醒表第四章、程序设计与编码第一节、开发平台与工具一、J2SE平台J2SE是Java2standardedition是Java2的标准版,主要用于桌面应用软件的编程,StandardEdition(标准版)J2SE包含那些构成Java语言核心的类。比方:数据库连接、接口定义、输入/输出、网络编程。二、开发系统所有工具表4.1系统开发平台和工具工具名称用途MyEclipseSQLServer2000LJava开发工具包J2EE集成开发环境中小型关系数据库管理系统三、开发中使用的类与接口的描述1.开发图形界面所用类:JFrame:Swing的三个根本构造块:标签、按钮和文本字段;但是现在需要个地方安放它们,并希望用户知道如何处理它们。JFrame类就是解决这个问题的——它是一个容器,允许程序员把其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。JPanel:JPanel是一个容器,可以向其中添加其他的GUI组件〔如按钮utton组件〕;但是JPanel不是顶层容器,因此在屏幕上显示JPanel,必须将它添加到一个顶层容器〔如JFrame〕中。JSplitPane:SplitPane(分割面版)一次可将两个组件同时显示在两个显示区中,假设你想要同时在多个显示区显示组件,你便必须同时使用多个SplitPane。JLabel:用于短文本字符串或图像或二者的显示区。JTe*tField:是一个轻量级组件,它允许编辑单行文本。JTe*tArea:是一个显示纯文本的多行区域。JPasswordField:JPasswordField是一个轻量级组件,允许编辑单行文本,其视图指示键入容,但不显示原始字符。utton:"push"按钮的实现。通过Action可配置按钮,并进展一定程度的控制。JScrollpane:提供轻量级组件的scrollable视图。JScrollPane管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。oBo*:将按钮或可编辑字段与下拉列表组合的组件。用户可以从下拉列表中选择值,下拉列表在用户请求时显示。JRadioButton:实现一个单项选择按钮,此按钮项可被选择或取消选择,并可为用户显示其状态。ButtonGroup:此类用于为一组按钮创立一个多斥〔multiple-e*clusion〕作用域。使用一样的ButtonGroup对象创立一组按钮意味着"开启〞其中一个按钮时,将关闭组中的其他所有按钮。2.开发表格接收数据并显示所使用的类:Vector:可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进展的组件。但是,Vector的大小可以根据需要增大或缩小,以适应创立Vector后进展添加或移除项的操作。DefaultTableModel:这是TableModel的一个实现,它使用一个Vector来存储单元格的值对象,该Vector由多个Vector组成。JTable:用来显示和编辑常规二维单元表。3.开发树状构造目录所使用的类:DefaultMutableTreeNode:是树数据构造中的通用节点。为检查和修改节点的父节点和子节点提供操作,也为检查节点所属的树提供操作。DefaultTreeModel:使用TreeNodes的简单树数据模型。JTree:将分层数据集显示为轮廓的控件。树中特定的节点可以由TreePath〔封装节点及其所有祖先的对象〕标识,或由其显示行〔其中显示区域中的每一行都显示一个节点〕标识。4.开发数据库连接所使用的类:Connection:与特定数据库的连接〔会话〕。在连接上下文中执行SQL语句并返回结果。Connection对象的数据库能够提供描述其表、所支持的SQL语法、存储过程、此连接功能等等的信息。Statement:Statement对象表示根本语句,其中将单个方法应用于*一目标和一组参数,以返回结果。ResultSet:表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。5.开发对事件响应所实现的接口:ActionListener:用于接收操作事件的侦听器接口。对处理操作事件感兴趣的类可以实现此接口,而使用该类创立的对象可使用组件的addActionListener方法向该组件注册。在发生操作事件时,调用该对象的actionPerformed方法。MouseListener:用于接收组件上"感兴趣〞的鼠标事件〔按下、释放、单击、进入或离开〕的侦听器接口。然后使用组件的addMouseListener方法将从该类所创立的侦听器对象向该组件注册。当按下、释放或单击〔按下并释放〕鼠标时会生成鼠标事件。鼠标光标进入或离开组件时也会生成鼠标事件。发生鼠标事件时,将调用该侦听器对象中的相应方法,并将MouseEvent传递给该方法。TreeSelectionListener:当TreeSelectionModel中的选择发生更改时收到通知的侦听器。第二节、程序设计一、程序设计概述本系统是窗口式应用软件,采用C/S模式来设计,所以各个模块的每一个功能都要用窗口来显示。为了表达程序的封装性,每个窗口用一个类来实现。为实现窗口视图,应用的类都有继承窗口类对象,并实现事件响应监听接口,以便使用时产生相应功能的事件响应。 为表达窗口界面风格,在个窗口上各个控件的布局应当一致,用于显示的字体设置为同一字体,各窗口界面颜色须保持一致,以保证对用户的友好界面。具体实现过程现举例如下。二、数据库的连接与关闭利用JDBC数据库包含三个步骤:建立与数据库的连接;通过发送SQL语句对数据库进展读写;处理语句的执行结果,特别是查询语句的返回数据。数据库连接时采用连接池技术MySQL,具体代码实现如下:package.wsy.dao;importjava.sql.Connection;importjava.sql.Date;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLE*ception;importjava.sql.Timestamp;importjava.util.ArrayList;importjava.util.List;import.wsy.model.Back;import.wsy.model.BookInfo;import.wsy.model.BookType;import.wsy.model.Borrow;import.wsy.model.Operater;import.wsy.model.Order;import.wsy.model.OrderAndBookInfo;import.wsy.model.Reader;import.wsy.model.user;publicclassDao{ protectedstaticStringdbClassName=".microsoft.sqlserver.jdbc.SQLServerDriver"; protectedstaticStringdbUrl="jdbc:sqlserver://localhost:1433;DatabaseName=db_library_Data;SelectMethod=Cursor"; protectedstaticStringdbUser="sa"; protectedstaticStringdbPwd="123"; protectedstaticStringsecond=null; privatestaticConnectionconn=null; privateDao(){ try{ if(conn==null){ Class.forName(dbClassName).newInstance(); conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd); } else return; }catch(E*ceptionee){ ee.printStackTrace(); } } privatestaticResultSete*ecuteQuery(Stringsql){ try{ if(conn==null) newDao(); returnconn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).e*ecuteQuery(sql); }catch(SQLE*ceptione){ e.printStackTrace(); returnnull; }finally{ } } privatestaticinte*ecuteUpdate(Stringsql){ try{ if(conn==null) newDao(); returnconn.createStatement().e*ecuteUpdate(sql); }catch(SQLE*ceptione){ System.out.println(e.getMessage()); //if(e.getMessage().equals("[Microsoft][SQLServer2000DriverforJDBC][SQLServer]DELETE语句与COLUMNREFERENCE约束'FK_TB_BORRO_REFERENCE_TB_BOOKI'冲突。该冲突发生于数据库'db_library',表'tb_borrow',column'bookISBN'。")) return-1; }finally{ } }三、登录模块程序设计本模块主要是用户通过图书管理系统的首页登录进入该系统。用户输入正确的用户名和密码,系统会根据用户的身份进展相应权限划分;如果登录信息有错误,则系统提示登入错误的信息,并且制止系统用户进展任何操作。图书借阅管理系统的登录主页面如图4.1所示。图4.1实现此登陆模块的类与方法:此模块命名为Login,继承了JFrame类,并实现ActionListener接口,使用Jponent的子类JPanel作为容器,以便参加GUI组件,实现ActionListener接口中的actionPerformed方法,在构造函数中进展了容器及相应标签和按钮等的布局,并针对相应的组件调用事件相应的方法。其主要的对象及方法如下表:表4.2主要对象与方法功能与作用jp对象以便向该模块中添加GUI组件jlArray对象用于显示标签组〔如:用户名和密码等标签〕Array对象创立的按钮组〔如:学生登录和管理员登录按钮〕jt*tArray对象创立的文本框,用于接收键盘向其输入的字符串jpassword对象创立的密码框,用于接收键盘输入的密码并以特殊字符显示Login()方法此为该类的构造函数,对组件的布局及方法的调用封装在这里actionPerformed(ActionEvente)方法实现事件响应监听器接口中的方法,其响应的事件源有文本框、密码框和布局在此类中的按钮main()方法程序的入口,JVM识别此main方法从而编译该程序生成.class文件四、系统管理员功能模块的实现本模块中最主要的是管理系统用户,设置图书馆信息等操作,其中管理系统用户包括对他们进展添加,修改,删除及权限划分操作。其中系统管理员对系统用户进展管理的操作页面如以下图所示:图4.2其中对系统用户权限的设置是该操作的重要局部也是系统提高效率的关键所在,其主要实现代码为:publicstaticListselectBookCategory(){ Listlist=newArrayList(); Stringsql="select*fromtb_bookType"; ResultSetrs=Dao.e*ecuteQuery(sql);try{while(rs.ne*t()){ BookTypebookType=newBookType(); bookType.setId(rs.getString("id")); bookType.setTypeName(rs.getString("typeName")); bookType.setDays(rs.getString("days")); bookType.setFk(rs.getString("fk")); list.add(bookType); } }catch(E*ceptione){ e.printStackTrace(); } Dao.close();returnlist; }publicstaticListselectBookCategory(StringbookType){ Listlist=newArrayList(); Stringsql="selectdaysfromtb_bookTypewheretypeName='"+bookType+"'"; ResultSetrs=Dao.e*ecuteQuery(sql);try{while(rs.ne*t()){ BookTypetype=newBookType(); type.setDays(rs.getString("days")); list.add(type); } }catch(E*ceptione){ e.printStackTrace(); } Dao.close();returnlist; }实现此管理员管理模块的类与方法:此模块命名为Manager,继承了JPanel类,并实现ActionListener接口,使用JPanel作为容器,以便参加GUI组件,实现ActionListener接口中的actionPerformed方法,在构造函数中进展了容器及相应标签和按钮等的布局,并针对相应的事件编写了相应的方法,如:insertManager()方法编写了添加管理员的动作,其结果反响到数据库中的Manager表中,并在显示界面的JTable实例的对象中反响给用户。其主要的对象及方法如下表:表4.3主要对象与方法功能与作用jpt对象以便向该模块中添加GUI组件str1对象接收文本框中的String字符串的数组jt*tArray对象创立的文本框,用于接收键盘向其输入的字符串jlArray对象用于显示标签组〔如:管理员名和权限等标签〕Array对象创立的按钮组〔如:添加管理员和删除管理员按钮〕head对象由Vector实例化的对象,用于对显示给用户的表格创立表头data对象由Vector实例化的对象,用于存储表中数据的数组dtm对象由DefaultTableModel实例化的对象,用于创立表格模型的对象jt对象JTable的对象,用于显示给用户可见的结果jspn对象将JTable封装到滚动表格Manager(StringmgNo)方法Manager类的构造函数,封装了此模块的界面布局actionPerformed(ActionEvente)方法实现事件响应监听器接口中的方法,其响应的事件源有文本框和布局在此类中的按钮。并调用了此类中设计的方法insertManager()方法此方法实现了对管理员进展添加,其功能有判断管理员名格式是否正确的功能、执行添加管理员的功能,对数据库表进展操作的功能等deleteManager()方法此方法与insertManager()方法类似,其不同之处为此方法操作为从数据库表中删除记录updateManager()方法此方法是对管理员信息进展修改,对数据库中表的容进展了更新selectManager()方法对数据库的容进展查询操作,将查询的容显示到JTable实例化的对象中manager1()方法辅助上述四个方法,用于查询管理员名文本框中输入容是否存在于manager表中table()方法将查询到的容显示到JTable中main()方法程序的入口,JVM识别此main方法从而编译该程序生成.class文件五、读者管理功能模块的实现学生用户管理主要实现对学生的借阅权限管理和信息管理功能模块,其中学生用户借阅权限管理中需要设置不同的参数判断其是否有权限借阅图书,学生用户信息管理则主要管理维护学生用户的根本信息,其操作界面如下所示:图4.3该管理功能在设置学生信息时需要输入,性别,年龄,职业,证件,和押金等。这些信息都为必填选项。此模块命名为Student,继承了JPanel类,并实现ActionListener接口,使用JPanel作为容器,以便参加GUI组件,实现ActionListener接口中的actionPerformed方法,在构造函数中进展了容器及相应标签和按钮等的布局,调用了事件响应监听事件,并针对相应的事件编写了相应的方法,如:insertStudent()方法编写了添加学生用户的动作,其结果反响到数据库中的Student表中,并在显示界面的JTable实例的对象中反响给用户。实现此学生用户管理模块的对象与方法:表4.4主要对象与方法功能与作用jpt对象以便向该模块中添加GUI组件jcp对象oBo*实例化的对象,用于创立下拉列表框str对象创立下拉列表框数据模型的字符串数组str1对象接收文本框中的String字符串的数组jt*tArray对象创立的文本框,用于接收键盘向其输入的字符串jlArray对象用于显示标签组〔如:**和学生等标签〕Array对象创立的按钮组〔如:添加学生信息和删除学生信息按钮〕head对象由Vector实例化的对象,用于对显示给用户的表格创立表头data对象由Vector实例化的对象,用于存储表中数据的数组dtm对象由DefaultTableModel实例化的对象,用于创立表格模型的对象jt对象JTable的对象,用于显示给用户可见的结果jspn对象将JTable封装到滚动表格Student()方法Student类的构造函数,封装了此模块的界面布局和设置监听器actionPerformed(ActionEvente)方法实现事件响应监听器接口中的方法,其响应的事件源有文本框和布局在此类中的按钮。并调用了此类中设计的方法insertStudent()方法此方法实现了对学生用户进展添加,其功能有判断学生信息是否为空的功能、执行添加学生信息的功能、对数据库表进展操作的功能和显示结果到JTable中的功能deleteStudent()方法此方法与insertStudent()方法类似,其不同之处为此方法操作为从数据库表中删除记录updateStudent()方法此方法是对学生信息进展修改,对数据库中表的容进展了更新searchStudent()方法对数据库的容进展查询操作,将查询的容显示到JTable实例化的对象中六、查询功能模块的实现查询功能模块包括图书查询,读者借阅查询和借阅到期提醒三个子功能模块。1)图书查询可根据图书的条形码,书名,作者,等不同信息进展查询,其操作界面图以下图所示:图4.4七、图书管理功能模块的实现与学生管理模块类似,图书管理模块也为图书状态管理和图书信息管理模块,其中图书状态管理功能判断图书是否被借阅或被预约,图书信息管理是管理维护图书馆藏书的根本信息。其模块操作界面为:图4.5图4.6图书信息中包含图书的书号,书名,作者,,购置日期根本信息,是否预约,是否借阅默认项为"否〞,其文本框息都为必填项。实现此图书管理模块的过程简述:此模块命名为BookManager,继承了JPanel类,并实现ActionListener接口,使用JPanel作为容器,以便参加GUI组件,实现ActionListener接口中的actionPerformed方法,在构造函数中进展了容器及相应标签和按钮等的布局,调用了事件响应监听事件,并针对相应的事件编写了相应的方法,如:insertBook()方法编写了添加图书信息的动作,其结果反响到数据库中的Book表中,并在显示界面的JTable实例的对象中反响给用户。由于设计此类的过程与Manager类的过程类似,其主要的对象及方法在此不做赘述。八、图书借阅功能模块的实现1.图书归还。该子模块实现系统的图书归还功能,学生用户向图书管理员提供自己的编号会显示出学生当前的借阅情况,再提供要归还的图书编号,图书管理员将信息记录在系统中,归还成功。图书归还如以下图所示:图4.72.图书搜索实现管理员通过读者提供的图书信息进展查询,如以下图:图4.8第五章、软件测试第一节、软件测试的方法与步骤该系统在本地效劳器上进展运行和调试,鉴于对系统的部构造和处理算法的完全了解以及对系统功能的全面掌握对系统进展白盒测试和黑盒测试。在开发软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可防止地会产生错误。测试目的在于:发现错误而执行一个程序的过程,测试重要发现一个发现其未发现的错误。本系统的测试阶段信息流程以下图所示[15]。图5.1测试阶段信息流程图为了设计出有效地测试方案按照下面准则进展测试:所有测试都应追溯到用户需求;在完成了需求模型就要着手制定测试方案,在编码之前最所有测试工作进展方案和设计;运用Pareto原理着重对占出现错误80%的容易出错的20%的模块进展测试,从小规模开场逐步进展大规模测试,通常先重点测试单个程序模块再转向集成的模块簇;精心设计测试方案,尽可能充分覆盖程序逻辑使之到达要求的可靠性[15]。按照软件工程的观点,软件测试〔主要是指多模块程序的测试〕共包括4个层次。1)单元测试。单元测试的用例从单元详细设计中导出。在单元测试中可以采用功能性测试和构造性测试两种。2)集成测试和确认测试。这一阶段的任务,是通过了单元测试的模块逐步组装起来,通过测试与纠错,最终得到一个满足需求的目标软件。3)验证测试。在这个测试步骤中所发现的往往是需求规格说明的错误。一般来说,系统测试是功能性测试,不是构造性测试[15]。在整个测试中,采用了白盒测试和黑盒测试相结合的方法。第二节、测试用例设计与测试用例的运行过程及测试结果分析一、模块测试1.登录模块测试表5.1登录模块用例测试用例测试数据预期结果UC1:输入正确的用户名和密码用户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 29498-2024木门窗通用技术要求
- 2024年度汽车检测仪租赁合同示范文本2篇
- 中班活动教案教育课件
- 2024年度版权许可合同的许可使用期限与条件
- 2024年度文化艺术节赞助合同:某艺术节的赞助权益
- 2024年度供应链管理与优化合作合同
- 2024年度版权许可使用合同标的为一部电影
- 《齿轮传动K系数》课件
- 2024年度电视剧导演聘请合同3篇
- 2024年度企业培训与人才交流服务合同
- 《网络安全导论》
- 世界(全球)审计史
- 桥梁基础工程-桩基础
- 读懂央行资产负债表
- 网易公司战略分析报告书
- 2022年英语嘉年华主持词
- 四川省工伤保险待遇申请表
- 第七章移动商务
- 《平面直角坐标系第二课时》课件
- 种容易忽视的心脏病早期症状培训课件
- 骨质疏松规范化治疗课件
评论
0/150
提交评论