JAVA图书馆管理系统课程设计文档格式.docx
- 文档编号:19121285
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:15
- 大小:385.88KB
JAVA图书馆管理系统课程设计文档格式.docx
《JAVA图书馆管理系统课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA图书馆管理系统课程设计文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
类之间的关系如图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
基本操作菜单
menuBasic
帮助菜单
menuHelp
修改密码菜单项
JMenuItem
miChangePwd
退出菜单项
miExit
添加新读者菜单项
miAddReader
新书入库菜单项
miAddBook
借书菜单项
miBorrowBook
还书菜单项
miReturnBook
续借菜单项
miGoon
读者管理菜单项
miReaderManage
图书管理菜单项
miBookManage
关于菜单项
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(
miGoon.setText("
续借"
miGoon.addActionListener(newFrMain_miGoon_actionAdapter(this));
miReaderManage.setText("
读者管理"
miReaderManage
.addActionListener(newFrMain_miReaderManage_actionAdapter(this));
miBookManage.setText("
图书管理"
miBookManage.addActionListener(newFrMain_miBookManage_actionAdapter(
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.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());
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 图书馆 管理 系统 课程设计