java课程设计小型图书管理系统.docx
《java课程设计小型图书管理系统.docx》由会员分享,可在线阅读,更多相关《java课程设计小型图书管理系统.docx(48页珍藏版)》请在冰豆网上搜索。
java课程设计小型图书管理系统
Java应用课程设计
项目名称:
小型图书管理系统
课程名称:
Java应用
项目作者:
***
完成日期:
2008年12月24日
前言
本系统是小型图书管理系统,专为个人设计。
本系统启动后需要登陆,然后进入主界
在这个界面我们可以选择所需要的功能模块来完成所要执行的功能。
系统共有4个功能模块:
图书入库、图书查询、图书删除、图书概览、修改密码。
支持一系列关于图书管理方面的简单操作,诸如查询、删除、添加、修改密码等。
系统流程图
说明:
首先是输入判断,相当于在登陆模块,要求用户输入用户名和密码;然后判断,如果判断失败退出系统,否则进入图书管理系统的主界面。
进入主界面后,用户要选择所需执行的功能,即通过鼠标点击相应项,来完成所需操作。
数据库设计
在图书管理系统中,共设计2张表。
本系统使用Access来创建数据表。
数据库的名称为Book.mdb。
1.表book
字段名称
数据类型
图书名
文本
图书号
文本(主键)
单价
文本
作者
文本
出版社
文本
入库时间
文本
2.表user
字段名称
数据类型
用户名
文本(主键)
密码
文本
系统源码
程序代码
1登陆界面:
程序名Login.java
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.Container;
importjava.util.*;
importjava.sql.*;
classLoginextendsJFrameimplementsActionListener
{Containercp=null;
JFramef=null;
JButtonj1,j2;
JTextFieldt1;
JPasswordFieldt2;
JLabeljlable1,jlable2;
Colorc;
JPaneljp1,jp2;
Login(){
f=newJFrame("小型图书管理系统");
j1=newJButton("确定");
j2=newJButton("取消");
cp=f.getContentPane();
jlable1=newJLabel("输入用户名");
jlable2=newJLabel("用户密码");
jp1=newJPanel();
jp2=newJPanel();
t1=newJTextField(18);
t2=newJPasswordField(18);
jp1.add(jlable1);
jp1.add(t1);
jp1.add(jlable2);
jp1.add(t2);
JLabelJL=newJLabel("欢迎登陆",SwingConstants.CENTER);
cp.add(JL,"North");
jp2.add(j1);
jp2.add(j2);
cp.add(jp1,"Center");
cp.add("South",jp2);
jp1.setBackground(newColor(255,153,255));
Toolkitkit=Toolkit.getDefaultToolkit();
Dimensionscreen=kit.getScreenSize();
intx=screen.width;/*取得显示器窗口的宽度*/
inty=screen.height;/*取得显示器窗口的高度*/
//setSize(x,y);/*让系统窗口平铺整个显示器窗口*/
f.setSize(300,300);
intxcenter=(x-300)/2;
intycenter=(y-300)/2;
f.setLocation(xcenter,ycenter);/*显示在窗口中央*/
f.setVisible(true);
//-----------------------------------------------------
j1.addActionListener(this);//注册事件监听器
j2.addActionListener(this);
f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
}
);
}
publicvoidconfirm()//验证用户和密码是否存在
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!
");}
try{
Stringurl="jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件
Connectioncon=DriverManager.getConnection(url);
Statementsql=con.createStatement();
Stringuname=t1.getText().trim();
StringMima=t2.getText().trim();
StringqueryMima="select*fromuserwhere用户名='"+uname+"'and密码='"+Mima+"'";
ResultSetrs=sql.executeQuery(queryMima);
if(rs.next())
{
newBook(uname);
f.hide();
con.close();
}else{
JOptionPane.showMessageDialog(null,"该用户不存在","提示!
",
JOptionPane.YES_NO_OPTION);
}
t1.setText("");
t2.setText("");
}catch(SQLExceptiong)
{
System.out.println("ECode"+g.getErrorCode());
System.out.println("EM"+g.getMessage());
}
}
publicvoidactionPerformed(ActionEvente)
{
Stringcmd=e.getActionCommand();
if(cmd.equals("确定")){
confirm();
}
elseif(cmd.equals("取消")){
f.dispose();
}
}
publicstaticvoidmain(String[]arg){
Logina=newLogin();
}
}
2图书概览:
程序名BookBrower.java
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.Container;
importjava.util.*;
importjava.sql.*;
classBookBrowerimplementsActionListener
{
JFramef;
Containercp;
JPaneljpS,jpanelWest;
JButtonjbt1,jbt2;//按钮,查询、取消、修改
JLabellabel,L;//标签
//定义文本框
JTabletable;//用来接收数据库中返回的信息
ObjectcolumnName[]={"图书名","图书号","单价","作者","出版社","入库时间"};
Objectar[][]=newObject[80][6];
Stringsno;
Stringcount="xx";
BookBrower()
{
f=newJFrame();
cp=f.getContentPane();//初始化面板、按钮、标签、文本框
jpS=newJPanel();
jpanelWest=newJPanel();
//------------------------------------------------
jbt1=newJButton("确定");
jbt2=newJButton("返回");
//------------------------------------------------
label=newJLabel("图书概览",SwingConstants.CENTER);
label.setForeground(Color.blue);
L=newJLabel("书库现在共有图书"+count+"本");
//------------------------------------------------
table=newJTable(ar,columnName);//ar存放表中的数据,columnname表示列名
JScrollPanescrollpane=newJScrollPane(table);
//------------------------------------------------
//布局,添加控件
jpS.add(jbt1);
jpS.add(jbt2);
JPaneljpanel=newJPanel();
jpanel.add(label);
JPanelpp4=newJPanel();
JPaneljpE=newJPanel();
cp.add(jpanel,"North");
JPaneljp=newJPanel();
//jp.add(scrollpane);
JPanelp=newJPanel();//用来放两个表
p.setLayout(newBorderLayout());
p.add(L,"North");
p.add(scrollpane);
cp.add(pp4,"West");
cp.add(p,"Center");
cp.add(jpS,"South");
cp.add(jpE,"East");
//------------------------------------------------
Toolkitkit=Toolkit.getDefaultToolkit();
Dimensionscreen=kit.getScreenSize();
intx=screen.width;/*取得显示器窗口的宽度*/
inty=screen.height;/*取得显示器窗口的高度*/
f.setSize(400,330);
intxcenter=(x-350)/2;
intycenter=(y-330)/2;
f.setLocation(xcenter,ycenter);/*显示在窗口中央*/
f.setVisible(true);
//-------------------------------------------------
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
/*f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
}
);*/
}
//------------------------------------------------
inti=0;
publicvoidshowRecord()
{
while(i>=0)
{
ar[i][0]="";
ar[i][1]="";
ar[i][2]="";
ar[i][3]="";
ar[i][4]="";
ar[i][5]="";
i--;
}
i=0;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!
");}
try{
Stringurl="jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ=Book.mdb";//直接使用当前类目录下的数据库文件
Connectioncon=DriverManager.getConnection(url);
Strings="select*frombook";
Statementsql=con.createStatement();
ResultSetrs=sql.executeQuery(s);
while(rs.next())
{
Stringbname=rs.getString
(1);
Stringbno=rs.getString
(2);
Stringprice=rs.getString(3);
Stringwriter=rs.getString(4);
Stringpublish=rs.getString(5);
Stringindate=rs.getString(6);
ar[i][0]=bname;
ar[i][1]=bno;
ar[i][2]=price;
ar[i][3]=writer;
ar[i][4]=publish;
ar[i][5]=indate;
i++;
}
count=""+i+"";
L.setText("书库现在共有图书"+count+"本");
f.repaint();
con.close();
}catch(SQLExceptiong)
{
System.out.println("ECode"+g.getErrorCode());
System.out.println("EM"+g.getMessage());
}
}
publicvoidactionPerformed(ActionEvente)
{
Stringcmd=e.getActionCommand();
if(cmd.equals("确定"))
{
f.hide();
}
if(cmd.equals("返回"))
f.hide();
}
publicstaticvoidmain(String[]arg){
BookBrowera=newBookBrower();
a.showRecord();
}
}
3图书查询:
程序名QueryBook.java
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.Container;
importjava.util.*;
importjava.sql.*;
classQueryBookimplementsActionListener
{
JFramef3;
Containercp;
JPaneljp1,jp2,jp3,jp4,jp,jpanelWest;
JButtonjbt1,jbt2;//按钮,确定、取消
JLabellabel;//标签:
请输入图书号
JTextFieldtf,tf1,tf2,tf3,tf4,tf5,tf6;//定义文本框
JLabellabel1,label2,label3,label4;
QueryBook()
{
f3=newJFrame();
cp=f3.getContentPane();//初始化面板、按钮、标签、文本框
jp1=newJPanel();
jp2=newJPanel();
jp3=newJPanel();
jp4=newJPanel();
jpanelWest=newJPanel();
jp=newJPanel();
//------------------------------------------------
jbt1=newJButton("确定");
jbt2=newJButton("取消");
//------------------------------------------------
label=newJLabel("请输入图书号:
",SwingConstants.CENTER);
label.setForeground(Color.blue);
tf=newJTextField(20);
//------------------------------------------------
tf1=newJTextField(20);
tf2=newJTextField(20);
tf3=newJTextField(20);
tf4=newJTextField(20);
tf5=newJTextField(20);
tf6=newJTextField(20);
//------------------------------------------------
//布局,添加控件
JPaneljpanel=newJPanel();
jpanel.add(label);
jpanel.add(tf);
JPanelpp4=newJPanel();
JPaneljpane4=newJPanel();
cp.add(jpanel,"North");
JPanelpp2=newJPanel(newGridLayout(6,1));
JPanelpp3=newJPanel();
pp4.setLayout(newGridLayout(6,1));
pp4.add(newJLabel("图书名",SwingConstants.CENTER));
pp2.add(tf1);
pp4.add(newJLabel("图书号",SwingConstants.CENTER));
pp2.add(tf2);
pp4.add(newJLabel("单价",SwingConstants.CENTER));
pp2.add(tf3);
pp4.add(newJLabel("作者",SwingConstants.CENTER));
pp2.add(tf4);
pp4.add(newJLabel("出版社",SwingConstants.CENTER));
pp2.add(tf5);
pp4.add(newJLabel("入库时间",SwingConstants.CENTER));
pp2.add(tf6);
pp3.add(jbt1);
pp3.add(jbt2);
cp.add(pp4,"West");
cp.add(pp2,"Center");
cp.add(pp3,"South");
cp.add(jpane4,"East");
//------------------------------------------------
Toolkitkit=Toolkit.getDefaultToolkit();
Dimensionscreen=kit.getScreenSize();
intx=screen.width;/*取得显示器窗口的宽度*/
inty=screen.height;/*取得显示器窗口的高度*/
f3.setSize(350,330);
intxcenter=(x-350)/2;
intycenter=(y-330)/2;
f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/
f3.setVisible(true);
//-------------------------------------------------
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
/*f3.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){