基于java的图书管理系统开发.docx
《基于java的图书管理系统开发.docx》由会员分享,可在线阅读,更多相关《基于java的图书管理系统开发.docx(33页珍藏版)》请在冰豆网上搜索。
基于java的图书管理系统开发
学号_02
毕业论文(设计)
课题基于Java的图书管理系统开发
学生姓名施会勇
系别电气工程系
专业班级电子信息工程
指导教师崔雪英
二0一二年五月
插图清单
图2-1图书馆管理系统功能结构………………………………………………………4
图2-2图书馆管理系统业务流程图……………………………………………………5
图3-1图书信息实体E-R图……………………………………………………………6
图3-2读者信息实体E-R图……………………………………………………………7
图3-3图书借阅信息实体E-R图………………………………………………………7
图3-4图书订购信息实体E-R图………………………………………………………7
图4-1图书馆管理系统主界面运行图…………………………………………………12
图5-1图书馆管理系统登录运行图……………………………………………………15
图6-1图书信息添加运行图……………………………………………………………21
图6-2图书借阅管理运行图……………………………………………………………22
图6-3图书归还管理运行图……………………………………………………………23
图6-4图书查询运行图…………………………………………………………………24
基于Java的图书管理系统开发
摘要
进入21世纪以来,信息技术从根本上推动了图书馆的飞速发展,计算机和计算机管理系统已成为图书馆进行图书管理的主要设备和系统。
虽然目前很多大型的图书馆已经有一套比较完善的管理系统,但是在一些中小型的图书馆中,大部分工作仍需手工完成,工作起来效率比较低,不便于动态,及时地调整图书结构。
为了更好的适应当前图书馆的管理需求,解决手工管理中存在的弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。
本文在此背景下运用Java技术开发了图书管理系统。
这个系统可以帮助管理员方便快捷的管理图书以及用户信息。
同时具有查询方便,搜索速度很快等特点。
在MySQL数据库的支持下,这款系统的存储信息量巨大,保密性能很强。
在分析了图书馆管理系统的需求基础上,本文完成了对系统功能的划分,数据库的设计,界面程序以及系统逻辑功能程序的设计。
系统运行证明,本文所设计的图书管理系统能够满足读者以及管理员的双方要求。
关键字:
图书管理;信息技术;数据库;Java
Abstract
Sincethebeginningofthe21stcentury,informationtechnologyfundamentallypromotetherapiddevelopmentofthelibrary,computersandcomputersystemshavebecomealibrarybookmanagementequipmentandsystems.Althoughcurrentlymanylargelibrarieshaveasetofrelativelycompletemanagementsystem,butinsomesmallandmedium-sizedlibrary,mostoftheworkstillneedstomanuallycomplete,workefficiencyisrelativelylow,doesnotfacilitatedynamicandtimelyadjustmentstothestructureofbooks.Inordertobetteradapttothecurrentlibrarymanagementneedstosolvethedrawbacksofmanualmanagement,moreandmoresmallandmedium-sizedlibraryisgraduallyshifttothecomputerinformationmanagement.
Inthiscontext,hasdevelopedalibrarymanagementsystemusingJavatechnology.Thissystemcanhelpadministratorsconvenientmanagementbooks,anduserinformation.Alsohasconvenientquery,thesearchisfastandsoon.MySQLdatabasesupport,ahugeamountofinformationofthissystemofstorage,thestrongperformanceofconfidentiality.
Onthebasisofanalysisoftheneedsofthelibrarymanagementsystem,completedthedivisionofthesystemfunctions,databasedesign,interfacedesignoftheprogramandsystemlogicfunctionprogram.Systemoperationprovesthatthelibrarymanagementsystemdesignedtomeetboththereadersandadministratorsrequirements
KeyWords:
Booksmanage;Informationtechnology;Databases;Java
第一章综述
随着各高校图书馆的图书数量不断增多和图书馆规模的不断扩大,管理这些庞大的图书体系非常困难的,因为图书的情况是随时改变的,因此必需对图书进行动态的管理,而这对于一个管理人员来说是一件比较复杂的事情,存储、查询、借阅是必不可少的业务。
为了能让管理员比较轻松的工作,使管理员在使用一个软件以后能极其容易地对所有图书进行管理,并且准确无误,轻松自如。
因此开发一个图书馆管理软件是当务之急,也是本毕业设计选题的重要意义和研究宗旨。
图书馆管理系统的流通部分是所有图书馆系统中最重要的部分,流通系统将读者与图书、读者与管理员、读者与读者相互间联系起来,而且流通系统处理的数据类型多,数量大,精细且频繁,因而需要系统应具备较完善的检验防错功能,从而根据系统的运行及反馈信息高质量,高效率地管理系统流通部门的全部功能。
1.1图书馆管理系统开发背景
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
1.2图书馆管理系统的目的和意义
我们要实现科学技术现代化,图书情报工作的现代化是极其重要的,又由于科学和技术的不断发展和进步,现代技术是一个动态的概念.第二次世界大战以来,以计算机技术为代表的现代技术有了巨大的发展,而且还在迅速的变化发展之中,70年代后期,出现图书情报工作的“联机革命”,使计算机更广泛地,更有效的应用到各个角落,发达国家较重视这一领域的发展,我国尚存在较大的差距。
所以我们说,图书情报工作计算机化是提高我国科学技术水平的一项带有重大战略意义的措施,它是图书情报工作现代化的重要标志。
计算机技术是现代技术的一部分,图书自动化也只是图书馆现代化的一部分,它们之间是部分和整体的关系,但由于计算机技术是信息技术的心脏,现代社会的骄子,信息社会的科技主角,所以在图书馆现代技术中,计算机技术处于核心地位,它对于其他现代化设备起控制,连接和转换的作用,而图书馆自动化是图书馆现代化的核心和主导部分。
图书情报的计算机管理系统能提高图书馆本身管理水平,能代替工作人员进行图书情报资料的某些加工处理,把工作人员从繁重的手工劳动,重复劳动中解放出来。
总之,建立图书馆的计算机自动化管理系统,不但可以大大提高图书馆图书流通率,而且推动了社会文化生活的进步。
本论文以图书馆管理信息系统的需求分析及概念设计为切入点,运用理论与实际相结合的方法,构建一个包含读者信息,书籍信息和借阅信息的图书馆管理系统。
图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
因此本人结合开放式图书馆的要求,对MySQL数据库、Java程序设计进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。
希望本文所设计的图书馆管理系统能够满足借阅者和图书馆管理人员的需求。
1.3Java语言的简单介绍
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是有SunMicrosystems公司与1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
Java技术具有卓越的通用性,高效性,平台移植性和安全性,广泛应用于个人PC,数据中心,游戏控制台,科学超级计算机,移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
基于Java的可移植性和高效性等特点,在设计本系统的时候选用了Java语言。
1.4MVC模式的介绍以及在本系统中的使用
MVC是三个单词的缩写,分别为:
模型(Model),视图(View),控制(Controller)。
MVC模式的目的就是实现系统的职能分工。
Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。
View层用于与用户的交互,通常在C/S系统中用swing+AWT实现,在B/S系统中常用jsp来实现。
Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
本系统采用了C/S结构。
C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。
对应的优点就是客户端响应速度快。
C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。
由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。
国内目前的大部分ERP(财务)软件产品即属于此类结构。
在本系统中模型(Model)层运用JavaBean技术,完成了各部分功能的实现,包括基础数据维护,图书借阅管理,新书订购管理和系统维护部分。
视图(View)层主要运用Swing技术,完成了对主界面,订阅界面等的显示。
控制层(Controller)的作用是整合模型层和视图层。
用户在界面层点击的事件,会通过控制层调用模型层相应的处理,从而形成相应的处理结果显示在界面中。
通过运用MVC思想后,整个系统将会显得很清晰,使代码更加的清晰。
也方便以后的维护。
第二章系统分析设计
作为一款图书管理系统,首先要完成它的基本功能。
在本次设计中,将根据调查过程后形成的流程图,将系统分为基础数据维护,图书借阅管理,新书订购管理以及系统维护四大功能模块。
在完成功能的设计过程中,要尽量使系统达到一些基本目标,下面将详细的介绍系统的整体结构以及需要达到的目标。
2.1系统目标
根据对系统的分析,该系统应达到以下目的。
1.界面设计友好、美观
2.数据存储安全、可靠
3.信息分类清晰、准确
4.强大的查询功能、保证数据查询的灵活性
5.系统安全、稳定
6.开发技术先进、功能完备、扩展性强
7.占用资源小、对硬件要求低
8.提供灵活、方便的权限设置功能、使整个系统的管理分工明确
2.2系统功能结构
图书馆管理系统分为4大功能模块,分别为“基础数据维护”、“图书借阅管理”、“新书订购管理”和“系统维护”。
本系统各个部分及其包括的具体功能模块如图2-1所示:
图2-1图书馆管理系统功能结构
2.3系统流程图
图书馆管理系统的业务流程如图2-2所示:
图2-2图书馆管理系统业务流程图
第三章数据库的设计
通常作为一个管理软件,它的数据部分都是由数据库来存储和管理的。
在本设计中数据库承担了图书信息和读者信息。
在如今的数据库产品中,有很多成熟的产品,如oracle,DB2,SQLServer,MySQL等,图书馆管理系统应用于高校的图书馆中,用户数据以及图书的信息数据并不是很大。
考虑到成本,选用了MySQL数据库。
下面将详细的为您介绍本设计中数据库的选择以及数据库的概念设计等。
3.1数据库分析
MySQL具有很强的完整性与可伸缩性,性价比很高。
考虑到本系统的稳定性、可靠性,我决定在设计该系统是选择MySQL数据库来满足系统的需求。
3.2数据库概念设计
根据以上对系统所作的需求分析、系统设计,规划出本系统中使用的数据库实体分别为图书信息实体、图书分类实体、图书订购实体、读者信息实体、图书借阅信息实体、库存信息实体。
以下为几个关键实体的E-R图。
1.图书信息实体
图书信息实体包括图书编号、图书类别编号、书名、作者、出版社、价格、出版时间等属性。
其中图书编号为图书信息实体的主键,图书类别编号为图书信息实体的外键,与图书分类实体具有外键关系。
图3-1图书信息实体E-R图
2.读者信息实体
读者信息实体包括条形码、姓名、性别、年龄、电话、办证日期、证件号码等属性。
其中条形码作为本实体的唯一标识。
图3-2读者信息实体E-R图
3.图书借阅信息实体
图书借阅信息实体包括编号、图书编号、读者编号、是否归还、借阅日期、归还日期等属性。
编号作为图书借阅信息实体的唯一标识,包括两个外键,分别为图书编号与读者编号。
图3-3图书借阅信息实体E-R图
4.图书订购实体
图书订购实体主要包括图书编号,订购日期、订购数量、是否验收等属性。
图书订购实体以图书编号与图书信息实体建立了关系。
图3-4图书订购信息实体E-R图
第四章主窗体设计
在整个系统中,主窗体部分显示了本系统的所有功能。
在主窗体的设计中运用了Swing技术,完成了对菜单栏以及工具栏的设计。
管理员通过主窗体可以进行相应的操作,实现系统的功能。
普通用户也可以利用主窗体中的工具栏进行常用的功能操作。
下面将详细的展现主窗体的设计细节部分。
4.1主窗体概述
管理员通过“系统登录”模块的验证后,可以登录到图书馆管理系统的主窗体。
系统主窗体主要包括菜单栏、工具栏。
用户在菜单栏中单击任一菜单项,即可执行相应的功能;工具栏为用户提供了经常使用的功能按钮。
4.2主窗体的实现过程
主窗体的实现过程如下:
1.创建Library类,在其构造函数中设置主窗体相关属性,如窗体大小、窗体标题等相关属性,还可以为窗体设置背景图片,并调用创建菜单栏与工具栏的方法,在主窗体中创建菜单栏与工具栏。
关键代码如下:
publicLibrary(){
super();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
setLocationByPlatform(true);
setSize(800,600);
setTitle("图书馆管理系统");
JMenuBarmenuBar=createMenu();//调用创建菜单栏的方法
setJMenuBar(menuBar);
JToolBartoolBar=createToolBar();//调用创建工具栏的方法
getContentPane().add(toolBar,BorderLayout.NORTH);
finalJLabellabel=newJLabel();
label.setBounds(0,0,0,0);
label.setIcon(null);//窗体背景
DESKTOP_PANE.addComponentListener(newComponentAdapter(){
publicvoidcomponentResized(finalComponentEvente){
Dimensionsize=e.getComponent().getSize();
label.setSize(e.getComponent().getSize());
label.setText("+size.height+"src='"
+this.getClass().getResource("/backImg.jpg")
+"'>");
}
});
DESKTOP_PANE.add(label,newInteger(Integer.MIN_VALUE));
getContentPane().add(DESKTOP_PANE);
}
2.编写创建菜单栏的方法
privateJMenuBarcreateMenu(){
JMenuBarmenuBar=newJMenuBar();
JMenubookOrderMenu=newJMenu();//初始化新书订购管理菜单
bookOrderMenu.setIcon(CreatecdIcon.add("xsdgcd.jpg"));
bookOrderMenu.add(MenuActions.NEWBOOK_ORDER);
bookOrderMenu.add(MenuActions.NEWBOOK_CHECK_ACCEPT);
JMenubaseMenu=newJMenu();//初始化基础数据维护菜单
baseMenu.setIcon(CreatecdIcon.add("jcsjcd.jpg"));
{
JMenureaderManagerMItem=newJMenu("读者信息管理");
readerManagerMItem.add(MenuActions.READER_ADD);
readerManagerMItem.add(MenuActions.READER_MODIFY);
JMenubookTypeManageMItem=newJMenu("图书类别管理");
bookTypeManageMItem.add(MenuActions.BOOKTYPE_ADD);
bookTypeManageMItem.add(MenuActions.BOOKTYPE_MODIFY);
JMenumenu=newJMenu("图书信息管理");
menu.add(MenuActions.BOOK_ADD);
menu.add(MenuActions.BOOK_MODIFY);
baseMenu.add(readerManagerMItem);
baseMenu.add(bookTypeManageMItem);
baseMenu.add(menu);
baseMenu.addSeparator();
baseMenu.add(MenuActions.EXIT);
}
JMenuborrowManageMenu=newJMenu();//借阅管理
borrowManageMenu.setIcon(CreatecdIcon.add("jyglcd.jpg"));
borrowManageMenu.add(MenuActions.BORROW);//借阅
borrowManageMenu.add(MenuActions.GIVE_BACK);//归还
borrowManageMenu.add(MenuActions.BOOK_SEARCH);//搜索
JMenusysManageMenu=newJMenu();//系统维护
sysManageMenu.setIcon(CreatecdIcon.add("jcwhcd.jpg"));
JMenuuserManageMItem=newJMenu("用户管理");//用户管理
userManageMItem.add(MenuActions.USER_ADD);
userManageMItem.add(MenuActions.USER_MODIFY);
sysManageMenu.add(MenuActions.MODIFY_PASSWORD);
sysManageMenu