JAVA图书馆管理系统课程设计报告.docx

上传人:夺命阿水 文档编号:403896 上传时间:2023-05-26 格式:DOCX 页数:14 大小:64.25KB
返回 下载 相关 举报
JAVA图书馆管理系统课程设计报告.docx_第1页
第1页 / 共14页
JAVA图书馆管理系统课程设计报告.docx_第2页
第2页 / 共14页
JAVA图书馆管理系统课程设计报告.docx_第3页
第3页 / 共14页
JAVA图书馆管理系统课程设计报告.docx_第4页
第4页 / 共14页
JAVA图书馆管理系统课程设计报告.docx_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《JAVA图书馆管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《JAVA图书馆管理系统课程设计报告.docx(14页珍藏版)》请在课桌文档上搜索。

1、图书馆管理系统1 .课程设计的目的目前,随着网络技术的飞速发展,各行各业都在追求信息化,以防在信息时代落伍,而普通高校也如此,图书馆是高校师生获得知识的一个重要渠道。因此一个健全的图书管理系统就必不可少,图书管理系统的使用大大的提高了图书馆的工作效率彳艮好的节省了大量的人力、物力和财力资源。管理信息系统的开辟是一个开辟周期长、技术要求高、影响因素多的复杂系统工程,因此制定一个完善、可行、合理的开辟计划,不仅是系统开辟成功的保证,而且可以提高效率、节省时间、降低成本。由于在过去人们对信息管理的主要方式是基于文本、表格等纸质的手工处理之上的,而用手工进行图书借阅管理存在多种弊端,其中包括图书过于繁

2、多,包含不少的信息数据的管理对于图书借阅情况如:借阅天数、超过限定借阅时间等等的统计和核实,往往采用对借阅卡的人工查询进行,对借阅天数等用人工计算、手抄进行。信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说缺乏系统、规范的管理手段人们操控起来是很艰难的;因此,使用电子化的管理手段将是大势所趋,建立一个图书管理系统也是图书管理部门提高工作效益的有效手段。系统能够合理高效地利用图书资源,使得图书借阅更加的科学合理。2 .设计方案论证2.1 需求分析对于一个图书管理系统来说,图书的查询及数据的维护管理是其中的核心环节。在现现行的图书管理中存在几个共同的问题:(1图书种类过多,

3、数据庞大;这是几乎所有图书馆都会遇到的共同问题,各种不同种类的图书馆为这些图书入库,进行添加于维护增加了不少的难题,对这些数据的反复输入,往往造成庞大的工作量和较低的效率。(2查询图书艰难,每天的借阅情况,读者借阅的到期、还书情况,各项数据的汇总和统计情况必须由管理员统计上报,图书库总管理员才干考虑对图书馆的硬件如某类书的需求数量进行改变已向上级申报。(3图书毁坏及图书破损;在借阅过程中难免此类现象的发生,如何及时发现及事后对毁坏图书进行淘汰和更新也是个需要解决的问题。(4不能及时归还图书;时常有读者超过借阅期的情况发生,对此类读者的超期信息提示也是图书借阅管理工作中必须解决的问题之一。本软件

4、主要有以下几方面的功能(1系统部份:主要完成本系统工程的维护工作(包括:添加用户、添加员工、修改密码(2图书管理部份:要完成图书基本信息的管理(包括:添加、修改、查询、删除图书基本信息(3借阅管理部份:主要完成图书借阅的管理(包括:图书借阅、归还、查询等2.2系统包含的类及类之间的关系本系统共包括15个JaVa源文件和1个辅助文件。类之间的关系如图1所示。图1类关系图AppBook.java该文件包含主函数入口,旨在创建登录界面对象并在屏幕中居中显示。FrLogin.java该文件是登录界面的封装类,定义并设置了登录界面相关组件及显示效果,还定义了登录、退出按钮的事件监听。功能:点击登录按钮,

5、对填写的信息进行验证并与数据库数据进行比对,匹配就登录成功进入主界面;取销按钮即可退出系统。FrMain.java该文件是主界面的封装类,定义并设置了主界面相关组件及显示效果,还定义了菜单栏上面各菜单项的监听事件,有系统管理:修改管理员密码、退出,基本操作:添加新读者、新书入库、借书、还书、续借、读者管理、图书管理,匡助:关于等10个事件的监听。功能:点击对应的菜单栏就会弹出对应的对话框,并传递需要的参数。FrChange.java该文件是修改用户密码界面的封装类,定义并设置了更改密码界面相关组件及显示效果,还定义了确定、取销按钮的事件监听。功能:点击确定按钮,对输入的信息进行验证并与数据库数

6、据进行比对,匹配就更新数据库,下次登录使用新密码;取销按钮即关闭修改密码界面。FrAddreader.java该文件是添加新读者界面的封装类,定义并设置了添加新读者界面相关组件及显示效果,还定义了提交、返回按钮的事件监听。功能:点击提交按钮,对输入的信息进行验证,通过就写入数据库然后返回读者的编号,不符合要求就提示重新输入;返回按钮即关闭添加新读者界面。FrAddBook.java该文件是新书入库界面的封装类,定义并设置了新书入库界面相关组件及显示效果,还定义了提交、退出按钮的事件监听。功能:点击提交按钮,对输入的信息进行验证,通过就写入数据库然后返回图书添加成功消息,不符合要求就提示重新输入

7、;退出按钮即关闭新书入库界面。FrBorrow.java该文件是借书登记界面的封装类,定义并设置了借书登记界面相关组件及显示效果,还定义了确定、取销按钮的事件监听。功能:点击确定按钮,对输入的信息进行验证,若输入的信息满足要求且该读者没有借该图书就提示借书成功并将数据写入数据库,否则提示对应的不通过原因;取销按钮及关闭借书登记界面。FrRetum.java该文件是还书登记界面的封装类,定义并设置了还书登记界面相关组件及显示效果,还定义了提交、取销按钮的事件监听。功能:点击提交按钮,对输入的信息进行验证并与数据库中数据比对,若输入的信息满足要求且与数据库中数据一致就提示还书成功并更新数据库,否则

8、提示对应的不通过原因;取销按钮及关闭还书登记界面。FrKeep.java该文件是续借登记界面的封装类,定义并设置了续借登记界面相关组件及显示效果,还定义了提交、取销按钮的事件监听。功能:点击提交按钮,对输入的信息进行验证并与数据库中数据比对,若输入的信息满足要求且与数据库中数据一致就提示续借成功并更新数据库,否则提示对应的不通过原因;取销按钮即关闭续借登记界面。FrAbout.java该文件是关于界面的封装类,定义并设置了续借登记界面相关组件及显示效果,还定义了确定按钮的事件监听。功能:显示系统的版权及开辟工具等信息,点击确定按钮就关闭关于界面。FrReadermanage.java该文件是读

9、者管理界面的封装类,定义并设置了读者管理界面相关组件及显示效果,还定义了查找、修改、删除、刷新、关闭按钮的事件监听。功能:对读者的信息进行统一的管理,包括删、改、查等功能,其中选中列表中的一列然后点击修改按钮就会打开读者信息修改界面。FrRedit.java该文件是读者信息修改界面的封装类,定义并设置了读者信息修改界面相关组件及显示效果,还定义了确定、取销按钮的事件监听。功能:对可以修改的信息修改后,点击确定按钮就更新对应数据库中的读者数据,取销按钮即关闭读者信息修改界面。FrBkmanage.java该文件是图书管理界面的封装类,定义并设置了图书管理界面相关组件及显示效果,还定义了查找、修改

10、、删除、刷新、关闭按钮的事件监听。功能:对图书的信息进行统一的管理,包括删、改、查等功能,其中选中列表中的一列然后点击修改按钮就会打开图书信息修改界面。FrBedit.java该文件是图书信息修改界面的封装类,定义并设置了图书信息修改界面相关组件及显示效果,还定义了确定、取销按钮的事件监听。功能:对可以修改的信息修改后,点击确定按钮就更新对应数据库中的读者数据,取销按钮即关闭图书信息修改界面。DBC.java该文件是数据库接口的类,定义了数据库的创建、连接、查找、更新等操作。功能:对数据库总的数据进行增、删、改、查等基本操作。2.3系统设计成员变量表1成员变量成员变量描述成员变量描述名称主菜单

11、条JMenuBarbarjMenBar1系统管理菜单JMenumenuSysMaage基本操作菜单JMenumenuBasic匡助菜单JMenumenuHelp修改密码菜单项JMenuItemITiiChangePwd退出菜单项JMenuItemmiExit添加新读者菜单项JMenuItemmiAddReader新书入库菜单项JMenuItemmiAddBook借书菜单项JMenuItemmiBorrowBook还书菜单项JMenuItemmiReturnBook续借菜单项JMenuItemmiGoon读者管理菜单项JMenuItemIniReaderManage图书管理菜单项JMenuIte

12、mmiBookManage关于菜单项JMenuItemmiAbout主界面背景JLabeIIbIMainbg主界面图片Imagelconback3设计结果运行AppBookjava文件,就会创建并显示登陆界面,具体界面如下:图2系统登录输入正确的用户名和密码就会进入主窗口,否则会弹出相关提示,如图30图3系统登录进入系统主页面包含系统管理、基本操作、匡助三个选项及其对应下拉列表图4图书馆管理系统主界面选中读者管理界面的列表中的一项,点击修改按钮,就会打开读者信息修改界面,具体图示如下图5所示:图5读者信息修改窗口选中图书管理界面的列表中的一项,点击修改按钮,就会打开图书信息修改界面,具体图示如

13、下所示。图6图书信息修改窗口4 .设计体味通过为期一个星期的课程设计,将我们这学期所学的JAVA知识得到了巩固和应用,在设计的过程中我们也遇到了不少的问题,无非通过查阅资料及问询老师,问题都得到了解决,这次课程设计还让我们明白了写程序不能闭门造车,要努力扩展知识面,开阔视野,开阔思维,也学会了更加快速的查阅到自己所需要的资料。短短的一个星期的课程设计过程使我们受益匪浅,不仅是在专业知识方面,最主要是在怎样去解决编程中浮现的问题。遇到问题不能乱,要有条理的设计,找到不熟的方面,再细心的收集资料,比如做这个课程设计的过程中,我们就不是很熟悉菜单栏(JMenuBarbar,菜单(JMenu以及菜单项

14、(JMenldtem之间的关系以及事件的响应,最后通过查阅资料都得到了解决,还有不少不少的问题,这里就不一一列出了。通过这次的课程设计,我们加深了对面向对象编程的理解,学会了JAVA中一些技术的使用,加深了对JAVA的理解。此外,本系统还有一些不足之处,整个系统的可靠性、茁壮性还有待进一步进行测试,系统安全性设计还不够完善。5 .参考文献1仇宾.Java版井字棋的设计与实现J.电脑编程技巧与维护,2022,09:75-80.2明日科技.Java从入门到精通V第2版乂M.北京:清华大学出版社,2022.9:20-253梁勇.Java语言程序设计:基础篇M,第2版.北京:机械工业出版社,2022:

15、305-3504李兴华.Javaweb开辟实战经典基础篇M.北京:清华大学出版社,2022.8:123-1305魔乐科技软件实训中心.Java从入门到精通M.北京:人民邮电出版社,2022.4:10-25布洛克.EffectiveJava中文版V第2版M.北京:机械工业出版社,2022,1:53-607诱明.Java技术J.程序员,2005,06:11刘潇.基于JAVA的五子棋游戏设计与实现J.电脑知识与技术,2022,06:1353-1354网姜景根,李祥.基于Java的多线程并发服务器的设计与应用J.电脑与信息技术,2022,01:15-17+4210阮彤,李京,冯东雷.基于Java的应用

16、服务器的设计与实现J计算机研究与发展,2022,08:939-946.附录FrMainJavapackagemybook.book;importjava.awt.*;importjavax.swing.*;importjava.awt.Rectangle;importjava.swing.BorderFactory;importjava.awt.Color;importjava.awt.event.ActionEvent;importjava.awt.event.ActioListener;importjava.awt.event.MouseEvent;importjava.awt.event

17、.MouseAdapter;importjava.awt.BorderLayout;importjava.util.Calendar;importjava.io.IOException;importmydbc.dbc.DBC;importjava.sql.ResuItSet;importjava.sql.SQLException;该类为本程序主界面publicclassFrMainextendsJFrame私有成员JMenuBarjMenuBar1=newJMenuBaro;JMenumenuSysManage=newJMenuo;JMenuItemmiChangePwd=newJMenuIt

18、emo;JMenuItemmiExit=newJMenuItemo;JMenumenuBasic=newJMenu;JMenuItemmiAddReader=newJMenuItemo;JMenuItemmiAddBook=newJMenuItemo;JMenuItemmiBorrowBook=newJMenuItemo;JMenuItemmiReturnBook=newJMenuItemo;JMenuItemmiGoon=newJMenuItemo;JMenuItemmiReaderManage=newJMenuItemo;JMenuItemmiBookManage=newJMenuItem

19、o;JMenumenuHelp=newJMenu;JMenuItemmiAbout=newJMenuItemo;JPaneIpalState=newJPanel;JLabeIlblSysName=newJLabeIo;JLabeIlblShow=newJLabeIo;JLabeIlblMainbg=newJLabeIo;JLabeIlblNowtime=newJLabeIo;JLabeIlblTime=newJLabeIo;Imageiconback=newImagelcon;publicFrMaintry(jblnit;catchexception.printStackTrace;)priv

20、atevoidJblnitothrowsExceptiongetContentPane.setLayout;this.setJMenuBar;setSizenewDimension;this.setT汨ev”图书管理系统menuSysManage.setTextv系统管理miChangePwd.setTextv修改密码”;miChangePwd.addActionListenerewFrMain_miChangePwd_actionAdapterthis;IniEXitSetTeXtV退出;miEit.addActioListenernewFrMain_miExit_actionAdapter

21、;mIAddReader.setTextv添加新读者”;miAddReader.addActioListenernewFrMain_miAddReader_actionAdapterthis;miAddBooksetTextv新书入库miAddBook.addActionListenernewFrMain_miAddBook_actionAdapterthis;miBorrowBooksetTextv借书miBorrowBook.addActionListenernewFrMain_miBorrowBook_actionAdapter;miReturnBook.setActionCommand

22、;miRetumBook.setTextv还书;miReturnBook.addActioListenernewFrMain_miReturnBook_actionAdapter;miGoon.setTextv续借”;miGoon.addActionListenernewFrMain_miGoon_actionAdapter;CniReaderManage.addActionListenernewFrMain_miReaderManage_actionAdapter;miBookManage.addActionListenernewFrMain_miBookManage_actionAdapt

23、er;menuHelp.setText;miAbouLsetTextv关于;miAbout.addActionListenernewFrMain_miAbout_actionAdapterthis;palState.setBoundsnewRectangleO,400,700,38;palState.setLayout;IblSySName.setTextv图书管理系统;lblSysName.setBoundsnewRectangle;lblShow.setBoundsnewRectangle86,3,150,31;lblMainbg.setlcon;lblMainbg.setBoudsnew

24、Rectangle;lblTime.setBoundsnewRectangle350,3,63,31;IbINowtime.setBoundsnewRectangle420,3,179,31;jMenuBar1.add;jMenuBar1.add;jMenuBar1.add;menuSysManage.add;menuSysManageaddSeparator;menuSysManage.add;menuBasic.add;menuBasic.add;menuBasic.addSeparator;menuBasic.add;menuBasic.add;menuBasic.add;menuBas

25、ic.addSeparator;menuBasic.add;menuBasic.add;menuHelp.add;this.getContentPaneo.add;this.getContentPane.add;palState.add;palState.add;palState.add;palState.add;Timetime=newTime;time.start;)该方法用于被调用并初始化一个新FramepublicvoidNewFramDimensionseeSize=Tlkit.getDefaultTooikt.getScreenSize;DimensionframeSize=.ge

26、tSize;ifscreenSize.heightframeSize.height=screenSize.height;)ifscreenSize.widthframeSize.width=screeSize.width;x.setLocation2,2;x.setVisible;classTimeextendsThreadpublicvoidrun以下用于同步显示时间Calendarcal;whiletry(cal=Calendar.getlnstance;Stringnow=cal.get+cal.get+1+月+CaLgetvCaIendar.DATE+日+cal.getvCalenda

27、r.HOUR+时+cal.get+分+CaLgetvCaIendarSECONDX秒”;lblNowtime.setText;每一秒钟循环一次Thread.sleep;catchSystem.out.printlnex.getMessage;)系统管理-修改密码菜单下拉列表事件publicvoidmiChangePwd-actionPerfomedFrChangechange=newFrChangeo;NewFram;系统管理-退出菜单下拉列表事件publicvoidmiExiLactionPerformedcActionEventeSystem.exit;)基本操作-增加新读者菜单下拉列表事

28、件publicvoidmiAddReadejactionPerformedvActionEventeFrAddreaderaddreader=newFrAddreadero;NewFram;)基本操作-新书入库菜单下拉列表事件publicvoidmiAddBook_actionPerformedFrAddbkaddbook=newFrAddbooko;NewFram;)基本操作-借书菜单下拉列表事件publicvoidmiBorrowBook_actionPerformedFrBorrowborrow=newFrBorrowo;NewFram;基本操作-还书菜单下拉列表事件publicvoid

29、miReturnBook_actionPerformedFrReturnreturnbook=newFrReturno;NewFram;基本操作-续借菜单下拉列表事件publicvoidmiGoon_actionPerformedFrKeepkeep=newFrKeepo;NewFram;基本操作读者管理菜单下拉列表事件publicvoidmiReaderManage_actionPerformedFrReadermanagemanage=newFrReadermanageo;NewFram;基本操作-图书管理菜单下拉列表事件publicvoidmiBookManage-actionPerfo

30、rmedFrBookmanagebmanage=newFrBookmanageo;NewFram;)匡助-关于菜单下拉列表事件publicvoidmiAbout_actionPerformedFrAboutabout=newFrAbouto;NewFram;事件适配器的触发修改密码classFrMain_miChangePwd_actionAdapterimplementsActionListenerfprivateFrMainadapter;FrMain_miChangePwd_actionAdapterthis.adapter=adaptee;publicvoidactionPerformedadapter.miChangePwd-actioPerformed;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号