资源描述
Java应用课程设计
项目名称:小型图书管理系统
课程名称:Java应用
项目作者:* * *
完成日期:12月24日
序言
本系统是小型图书管理系统,专为个人设计。本系统开启后需要登陆,然后进入主界
在这个界面我们能够选择所需要功效模块来完成所要实施功效。
系统共有4个功效模块:图书入库、图书查询、图书删除、图书概览、修改密码。支持一系列相关图书管理方面简单操作,诸如查询、删除、添加、修改密码等。
系统步骤图退出
图书删除
图书概览
修改密码
图书查询
图书入库
系统开始
失败
退出
判定
成功
判定
输入密码
说明:
首先是输入判定,相当于在登陆模块,要求用户输入用户名和密码;然后判定,假如判定失败退出系统,不然进入图书管理系统主界面。进入主界面后,用户要选择所需实施功效,即经过鼠标点击对应项,来完成所需操作。
图书名
图书号
单价
作者
出版社
入库时间
表book
表user
用户名
密码
数据库表
数据库设计
在图书管理系统中,共设计2张表。本系统使用Access来创建数据表。数据库名称为Book.mdb。
1.表book
字段名称
数据类型
图书名
文本
图书号
文本(主键)
单价
文本
作者
文本
出版社
文本
入库时间
文本
2.表user
字段名称
数据类型
用户名
文本(主键)
密码
文本
系统源码
程序代码
1登陆界面:程序名Login.java
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.Container;
import java.util.*;
import java.sql.*;
class Login extends JFrame implements ActionListener
{ Container cp=null;
JFrame f=null;
JButton j1,j2;
JTextField t1;
JPasswordField t2;
JLabel jlable1,jlable2;
Color c;
JPanel jp1,jp2;
Login(){
f=new JFrame("小型图书管理系统");
j1=new JButton("确定");
j2=new JButton("取消");
cp=f.getContentPane();
jlable1=new JLabel(" 输入用户名");
jlable2=new JLabel(" 用户密码");
jp1=new JPanel();
jp2=new JPanel();
t1=new JTextField(18);
t2=new JPasswordField(18);
jp1.add(jlable1);
jp1.add(t1);
jp1.add(jlable2);
jp1.add(t2);
JLabel JL=new JLabel("<html><font color=#CC00FF size='7'><i>欢迎登陆</i></font>",SwingConstants.CENTER);
cp.add(JL,"North");
jp2.add(j1);
jp2.add(j2);
cp.add(jp1,"Center");
cp.add("South",jp2);
jp1.setBackground(new Color(255,153,255));
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screen=kit.getScreenSize();
int x=screen.width; /*取得显示器窗口宽度*/
int y=screen.height; /*取得显示器窗口高度*/
//setSize(x,y); /*让系统窗口平铺整个显示器窗口*/
f.setSize(300,300);
int xcenter=(x-300)/2;
int ycenter=(y-300)/2;
f.setLocation(xcenter,ycenter);/*显示在窗口中央*/
f.setVisible(true);
//-----------------------------------------------------
j1.addActionListener(this);//注册事件监听器
j2.addActionListener(this);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public void confirm()//验证用户和密码是否存在
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}
try{
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用目前类目录下数据库文件
Connection con=DriverManager.getConnection(url);
Statement sql=con.createStatement();
String uname=t1.getText().trim();
String Mima=t2.getText().trim();
String queryMima="select * from user where 用户名='"+uname+"' and 密码='"+Mima+"'";
ResultSet rs=sql.executeQuery(queryMima);
if(rs.next())
{
new Book(uname);
f.hide();
con.close();
}else{
JOptionPane.showMessageDialog(null,"该用户不存在","提醒!",
JOptionPane.YES_NO_OPTION);
}
t1.setText("");
t2.setText("");
} catch(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
}
public void actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if(cmd.equals("确定")){
confirm();
}
else if(cmd.equals("取消")){
f.dispose();
}
}
public static void main(String []arg){
Login a=new Login();
}
}
2图书概览:程序名BookBrower.java
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.Container;
import java.util.*;
import java.sql.*;
class BookBrower implements ActionListener
{
JFrame f;
Container cp;
JPanel jpS,jpanelWest;
JButton jbt1,jbt2;//按钮,查询、取消、修改
JLabel label,L; //标签
//定义文本框
JTable table;//用来接收数据库中返回信息
Object columnName[]={"图书名","图书号","单价","作者","出版社","入库时间"};
Object ar[][] =new Object[80][6];
String sno;
String count="xx";
BookBrower()
{
f=new JFrame();
cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框
jpS=new JPanel();
jpanelWest=new JPanel();
//------------------------------------------------
jbt1=new JButton("确定");
jbt2=new JButton("返回");
//------------------------------------------------
label=new JLabel("<html><font color=#CC00FF size='4'>图书概览</font>",SwingConstants.CENTER);
label.setForeground(Color.blue);
L=new JLabel("书库现在共有图书"+count+"本");
//------------------------------------------------
table=new JTable(ar,columnName);//ar存放表中数据,columnname表示列名
JScrollPane scrollpane = new JScrollPane(table);
//------------------------------------------------
//布局,添加控件
jpS.add(jbt1);
jpS.add(jbt2);
JPanel jpanel=new JPanel();
jpanel.add(label);
JPanel pp4=new JPanel();
JPanel jpE=new JPanel();
cp.add(jpanel,"North");
JPanel jp=new JPanel();
//jp.add(scrollpane);
JPanel p=new JPanel();//用来放两个表
p.setLayout(new BorderLayout());
p.add(L,"North");
p.add(scrollpane);
cp.add(pp4,"West");
cp.add(p,"Center");
cp.add(jpS,"South");
cp.add(jpE,"East");
//------------------------------------------------
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screen=kit.getScreenSize();
int x=screen.width; /*取得显示器窗口宽度*/
int y=screen.height; /*取得显示器窗口高度*/
f.setSize(400,330);
int xcenter=(x-350)/2;
int ycenter=(y-330)/2;
f.setLocation(xcenter,ycenter);/*显示在窗口中央*/
f.setVisible(true);
//-------------------------------------------------
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
/* f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);*/
}
//------------------------------------------------
int i=0;
public void showRecord()
{
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(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}
try{
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用目前类目录下数据库文件
Connection con=DriverManager.getConnection(url);
String s="select * from book ";
Statement sql=con.createStatement();
ResultSet rs=sql.executeQuery(s);
while(rs.next())
{
String bname=rs.getString(1);
String bno=rs.getString(2);
String price=rs.getString(3);
String writer=rs.getString(4);
String publish=rs.getString(5);
String indate=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(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
}
public void actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if(cmd.equals("确定"))
{
f.hide();
}
if(cmd.equals("返回"))
f.hide();
}
public static void main(String []arg){
BookBrower a=new BookBrower();
a.showRecord();
}
}
3图书查询:程序名QueryBook.java
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.Container;
import java.util.*;
import java.sql.*;
class QueryBook implements ActionListener
{
JFrame f3;
Container cp;
JPanel jp1,jp2,jp3,jp4,jp,jpanelWest;
JButton jbt1,jbt2;//按钮,确定、取消
JLabel label; //标签:请输入图书号
JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6; //定义文本框
JLabel label1,label2,label3,label4;
QueryBook()
{
f3=new JFrame();
cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
jp4=new JPanel();
jpanelWest=new JPanel();
jp=new JPanel();
//------------------------------------------------
jbt1=new JButton("确定");
jbt2=new JButton("取消");
//------------------------------------------------
label=new JLabel("<html><font color=#CC00FF size='4'>请输入图书号:</font>",SwingConstants.CENTER);
label.setForeground(Color.blue);
tf=new JTextField(20);
//------------------------------------------------
tf1=new JTextField(20);
tf2=new JTextField(20);
tf3=new JTextField(20);
tf4=new JTextField(20);
tf5=new JTextField(20);
tf6=new JTextField(20);
//------------------------------------------------
//布局,添加控件
JPanel jpanel=new JPanel();
jpanel.add(label);
jpanel.add(tf);
JPanel pp4=new JPanel();
JPanel jpane4=new JPanel();
cp.add(jpanel,"North");
JPanel pp2=new JPanel(new GridLayout(6,1));
JPanel pp3=new JPanel();
pp4.setLayout(new GridLayout(6,1));
pp4.add(new JLabel("图书名",SwingConstants.CENTER));
pp2.add(tf1);
pp4.add(new JLabel("图书号",SwingConstants.CENTER));
pp2.add(tf2);
pp4.add(new JLabel("单 价",SwingConstants.CENTER));
pp2.add(tf3);
pp4.add(new JLabel("作 者",SwingConstants.CENTER));
pp2.add(tf4);
pp4.add(new JLabel("出版社",SwingConstants.CENTER));
pp2.add(tf5);
pp4.add(new JLabel("入库时间",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");
//------------------------------------------------
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screen=kit.getScreenSize();
int x=screen.width; /*取得显示器窗口宽度*/
int y=screen.height; /*取得显示器窗口高度*/
f3.setSize(350,330);
int xcenter=(x-350)/2;
int ycenter=(y-330)/2;
f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/
f3.setVisible(true);
//-------------------------------------------------
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
/*f3.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);*/
}
//------------------------------------------------
public void showRecord()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");}
try{
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Book.mdb";//直接使用目前类目录下数据库文件
Connection con=DriverManager.getConnection(url);
Statement sql;
String ql=tf.getText().trim();
String s="select * from book where 图书号 ='"+ql +"'";
sql=con.createStatement();
ResultSet rs=sql.executeQuery(s);
if(rs.next())
{
String bname=rs.getString(1);
String bno=rs.getString(2);
String price=rs.getString(3);
String writer=rs.getString(4);
String publish=rs.getString(5);
String indate=rs.getString(6);
tf1.setText(bname);
tf2.setText(bno);
tf3.setText(price);
tf4.setText(writer);
tf5.setText(publish);
tf6.setText(indate);
}
else
{JOptionPane.showMessageDialog(null,"您输入图书号不存在,请重新输入",
"输入错误", JOptionPane.YES_NO_OPTION);
}
con.close();
}catch(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
tf1.setEditable(false);
tf2.setEditable(false);
tf3.setEditable(false);
tf4.setEditable(false);
tf5.setEditable(false);
tf6.setEditable(false);
}
public void actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if(cmd.equals("确定"))
{
showRecord();
tf.setText("");
}
else if(cmd.equals("取消"))
f3.hide();
}
public static void main(String []arg){
QueryBook a=new QueryBook();
}
}
4图书删除:程序名RemoveBook.java
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.Container;
import java.util.*;
import java.sql.*;
class RemoveBook implements ActionListener
{
JFrame f;
Container cp;
JPanel jpS,jpanelWest;
JButton jbt1,jbt2,jbt3;//按钮,查询、取消、修改
JLabel label,L; //标签:请输入学号
JTextField tf; //定义文本框
JTable table;//用来接收数据库中返回信息
Object columnName[]={"图书名","图书号","单价","作者","出版社","入库时间"};
Object ar[][] =new Object[80][6];
String sno;
String count="xx";
RemoveBook()
{
f=new JFrame();
cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框
jpS=new JPanel();
jpanelWest=new JPanel();
//------------------------------------------------
jbt1=new JButton("查询");
jbt2=new JButton("取消");
jbt3=new JButton("删除");
//------------------------------------------------
label=new JLabel("<html><font color=#CC00FF size='4'>请输入要删除图书名:</font>",SwingConstants.CENTER);
label.setForeground(Color.blue);
L=new JLabel("该种图书共有"+count+"本");
//------------------------------------------------
table=new JTable(ar,columnName);//ar存放表中数据,columnname表示列名
JScrollPane scrollpane = new JScrollPane(table);
//------------------------------------------------
tf=new JTextField(18);
//------------------------------------------------
//------------------------------------------------
//布局,添加控件
jpS.add(jbt1);
jpS.add(jbt2);
jpS.add(jbt3);
JPanel jpanel=new JPanel();
jpanel.add(label);
jpanel.add(tf);
JPanel pp4=new JPanel();
JPanel jpE=new JPanel();
cp.add(jpanel,"North");
JPanel jp=new JPanel();
//jp.add(scrollpane);
JPanel p=new JPanel();//用来放两个表
p.setLayout(new BorderLayout());
p.add(L,"North");
p.add(scrollpane);
cp.add(pp4,"West");
cp.add(p,"Center");
cp.add(jpS,"South");
cp.add(jpE,"East");
//------------------------------------------------
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screen=kit.getScreenSize();
int x=screen.width; /*取得显示器窗口宽度*/
int y=screen.height; /*取得显示器窗口高度*/
f.setSize(400,330);
int xcenter=(x-350)/2;
int ycenter=(y-330)/2;
f.setLocation(xcenter,ycenter);/*显示在窗口中央*/
f.setVisible(true);
//-------------------------------------------------
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
jbt3.addActionListener(this);
/*f.addWindowListener(new Window
展开阅读全文