图书馆管理系统_第1页
图书馆管理系统_第2页
图书馆管理系统_第3页
图书馆管理系统_第4页
图书馆管理系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、书山有路勤为径,学海无涯苦作舟。图书馆管理系统 图书馆管理系统 i 目录 摘要.iii前言.iii第一章图书馆管理系统分析.11.1需求分析.11.2功能分析.21.3系统用例图设计.21.4绘制系统流程图.31.5系统的开发环境.3第二章数据库分析与设计.42.1数据库分析.42.2数据库概念设计.42.3数据逻辑结构设计.62.4各表之间的联系图.8第三章系统设计与功能实现.83.1数据库dao类的构建.83.2系统登录模块.103.3主窗体模块.123.4图书类别管理模块.143.5图书信息管理模块.163.6读者信息管理模块.203.7图书订购管理模块.223.8图书借阅管理模块.24

2、3.9系统维护模块.27 ii 图书馆管理系统 摘要 图书馆管理系统是采用java做前台,后台数据库则采用的是sqlserver2021,本系统提供4个功能模块,分别是基础数据维护模块、新书订购管理模块、借阅模块,以及系统维护模块。这4个模块里又有许多子模块,通过这些模块之间的相互连接与配合,完成操作员发出的各种指令。 本文将全面介绍所设计的图书馆管理系统的系统功能和业务流程,并对系统进行详细的数据分析和设计,最终使用java完成系统开发。 关键词:图书馆管理系统,sqlserver2021,java 前言 随着社会的发展,人们对于知识的需求也在不断地增长。书籍作为人们获取并增长知识的主要途径

3、,使得图书馆在人们生活中占有了一定位置。但是近几年来,随着书量的不断增长,造成了书库空间极度不足,图书挤压,管理不善。这些都直接影响了读者对图书馆藏书的充分利用。这时图书馆就特别需要开发一套图书馆管理系统,通过该系统来提高图书馆的管理效率,从而减少管理方面的工作流和成本。 一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。面对图书馆数以万计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理出现漏洞,造成损失。因此有一个智能化、系统化、信息化的图书管理系统十分重要的。充分利用计算机的功能实现对读者管理、书籍管理,借阅管理

4、等自动化控制,将会使图书馆的工作大大减弱。方便友好的图形界面、简便的操作、完善的数据库管理。将会使得图书馆系统极大限度的应用于现代化图书管理中。 iii 第一章图书馆管理系统分析 1.1需求分析 图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能进行整合,从而达到显示检索信息,提高工作效率,降低管理成本等目的。一个典型的图书馆管理系统应该能够管理所有的图书种类,图书信息以及读者信息,还需要提供各种图书信息的检索查询功能。该系统还需要能够对图书的借阅,归还进行管理,并对读者的罚款进行自动计算。通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人员的工作任务,从而

5、降低管理开销和成本。 一个完整的图书馆管理系统包括前台和后台,前台主要是显示在计算机屏幕上的显示界面,有各种指令按钮,操作框以及文本框,后台主要是为前台的一些操作提供一些必要的数据,也就是一个相对于系统比较完整的数据库,操作员以及各类图书的信息,借书者的信息等等。 一个最基本的图书馆管理系统要有如下几个重要功能。(1)用户在借书超期的情况下得到来自管理员的提醒。 (2)管理员可以方便进行图书管理,用户管理,管理员管理。图书管理包括图书信息以及图书分类的添加,修改,删除。用户管理包括用户信息的添加,删除,修改。管理员管理包括管理员信息的添加,删除,修改等。 (3)用户和管理员可以修改自己的密码,

6、修改前需先核实自己的原始密码。(4)未注册用户(游客)也可以浏览所有的图书信息和分类信息,但是无法借阅。(5)实现模糊查询,使用户得到更多的相关记录。并且考虑使用的方便性,一些经常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户做选择就可以。(6)考虑程序执行操作时可能出现的情况,比如删除图书分类时该分类下存在图书,程序自动跳转该分类图书查看。删除某个用户,如果存在借书记录则不允许删除,跳转到该用户的借书记录。等待管理员确认该用户所借图书已经全部归还之后才允许删除该用户信息。 一个图书馆管理系统要是能实现以上的各种功能,那么这个图书馆管理系统也就算是比较成功的一个系统了。 1 1.2

7、功能分析 根据以上需求分析,我所设计的图书馆管理系统有4个功能模块,分别是基础数据维 护模块、新书订购管理模块、借阅模块,以及系统维护模块。其中各功能模块的具体说明如下: 基础数据维护模块包括:1读者信息管理模块:该模块主要负责管理图书馆的读者信息,如读者编号、读者信息、证件号码、最大借书量等信息。2图书类别管理模块:该模块主要负责管理图书馆的图书种类信息,如图书种类的名称、可借天数、罚款数目等信息。3图书信息管理模块:该模块主要负责管理图书馆的图书信息,如图书编号、图书名称、作者、出版社等信息。 新书订购管理模块。该模块主要负责管理图书馆的新书订购信息、包括新书订购和验收新书两个子模块。 图

8、书借阅管理模块。该模块主要负责图书馆的书籍借阅和归还信息,包括图书借阅、图书归还、图书搜索3个子模块。 系统维护模块。该模块主要负责图书馆的工作人员信息,包括用户管理和更改系统口令两个子模块。 1.3系统用例图设计 图书馆管理系统是一个内部人员使用的系统,也就是说不是所有的人都能够使用它,只有图书馆的工作人员才能使用。而图书馆的工作人员除了负责图书的借阅和归还的工作;还能够对书籍列表,书籍信息,读者信息等进行管理。下面以管理员为例绘制其所对应的用例图如图1.1所示。 图1.1管理员用例图 2 1.4绘制系统流程图 本系统首先需要对用户的身份进行识别,只有合法的用户才能进入系统,否则将无法进入系

9、统。进入系统后,首先打开系统主窗体,在系统首页的菜单栏或者功能区可以选择各种导航链接来进行各种操作。下面以管理员为例,其系统流程图如图1.2所示。 身份识别否是否为合法用户是主窗体图书类别管理图书信息管理读者信息管理新书订购管理图书借阅管理系统维护图书类别添加图书类别修改图书信息添加图书信息修改读者信息添加读者信息修改新书订购验收新书图书借阅图书归还图书搜索更改口令用户管理图1.2系统流程图 1.5系统的开发环境 图书馆管理系统的具体开发环境要求如下:(1)系统开发平台:myeclipse8.5。 (2)数据库管理系统软件:sqlserver2021。(3)运行平台:windows8。(4)j

10、ava开发包:jdk5.0以上。(5)分辨率:800600以上。 (6)gui开发包。swing。 3 第二章数据库分析与设计 2.1数据库分析 在开发图书馆管理系统时,考虑到图书量大,数据库维护大的特点,选用sqlserver2021作为数据库管理系统。在sqlserver2021中新增一个数据库,其数据库名为 db_library_data。数据库中可以包含图书信息、图书类别信息、图书借阅信息、操作员信息、图书订购信息及读者信息等实体,用来存储不同的信息。 2.2数据库概念设计 本系统一共设计规划出6个实体,分别是图书类别信息实体、图书信息实体、读者信息实体、操作员实体、图书借阅信息实体以

11、及图书订购信息实体。 图书的类别有很多,因此可以建立一个图书馆类别信息表,专门用来保存图书的类别信息。同时因为每种类别的书籍阅读时间有所不同,所以需要在类别表中保存该类别可借天数信息。图书类别信息实体e-r图如图2.1所示。 图2.1图书类别信息实体e-r图 对于图书馆来说最重要的就是要管理其下的书籍,所以需要建立一个图书信息表,用来保存图书的所有信息。图书信息实体e-r图如图2.2所示。 图2.2图书信息实体e-r图 要想在图书馆借书首先需要进行登记并交付押金。领取读书卡才能借书。所以需要建 4 立一个读者信息表来保存图书馆的所有读者的登记信息。读者信息实体e-r图如图2.3所示。 图2.3

12、读者信息实体e-r图 图书馆里一般有一个以上的系统操作员,需要建立一个操作员信息表,用来保存操作员的身份信息。操作员信息实体e-r图如图2.4所示。 图2.4操作员信息实体e-r图 图书馆最大的功能就是能够借书,这时需要建立一个图书借阅信息表,用来保存读者的借书信息。图书的借阅信息实体e-r图如图2.5所示。 图2.5图书的借阅信息实体e-r图 图书馆除了借书,还需要到出版社或其他代理商订购新书,这是需要建立一个图书订 5 购信息表,用来保存所有的订购信息。图书订购信息实体e-r图如图2.6所示。 图2.6图书订购信息实体e-r图 2.3数据逻辑结构设计 根据设计好的各实体e-r图创建数据库的

13、逻辑结构,数据库各表的结构如下:(1)图书类别信息采表用来储存所有的图书类别信息,包括图书类别编号、图书类别名称、可借天数以及迟还一天的罚款数目4个字段。该表的逻辑结构如表2.1所示。 表2.1图书类别信息表 字段名 idtypenamedaysfk 数据类型整数(int)文本(varchar)整数(int)浮点数是否主键 是否否否描述图书类别编号图书类别名称可借天数 迟还一天的罚款数目 (2)图书信息表用来储存所有的图书信息,包括图书编号、类别编号、图书名称、作者、译者、出版社、出版日期以及书籍价格8个字段。该表的逻辑结构如表2.2所示。 表2.2图书信息表 字段名 isbntypeidbo

14、oknamewritertranslatorpublisherdateprice 数据类型文本(varchar)整数(int)文本(varchar)文本(varchar)文本(varchar)文本(varchar)日期时间(datetime)金钱货币(money)是否主键 是否(外键) 否否否否否否描述图书编号类别编号图书名称作者译者出版社出版日期书籍价格 (3)读者信息表用来储存所有的读者信息,包括读者姓名、性别、年龄、证件号码、会员证有效日期、最大借书量、电话号码、押金、证件类型、职业、读者编号以及办证日期12个字段。该表的逻辑结构如表2.3所示。 6 表2.3读者信息表 字段名 name

15、sexageidentitycard datemaxnumtelkeepmoney zjzyisbnbztime 数据类型文本(varchar)文本(varchar)整数(int)文本(varchar)日期时间(datetime) 整数(int)文本(varchar)金钱货币(money) 整数(int)文本(varchar)文本(varchar)日期时间(datetime)是否主键 是否(外键) 否否否否否否否否是否描述读者姓名读者性别读者年龄证件号码会员证有效日期最大借书量电话号码押金证件类型职业读者编号办证日期 (4)操作员信息表用来保存操作员信息,包括操作员编号、用户名、性别、年龄、证

16、件号码、工作时间、电话号码、是否为管理员、密码9个字段。该表的逻辑结构如表2.4所示。 表2.4操作员信息表 字段名 idnamesexageidentitycardworkdateteladminpassword 数据类型整数(int)文本(varchar)文本(varchar)整数(int)文本(varchar)日期时间(datetime)文本(varchar)整数(int)文本(varchar)是否主键是(自动递增) 否否否否否否否否描述操作员编号用户名性别年龄证件号码工作时间电话号码是否为管理员 密码 (5)图书借阅信息表用来保存所有图书的借阅信息,包括借阅编号、书籍编号、操作员编号、

17、读者编号、是够归还、借书日期以及应还日期7字段。该表的逻辑结构如表2.5所示。 表2.5图书借阅信息表 字段名 idbookisbnoperatoridreaderisbnisback 数据类型整数(int)文本(varchar)整数(int)文本(varchar)整数(int) 7 是否主键是(自动递增)否(外键)否(外键)否(外键) 否描述借阅编号书籍编号操作员编号读者编号是否归还 resultsetrs=dao.executequery(sql);/执行查询/插入数据,关闭连接 对书籍编号进行检测,一般是在操作员输入完书籍编号,并准备输入其他信息时来完成。这是需要新建一个isbnffoc

18、uslistener监听类,该类继承了focusadoper类,并实现其中的focuslost,其实现代码如下: classisbnfocuslistenerextendsfocusadapter publicvoidfocuslost(focusevente) if(。dao.selectbookinfo(isbn.gettext.trim).isempty)joptionpane.showmessagedialog(null,添加书号重复。 return; 3.5.3图书信息添加 要添加书籍信息,首先要在dao中添加一个insertbook方法,通过该方法来接受用户输入的所有书籍信息,然后

19、执行插入操作。其主要方法如下: publicstaticintinsertbook(stringisbn,stringtypeid,stringbookname, stringwriter,stringtranslator,stringpublisher,datedate,doubleprice)inti=0;try stringsql=tb_bookinfo(isbn,typeid,bookname,writer,translator, values( i=dao.executeupdate(sql);/执行插入操作 18 3.5.4图书修改信息 修改图书信息同保存图书信息非常类似,首先在d

20、ao中添加一个方法updatebook。通过该方法来接收图书修改表单中提交的书籍信息。其代码如下: publicstaticintupdatebook(stringisbn,stringtypeid,stringbookname, stringwriter,stringtranslator,stringpublisher,datedate,doubleprice)inti=0;/更新记录数 trystringsql= typeid= writer=translator= publisher= date= price= i=dao.executeupdate(sql);/执行更新 修改图书信息,

21、是通过单击修改按钮执行的,上面我们已经为修改按钮注册了一个监听器,其对应的监听器类为updatebookactionlinter。下面来实现该监听器类,其实现代码如下: classupdatebookactionlistenerimplementsactionlistener publicvoidactionperformed(finalactionevente) inti=dao.updatebook(isbns,booktypes,booknames,writer,translators,publishers,date.valueof(pubdates),double.parsedoubl

22、e(prices); if(i=1)/如果返回更新记录数为1,表示修改成功 joptionpane.showmessagedialog(null,修改成功 objectresults=getfilestates(dao.selectbookinfo);/重新获得书籍信息 defaulttablemodelmodel=newdefaulttablemodel;/获得表格模型table.setmodel(model);/设置表格模型 model.setdatavector(results,columnnames);/设置模型数据和列名 19 3.6读者信息管理模块 读者信息管理模块包含两个子模块,

23、分别是读者信息添加和读者信息修改与删除。其中读者信息添加模块用来录入新的读者信息,读者信息修改与删除模块用来修改和删除已有的读者信息。其系统运行界面如图3.5所示。 图3.5读者信息管理模块运行界面 3.6.1读者信息添加 要添加读者信息,首先要在dao中添加一个insertreader方法,通过该方法来接受用户输入的所有读者信息,然后执行插入操作。其主要方法如下: publicstaticintinsertreader(stringname,stringsex,stringage,string identitycard,datedate,stringmaxnum,stringtel,doub

24、lekeepmoney,stringzj,stringzy,datebztime,stringisbn)inti=0; trystringsql= tel,keepmoney,zj,zy,bztime,isbn)values(identitycard+, system.out.println(sql); i=dao.executeupdate(sql);/执行插入操作 20 3.6.2读者信息修改与删除 修改与删除读者信息同保存读者信息非常类似,首先在dao中添加两个方法updatereader及delreader。通过这两个方法来接收图读者修改表单中提交的读者信息。其主要代码如下: publ

25、icstaticintupdatereader(stringid,stringname,stringsex,stringage,string identitycard,datedate,stringmaxnum,stringtel, doublekeepmoney,stringzj,stringzy,datebztime,stringisbn)inti=0; trystringsql= name= age=date=tel=zj= bztime= i=dao.executeupdate(sql);/执行更新catch(exceptione) dao.close;/关闭连接 e.printsta

26、cktrace; publicstaticintdelreader(stringisbn) inti=0; trystringsql= /system.out.println(sql);i=dao.executeupdate(sql); 21 catch(exceptione) e.printstacktrace; dao.close;/关闭连接 3.7图书订购管理模块 图书订购管理模块包含两个子模块,分别是新书订购和验收新书。其中新书订购模块用来录入新的图书信息,验收新书模块用来验收新书信息。其系统运行界面如图3.6和图3.7所示。 图3.6新书订购管理界面图3.7图书验收界面 3.7.1新

27、书订购管理 要添加新书订购信息,首先要在dao中添加一个insertbookorder方法,通过该方法来接受用户输入的所有新书订购信息,然后执行插入操作。其主要方法如下: publicstaticintinsertbookorder(stringisbn,datedate,stringnumber,string operator,stringcheckandaccept,doublezk) inti=0; trystringsql= tb_order(isbn,date,number,operator,checkandaccept,zk)values(ndaccept+ i=dao.execu

28、teupdate(sql);/执行插入 22 3.7.2图书验收 添加完图书订购信息后,我们还要对图书进行验收,首先要在dao中添加一个selectbookorder方法,通过该方法来查找出所有录入的新书订购信息,再添加一个updatecheckbookorder方法,通过该方法来对图书进行验收。其主要方法如下: publicstaticlistselectbookorder(booleanb) publicstaticintupdatecheckbookorder(stringisbn) inti=0; 23 listlist=newarraylist; stringsql=resultse

29、trs=dao.executequery(sql);/执行查询try while(rs.next) orderorder=neworder; order.setisbn(rs.getstring(order.setdate(rs.getdate(order.setnumber(rs.getstring(order.setoperator(rs.getstring(order.setzk( order.setcheckandaccept(list.add(order); catch(exceptione) dao.close;/关闭连接returnlist; e.printstacktrace;

30、 try stringsql= checkandaccept=0whereisbn= i=dao.executeupdate(sql);/执行更新catch(exceptione) dao.close;/关闭连接returni; e.printstacktrace; 3.8图书借阅管理模块 图书借阅管理模块包含三个子模块,分别是新书借阅、图书归还和图书搜索。其中图书借阅模块用来录入读者信息及所借阅的图书的信息,图书归还模块用来显示归还读者信息及所借阅的图书信息,图书搜索模块用来为读者提供图书搜索功能。其系统运行界面如图3.8、3.9和3.10所示。 图3.8图书借阅管理界面图3.9图书会还管理

31、界面 图3.10图书查询界面 24 3.8.1图书借阅 当读者想要对某图书进行借阅操作时,图书馆管理员必须将读者信息及所借阅的图书信息输入到数据库,此时,需要在dao中添加一个insertbookborrow方法,通过该方法录入读者信息及所借阅的图书信息。其主要方法如下: publicstaticintinsertbookborrow(stringbookisbn,stringreaderisbn,string operatorid,timestampborrowdate,timestampbackdate)inti=0; trystringsql= borrowdate,backdate)v

32、alues( i=dao.executeupdate(sql);/执行插入 3.8.2图书归还 当读者到图书馆还书时,图书馆管理员需要通过输入读者信息查找出读者所借阅的图书信息,此时,需要在dao中添加一个selectbookback方法,通过该方法查询出读者所借图书的信息。其主要方法如下: publicstaticlistselectbookback(stringreaderisbn) listlist=newarraylist; stringsql= a.bookname,a.typeid,b.id,b.operatorid,b.borrowdate,b.backdate,asreader

温馨提示

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

评论

0/150

提交评论