Java图书管理系统附源码.docx

上传人:b****5 文档编号:3611764 上传时间:2022-11-24 格式:DOCX 页数:35 大小:419.96KB
下载 相关 举报
Java图书管理系统附源码.docx_第1页
第1页 / 共35页
Java图书管理系统附源码.docx_第2页
第2页 / 共35页
Java图书管理系统附源码.docx_第3页
第3页 / 共35页
Java图书管理系统附源码.docx_第4页
第4页 / 共35页
Java图书管理系统附源码.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

Java图书管理系统附源码.docx

《Java图书管理系统附源码.docx》由会员分享,可在线阅读,更多相关《Java图书管理系统附源码.docx(35页珍藏版)》请在冰豆网上搜索。

Java图书管理系统附源码.docx

Java图书管理系统附源码

Java图书管理系统-附源码

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

题目简述--------------------------------01

需求分析--------------------------------01

数据结构--------------------------------01

功能模块--------------------------------02

程序设计--------------------------------02

运行截图--------------------------------04

分析总结--------------------------------08

程序源码--------------------------------08

 

图书信息管理系统

题目简述:

题目名称:

图书信息管理系统

要求:

使用图形用户界面,用数据库建立1或2个图书信息表,能连接数据库并实现查询、增加、删除、修改等功能。

需求分析:

图书信息管理系统应该具备图书的信息管理功能和流通管理功能。

其中,信息管理功能包括查找,增加,修改,删除,显示全部信息等模块。

流通管理功能包括图书借阅,归还等模块。

因此分别设计各个模块,实现不同的功能。

数据结构:

用SQLSever建立数据库的表,用一张表存放图书的ID号码,图书名称,图书的所有者,图书状态,图书的使用者(允许为空)。

具体设计如下图所示:

图书ID,图书名称,图书所有者,图书的状态,图书使用者(允许为空)均为varchar(50)类型,在Java中可以方便的查询。

图书存储信息的具体内容如下图所示:

功能模块:

程序设计:

主框架设计:

主框架上方包含三个按钮,分别是“系统管理”、“图书信息管理”和“图书流通管理”,定义JMenuBar类的对象、JMenu类的对象和JMenuItem类的对象,分别表示菜单栏、菜单组和菜单选项,然后调用初始化函数,将不同类的对象通过setText()函数设定不同的文本,然后将其添加到窗口容器中。

对每个按钮分别添加不同的消息监听,响应相应的消息,调用不同的类完成不同的功能。

消息监听功能详见源代码bookMain类。

图书信息管理模块包括增加图书,删除图书,编辑图书,查找图书和显示图书信息。

具体的方法实现在bookBean中实现,当用户点击相应的按钮时,消息监听模块就会调用bookBean的构造函数产生一个bookBean的对象,然后通过对象调用bookBean类中的相应方法,完成事件的相应。

增加图书信息模块:

调用bookAdd类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话框,提示用户输入图书ID,图书名称和图书所有者,由于刚增加的图书没有被借阅,所以图书状态和图书使用者为默认值,分别为空闲和null,因此用户不必输入这两个属性值。

完成输入后,点击确定按钮,消息监听模块将调用bookBean的构造函数产生一个该类的对象,通过该对象调用bookBean的bookAdd函数,执行SQL语句,通过insert语句完成图书信息的增加插入功能。

删除图书信息模块:

调用bookDel类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话框,提示用户输入要删除图书的ID。

完成输入后,点击确定按钮,消息监听模块将调用bookBean的构造函数产生一个该类的对象,通过该对象调用bookBean的bookDel函数,执行删除的SQL语句,通过delete语句完成图书信息的删除功能。

修改图书信息模块:

点击按钮后调用bookEdit类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话框,提示用户输入要修改图书的ID和其他图书信息,用户将信息输入完成后,点击确定按钮,消息监听模块将调用bookBean的构造函数产生一个该类的对象,通过该对象调用bookBean的bookEdit函数,执行修改的SQL语句,通过update语句完成图书信息的编辑功能。

查找图书信息模块:

点击按钮后调用bookSearch类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话框,提示用户输入要查找图书的ID,用户将信息输入完成后,点击确定按钮,消息监听模块将调用bookResult的构造函数产生一个该类的对象,通过该对象的构造函数,执行查找的SQL语句,通过select语句完成图书信息的查找功能,然后构造图标,将查询到的信息显示在图表中。

显示图书信息模块:

点击按钮后调用bookDisplay类的构造函数产生一个该类的对象,在该对象的构造函数中调用bookAllSearch函数,查询所有的图书信息,显示在表格中。

图书流通管理模块包含图书的借阅与归还功能,其实就是对数据库中的某一记录集的某一属性进行修改。

图书借阅模块:

用户输入要借阅的图书名称和本人姓名,点击确定后,将调用bookBean的构造函数产生一个对象,通过该对象调用bookBook函数,修改数据库中的信息,将图书状态属性变为已借,将图书用户属性变为用户姓名,完成图书的借阅功能。

图书归还模块:

用户输入要归还的图书名称,点击确定后,将调用bookBean的构造函数产生一个对象,通过该对象调用bookReturn函数,修改数据库中的信息,把图书的状态置为空闲,将图书用户置为空,从而完成图书的归还功能。

备注:

报告此部分未附源代码,详见程序源码部分。

运行截图:

图书信息增加:

 

图书信息修改:

图书信息查询:

图书信息删除:

图书信息显示:

图书借阅:

图书归还:

分析总结:

本程序在数据库设计方面可以改为多张表存储的方式,用三张表来记录图书信息,借阅关系和学生信息,这样可以减少数据冗余,还可以增加一些其他功能,比如图书挂失等功能。

由于刚刚接触到Java界面设计,所以本程序在界面设计方面还有有待改进的地方。

程序源码:

DatabaseConn.java

packagebookDB;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

publicclassDatabaseConn{

privateStatementstmt=null;

ResultSetrs=null;

privateConnectionconn=null;

Stringsql;

publicDatabaseConn(){}

publicvoidOpenConn()throwsException{

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

conn=DriverManager.getConnection("jdbc:

odbc:

library");

}catch(Exceptione){System.err.println("数据库连接:

"+e.getMessage());}

}

publicResultSetexecuteQuery(Stringsql){

stmt=null;

rs=null;

try{

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

rs=stmt.executeQuery(sql);

}catch(SQLExceptione){System.err.println("查询数据:

"+e.getMessage());}

returnrs;

}

publicvoidexecuteUpdate(Stringsql){

stmt=null;

rs=null;

try{

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

rs=stmt.executeQuery(sql);

mit();

}catch(SQLExceptione){System.err.println("更新数据:

"+e.getMessage());}

}

publicvoidcloseStmt(){

try{stmt.close();}catch(SQLExceptione){

System.err.println("释放对象:

"+e.getMessage());

}

}

publicvoidcloseConn(){

try{conn.close();}catch(SQLExceptionex){

System.err.println("释放对象:

"+ex.getMessage());

}

}

publicstaticStringtoGBK(Stringstr){

try{

if(str==null)

str=null;

else

str=newString(str.getBytes("ISO-8859-1"),"GBK");

}catch(Exceptione){System.out.println(e);}

returnstr;

}

}

packagebookDB;

importjava.awt.AWTEvent;

importjava.awt.BorderLayout;

importjava.awt.Container;

importjava.awt.Font;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjavax.swing.JFrame;

importjavax.swing.JMenu;

importjavax.swing.JMenuBar;

importjavax.swing.JMenuItem;

bookMain.java

publicclassbookMainextendsJFrameimplementsActionListener{

privatestaticfinallongserialVersionUID=1L;

//----------建立菜单栏----------

JMenuBarmainMenu=newJMenuBar();

//--------------建立系统管理菜单组--------------

JMenumenuSystem=newJMenu();

JMenuItemitemExit=newJMenuItem();

JMenumenubook=newJMenu();

JMenumenuevent=newJMenu();

JMenuItemitemAdd=newJMenuItem();

JMenuItemitemEdit=newJMenuItem();

JMenuItemitemDelete=newJMenuItem();

JMenuItemitemSelect=newJMenuItem();

JMenuItemitemBook=newJMenuItem();

JMenuItemitemReturn=newJMenuItem();

JMenuItemitemDisplay=newJMenuItem();

//------------创建窗体模板对象--------------

publicstaticbookInfom_stu=newbookInfo();

publicbookMain(){

enableEvents(AWTEvent.WINDOW_EVENT_MASK);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.pack();

this.setSize(600,480);

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

try{

Init();

}catch(Exceptione){e.printStackTrace();}

}

privatevoidInit()throwsException{

ContainercontentPane=this.getContentPane();

contentPane.setLayout(newBorderLayout());

//------添加菜单组-------

menuSystem.setText("系统操作");

menuSystem.setFont(newFont("Dialog",0,12));

menubook.setText("图书信息管理");

menubook.setFont(newFont("Dialog",0,12));

menuevent.setText("图书流通管理");

menuevent.setFont(newFont("Dialog",0,12));

//---------生成系统管理菜单组---------

itemExit.setText("退出");

itemExit.setFont(newFont("Dialog",0,12));

//--------------生成学生菜单组----------------

itemAdd.setText("增加图书");

itemAdd.setFont(newFont("Dialog",0,12));

itemEdit.setText("修改信息");

itemEdit.setFont(newFont("Dialog",0,12));

itemDelete.setText("删除图书");

itemDelete.setFont(newFont("Dialog",0,12));

itemSelect.setText("查询");

itemSelect.setFont(newFont("Dialog",0,12));

itemDisplay.setText("显示全部信息");

itemDisplay.setFont(newFont("Dialog",0,12));

//--------------生成管理事务菜单组----------------

itemBook.setText("图书借阅");

itemBook.setFont(newFont("Dialog",0,12));

itemReturn.setText("图书归还");

itemReturn.setFont(newFont("Dialog",0,12));

menuSystem.add(itemExit);

menubook.add(itemAdd);

menubook.add(itemEdit);

menubook.add(itemDelete);

menubook.add(itemSelect);

menubook.add(itemDisplay);

menuevent.add(itemBook);

menuevent.add(itemReturn);

//----组合菜单栏---

mainMenu.add(menuSystem);

mainMenu.add(menubook);

mainMenu.add(menuevent);

this.setJMenuBar(mainMenu);

//添加事件监听

itemExit.addActionListener(this);

itemAdd.addActionListener(this);

itemEdit.addActionListener(this);

itemDelete.addActionListener(this);

itemSelect.addActionListener(this);

itemBook.addActionListener(this);

itemReturn.addActionListener(this);

itemDisplay.addActionListener(this);

setVisible(true);

this.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){System.exit(0);}

});

}

publicvoidactionPerformed(ActionEvente){

Objectobj=e.getSource();

if(obj==itemExit){System.exit(0);}

elseif(obj==itemAdd){

bookAddasi=newbookAdd();

//asi.downInit();

asi.pack();

asi.setVisible(true);

}elseif(obj==itemEdit){

bookEditesi=newbookEdit();

//esi.downInit();

esi.pack();

esi.setVisible(true);

}elseif(obj==itemDelete){

bookDeldsi=newbookDel();

//dsi.downInit();

dsi.pack();

dsi.setVisible(true);

}elseif(obj==itemSelect){

bookSearchsbid=newbookSearch();

sbid.pack();

sbid.setVisible(true);

}elseif(obj==itemBook){

bookBooksboo=newbookBook();

sboo.pack();

sboo.setVisible(true);

}elseif(obj==itemReturn){

bookReturnsre=newbookReturn();

sre.pack();

sre.setVisible(true);

}elseif(obj==itemDisplay){

bookDisplaysre=newbookDisplay();

sre.pack();

sre.setVisible(true);

}

}

publicstaticvoidmain(String[]args){newbookMain();}

}

 

bookAdd.java

packagebookDB;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassbookAddextendsJFrameimplementsActionListener{

Containerc;

JLabeljLabel1=newJLabel();

JLabeljLabel2=newJLabel();

JLabeljLabel3=newJLabel();

JLabeljLabel4=newJLabel();

JLabeljLabel5=newJLabel();

JTextFieldsid=newJTextField(10);

JTextFieldsname=newJTextField(10);

JTextFieldsowner=newJTextField(10);

JTextFieldsstatus=newJTextField(10);

JTextFieldsuser=newJTextField(10);

JButtonaddconfirm=newJButton();

publicbookAdd(){

this.setTitle("增加图书信息");

this.setResizable(false);

try{Init();}catch(Exceptione){e.printStackTrace();}

//设置居中

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

this.setLocation((int)(screenSize.width-400)/2,(int)(screenSize.height-300)/2+45);

}

publicvoidInit()throwsException{

this.setSize(300,500);

c=this.getContentPane();

c.setLayout(newFlowLayout());

jLabel1.setText("图书ID:

");

jLabel1.setFont(newFont("Dialog",0,12));

c.add(jLabel1);

sid.setText(null);

sid.setFont(newFont("Dialog",0,12));

c.add(sid);

jLabel2.setText("图书名称:

");

jLabel2.setFont(newFont("Dialog"

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

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1