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

上传人:b****1 文档编号:13386718 上传时间:2023-06-13 格式:DOCX 页数:19 大小:386.08KB
下载 相关 举报
JAVA图书馆管理系统课程设计.docx_第1页
第1页 / 共19页
JAVA图书馆管理系统课程设计.docx_第2页
第2页 / 共19页
JAVA图书馆管理系统课程设计.docx_第3页
第3页 / 共19页
JAVA图书馆管理系统课程设计.docx_第4页
第4页 / 共19页
JAVA图书馆管理系统课程设计.docx_第5页
第5页 / 共19页
JAVA图书馆管理系统课程设计.docx_第6页
第6页 / 共19页
JAVA图书馆管理系统课程设计.docx_第7页
第7页 / 共19页
JAVA图书馆管理系统课程设计.docx_第8页
第8页 / 共19页
JAVA图书馆管理系统课程设计.docx_第9页
第9页 / 共19页
JAVA图书馆管理系统课程设计.docx_第10页
第10页 / 共19页
JAVA图书馆管理系统课程设计.docx_第11页
第11页 / 共19页
JAVA图书馆管理系统课程设计.docx_第12页
第12页 / 共19页
JAVA图书馆管理系统课程设计.docx_第13页
第13页 / 共19页
JAVA图书馆管理系统课程设计.docx_第14页
第14页 / 共19页
JAVA图书馆管理系统课程设计.docx_第15页
第15页 / 共19页
JAVA图书馆管理系统课程设计.docx_第16页
第16页 / 共19页
JAVA图书馆管理系统课程设计.docx_第17页
第17页 / 共19页
JAVA图书馆管理系统课程设计.docx_第18页
第18页 / 共19页
JAVA图书馆管理系统课程设计.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

JAVA图书馆管理系统课程设计

图书馆管理系统

1.课程设计的目的

目前,随着网络技术的飞速发展,各行各业都在追求信息化,以防在信息时代落伍,而普通高校也如此,图书馆是高校师生获得知识的一个重要渠道。

因此一个健全的图书管理系统就必不可少,图书管理系统的使用大大的提高了图书馆的工作效率,很好的节省了大量的人力、物力和财力资源。

管理信息系统的开发是一个开发周期长、技术要求高、影响因素多的复杂系统工程,因此制定一个完善、可行、合理的开发计划,不仅是系统开发成功的保证,而且可以提高效率、节省时间、降低成本。

由于在过去人们对信息管理的主要方式是基于文本、表格等纸质的手工处理之上的,而用手工进行图书借阅管理存在多种弊端,其中包括图书过于繁多,包含很多的信息数据的管理对于图书借阅情况如:

借阅天数、超过限定借阅时间等等的统计和核实,往往采用对借阅卡的人工查询进行,对借阅天数等用人工计算、手抄进行。

信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。

总的来说缺乏系统、规范的管理手段人们操控起来是很困难的;因此,使用电子化的管理手段将是大势所趋,建立一个图书管理系统也是图书管理部门提高工作效益的有效手段。

系统能够合理高效地利用图书资源,使得图书借阅更加的科学合理。

2.设计方案论证

2.1需求分析

对于一个图书管理系统来说,图书的查询及数据的维护管理是其中的核心环节。

在现现行的图书管理中存在几个共同的问题:

(1)图书种类过多,数据庞大;这是几乎所有图书馆都会遇到的共同问题,各种不同种类的图书馆为这些图书入库,进行添加于维护增加了很多的难题,对这些数据的反复输入,往往造成庞大的工作量和较低的效率。

(2)查询图书困难,每天的借阅情况,读者借阅的到期、还书情况,各项数据的汇总和统计情况必须由管理员统计上报,图书库总管理员才能考虑对图书馆的硬件如某类书的需求数量进行改变已向上级申报。

(3)图书毁坏及图书破损;在借阅过程中难免此类现象的发生,如何及时发现及事后对毁坏图书进行淘汰和更新也是个需要解决的问题。

(4)不能及时归还图书;经常有读者超过借阅期的情况发生,对此类读者的超期信息提示也是图书借阅管理工作中必须解决的问题之一。

本软件主要有以下几方面的功能

(1)系统部分:

主要完成本系统工程的维护工作(包括:

添加用户、添加员工、修改密码)

(2)图书管理部分:

要完成图书基本信息的管理(包括:

添加、修改、查询、删除图书基本信息)

(3)借阅管理部分:

主要完成图书借阅的管理(包括:

图书借阅、归还、查询等)2.2系统包含的类及类之间的关系

本系统共包括15个Java源文件和1个辅助文件。

类之间的关系如图1所示。

图1类关系图

(1)AppBook.java

该文件包含主函数入口,旨在创建登录界面对象并在屏幕中居中显示。

(2)FrLogin.java

该文件是登录界面的封装类,定义并设置了登录界面相关组件及显示效果,还定义了登录、退出按钮的事件监听。

功能:

点击登录按钮,对填写的信息进行验证并与数据库数据进行比对,匹配就登录成功进入主界面;取消按钮即可退出系统。

(3)FrMain.java

该文件是主界面的封装类,定义并设置了主界面相关组件及显示效果,还定义了菜单栏上面各菜单项的监听事件,有系统管理:

修改管理员密码、退出,基本操作:

添加新读者、新书入库、借书、还书、续借、读者管理、图书管理,帮助:

关于等10个事件的监听。

功能:

点击对应的菜单栏就会弹出对应的对话框,并传递需要的参数。

(4)FrChange.java

该文件是修改用户密码界面的封装类,定义并设置了更改密码界面相关组件及显示效果,还定义了确定、取消按钮的事件监听。

功能:

点击确定按钮,对输入的信息进行验证并与数据库数据进行比对,匹配就更新数据库,下次登录使用新密码;取消按钮即关闭修改密码界面。

(5)FrAddreader.java

该文件是添加新读者界面的封装类,定义并设置了添加新读者界面相关组件及显示效果,还定义了提交、返回按钮的事件监听。

功能:

点击提交按钮,对输入的信息进行验证,通过就写入数据库然后返回读者的编号,不符合要求就提示重新输入;返回按钮即关闭添加新读者界面。

(6)FrAddBook.java

该文件是新书入库界面的封装类,定义并设置了新书入库界面相关组件及显示效果,还定义了提交、退出按钮的事件监听。

功能:

点击提交按钮,对输入的信息进行验证,通过就写入数据库然后返回图书添加成功消息,不符合要求就提示重新输入;退出按钮即关闭新书入库界面。

(7)FrBorrow.java

该文件是借书登记界面的封装类,定义并设置了借书登记界面相关组件及显示效果,还定义了确定、取消按钮的事件监听。

功能:

点击确定按钮,对输入的信息进行验证,若输入的信息满足要求且该读者没有借该图书就提示借书成功并将数据写入数据库,否则提示对应的不通过原因;取消按钮及关闭借书登记界面。

(8)FrReturn.java

该文件是还书登记界面的封装类,定义并设置了还书登记界面相关组件及显示效果,还定义了提交、取消按钮的事件监听。

功能:

点击提交按钮,对输入的信息进行验证并与数据库中数据比对,若输入的信息满足要求且与数据库中数据一致就提示还书成功并更新数据库,否则提示对应的不通过原因;取消按钮及关闭还书登记界面。

(9)FrKeep.java

该文件是续借登记界面的封装类,定义并设置了续借登记界面相关组件及显示效果,还定义了提交、取消按钮的事件监听。

功能:

点击提交按钮,对输入的信息进行验证并与数据库中数据比对,若输入的信息满足要求且与数据库中数据一致就提示续借成功并更新数据库,否则提示对应的不通过原因;取消按钮即关闭续借登记界面。

(10)FrAbout.java

该文件是关于界面的封装类,定义并设置了续借登记界面相关组件及显示效果,

还定义了确定按钮的事件监听。

功能:

显示系统的版权及开发工具等信息,点击确定按钮就关闭关于界面。

(11)FrReadermanage.java

该文件是读者管理界面的封装类,定义并设置了读者管理界面相关组件及显示效果,还定义了查找、修改、删除、刷新、关闭按钮的事件监听。

功能:

对读者的信息进行统一的管理,包括删、改、查等功能,其中选中列表中的一列然后点击修改按钮就会打开读者信息修改界面。

(12)FrRedit.java

该文件是读者信息修改界面的封装类,定义并设置了读者信息修改界面相关组件及显示效果,还定义了确定、取消按钮的事件监听。

功能:

对可以修改的信息修改后,点击确定按钮就更新对应数据库中的读者数据,取消按钮即关闭读者信息修改界面。

(13)FrBookmanage.java

该文件是图书管理界面的封装类,定义并设置了图书管理界面相关组件及显示效果,还定义了查找、修改、删除、刷新、关闭按钮的事件监听。

功能:

对图书的信息进行统一的管理,包括删、改、查等功能,其中选中列表中的一列然后点击修改按钮就会打开图书信息修改界面。

(14)FrBedit.java

该文件是图书信息修改界面的封装类,定义并设置了图书信息修改界面相关组件及显示效果,还定义了确定、取消按钮的事件监听。

功能:

对可以修改的信息修改后,点击确定按钮就更新对应数据库中的读者数据,取消按钮即关闭图书信息修改界面。

(15)DBC.java

该文件是数据库接口的类,定义了数据库的创建、连接、查找、更新等操作。

功能:

对数据库总的数据进行增、删、改、查等基本操作。

2.3系统设计

成员变量

表1成员变量

成员变量描述

成员变量描述

名称

主菜单条

JMenuBarbar

jMenuBar1

系统管理菜单

JMenu

menuSysManage

基本操作菜单

JMenu

menuBasic

帮助菜单

JMenu

menuHelp

修改密码菜单项

JMenuItem

miChangePwd

退出菜单项

JMenuItem

miExit

添加新读者菜单项

JMenuItem

miAddReader

新书入库菜单项

JMenuItem

miAddBook

借书菜单项

JMenuItem

miBorrowBook

还书菜单项

JMenuItem

miReturnBook

续借菜单项

JMenuItem

miGoon

读者管理菜单项

JMenuItem

miReaderManage

图书管理菜单项

JMenuItem

miBookManage

关于菜单项

JMenuItem

miAbout

主界面背景

JLabel

lblMainbg

主界面图片

ImageIcon

back

3.设计结果

运行AppBook.java文件,就会创建并显示登陆界面,具体界面如下:

图2系统登录

输入正确的用户名和密码就会进入主窗口,否则会弹出相关提示,如图3。

图3系统登录

进入系统主页面包含系统管理、基本操作、帮助三个选项及其对应下拉列表

图4图书馆管理系统主界面

选中读者管理界面的列表中的一项,点击修改按钮,就会打开读者信息修改界面,具体图示如下图5所示:

图5读者信息修改窗口

选中图书管理界面的列表中的一项,点击修改按钮,就会打开图书信息修改界面,具体图示如下所示。

图6图书信息修改窗口

 

4.设计体会

通过为期一个星期的课程设计,将我们这学期所学的JAVA知识得到了巩固和应用,在设计的过程中我们也遇到了很多的问题,不过通过查阅资料及询问老师,问题都得到了解决,这次课程设计还让我们明白了写程序不能闭门造车,要努力扩展知识面,开阔视野,开阔思维,也学会了更加快速的查阅到自己所需要的资料。

短短的一个星期的课程设计过程使我们受益匪浅,不仅是在专业知识方面,最主要是在怎样去解决编程中出现的问题。

遇到问题不能乱,要有条理的设计,找到不熟的方面,再细心的收集资料,比如做这个课程设计的过程中,我们就不是很熟悉菜单栏(JMenuBarbar)、菜单(JMenu)以及菜单项(JMenuItem)之间的关系以及事件的响应,最后通过查阅资料都得到了解决,还有很多很多的问题,这里就不一一列出了。

通过这次的课程设计,我们加深了对面向对象编程的理解,学会了JAVA中一些技术的使用,加深了对JAVA的理解。

另外,本系统还有一些不足之处,整个系统的可靠性、健壮性还有待进一步进行测试,系统安全性设计还不够完善。

5.参考文献

[1]仇宾.Java版井字棋的设计与实现[J].电脑编程技巧与维护,2013,09:

75-80.

[2]明日科技.Java从入门到精通(第2版)[M].北京:

清华大学出版社,2012.9:

20-25

[3]梁勇.Java语言程序设计:

基础篇[M],第2版.北京:

机械工业出版社,2011:

305-350

[4]李兴华.Javaweb开发实战经典基础篇[M].北京:

清华大学出版社,2011.8:

123-130

[5]魔乐科技软件实训中心.Java从入门到精通[M].北京:

人民邮电出版社,2012.4:

10-25

[6]布洛克.EffectiveJava中文版(第2版)[M].北京:

机械工业出版社,2012,1:

53-60

[7]诱明.Java技术[J].程序员,2005,06:

11

[8]刘潇.基于JAVA的五子棋游戏设计与实现[J].电脑知识与技术,2011,06:

1353-1354

[9]姜景根,李祥.基于Java的多线程并发服务器的设计与应用[J].电脑与信息技术,2012,01:

15-17+42

[10]阮彤,李京,冯东雷.基于Java的应用服务器的设计与实现[J].计算机研究与发展,2011,08:

939-946.

附录

FrMain.java

packagemybook.book;

importjava.awt.*;

importjavax.swing.*;

importjava.awt.Rectangle;

importjavax.swing.BorderFactory;

importjava.awt.Color;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.MouseEvent;

importjava.awt.event.MouseAdapter;

importjava.awt.BorderLayout;

importjava.util.Calendar;

importjava.io.IOException;

importmydbc.dbc.DBC;

importjava.sql.ResultSet;

importjava.sql.SQLException;

//该类为本程序主界面

publicclassFrMainextendsJFrame{

//私有成员

JMenuBarjMenuBar1=newJMenuBar();

JMenumenuSysManage=newJMenu();

JMenuItemmiChangePwd=newJMenuItem();

JMenuItemmiExit=newJMenuItem();

JMenumenuBasic=newJMenu();

JMenuItemmiAddReader=newJMenuItem();

JMenuItemmiAddBook=newJMenuItem();

JMenuItemmiBorrowBook=newJMenuItem();

JMenuItemmiReturnBook=newJMenuItem();

JMenuItemmiGoon=newJMenuItem();

JMenuItemmiReaderManage=newJMenuItem();

JMenuItemmiBookManage=newJMenuItem();

JMenumenuHelp=newJMenu();

JMenuItemmiAbout=newJMenuItem();

JPanelpalState=newJPanel();

JLabellblSysName=newJLabel();

JLabellblShow=newJLabel();

JLabellblMainbg=newJLabel();

JLabellblNowtime=newJLabel();

JLabellblTime=newJLabel();

ImageIconback=newImageIcon("img/bookbg.jpg");

publicFrMain(){

try{

jbInit();

}catch(Exceptionexception){

exception.printStackTrace();

}

}

privatevoidjbInit()throwsException{

getContentPane().setLayout(null);

this.setJMenuBar(jMenuBar1);

setSize(newDimension(600,490));

this.setTitle("图书管理系统");

menuSysManage.setText("【系统管理】");

miChangePwd.setText("修改密码");

miChangePwd

.addActionListener(newFrMain_miChangePwd_actionAdapter(this));

miExit.setText("退出");

miExit.addActionListener(newFrMain_miExit_actionAdapter(this));

menuBasic.setText("【基本操作】");

miAddReader.setText("添加新读者");

miAddReader

.addActionListener(newFrMain_miAddReader_actionAdapter(this));

miAddBook.setText("新书入库");

miAddBook.addActionListener(newFrMain_miAddBook_actionAdapter(this));

miBorrowBook.setText("借书");

miBorrowBook.addActionListener(newFrMain_miBorrowBook_actionAdapter(

this));

miReturnBook.setActionCommand("还书");

miReturnBook.setText("还书");

miReturnBook.addActionListener(newFrMain_miReturnBook_actionAdapter(

this));

miGoon.setText("续借");

miGoon.addActionListener(newFrMain_miGoon_actionAdapter(this));

miReaderManage.setText("读者管理");

miReaderManage

.addActionListener(newFrMain_miReaderManage_actionAdapter(this));

miBookManage.setText("图书管理");

miBookManage.addActionListener(newFrMain_miBookManage_actionAdapter(

this));

menuHelp.setText("【帮助】");

miAbout.setText("关于");

miAbout.addActionListener(newFrMain_miAbout_actionAdapter(this));

palState.setBounds(newRectangle(0,400,700,38));

palState.setLayout(null);

lblSysName.setText("图书管理系统");

lblSysName.setBounds(newRectangle(3,3,85,31));

lblShow.setText("技术支持JAVAECLIPSE");

lblShow.setBounds(newRectangle(86,3,150,31));

lblMainbg.setIcon(back);

lblMainbg.setBounds(newRectangle(0,0,699,431));

lblTime.setText("当前时间:

");

lblTime.setBounds(newRectangle(350,3,63,31));

lblNowtime.setBounds(newRectangle(420,3,179,31));

jMenuBar1.add(menuSysManage);

jMenuBar1.add(menuBasic);

jMenuBar1.add(menuHelp);

menuSysManage.add(miChangePwd);

menuSysManage.addSeparator();

menuSysManage.add(miExit);

menuBasic.add(miAddReader);

menuBasic.add(miAddBook);

menuBasic.addSeparator();

menuBasic.add(miBorrowBook);

menuBasic.add(miReturnBook);

menuBasic.add(miGoon);

menuBasic.addSeparator();

menuBasic.add(miReaderManage);

menuBasic.add(miBookManage);

menuHelp.add(miAbout);

this.getContentPane().add(palState);

this.getContentPane().add(lblMainbg);

palState.add(lblSysName);

palState.add(lblShow);

palState.add(lblNowtime);

palState.add(lblTime);

Timetime=newTime();

time.start();

}

//该方法用于被调用并初始化一个新Frame

publicvoidNewFram(Framex){

DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();

DimensionframeSize=x.getSize();

if(frameSize.height>screenSize.height){

frameSize.height=screenSize.height;

}

if(frameSize.width>screenSize.width){

frameSize.width=screenSize.width;

}

x.setLocation((screenSize.width-frameSize.width)/2,

(screenSize.height-frameSize.height)/2);

x.setVisible(true);

}

classTimeextendsThread{

publicvoidrun(){

//以下用于同步显示时间

Calendarcal;

while(true){

try{

cal=Calendar.getInstance();

Stringnow=cal.get(Calendar.YEAR)+"年"

+(cal.get(Calendar.MONTH)+1)+"月"

+cal.get(Calendar.DATE)+"日"

+cal.get(Calendar.HOUR)+"时"

+cal.get(Calendar.MINUTE)+"分"

+cal.get(Calendar.SECOND)+"秒";

lblNowtime.setText(now);

//每一秒钟循环一次

Thread.sleep(1000);

}catch(InterruptedExceptionex){

System.out.println(ex.getMessage());

}

}

}

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2