资源描述
广西外国语学院信息工程学院
面向对象java程序设计 试验汇报
班级
网络工程1301
姓名
李亮锋
学号
日期
试验地点
试验名称
广外图书馆管理系统
一. 试验目标
1、掌握Java图形用户设计Swing常见组件。
2、掌握SQL Server 数据库、数据表创建和使用。
3、掌握事件监听机制。
4、熟悉使用SQL语言操作数据库,如增加、删除、查询和修改等。
5、熟悉应用程序开发步骤。
6、程序打包和安装。
7、锻炼学生逻辑思维
。
试验设备(仪器、材料、软件等)
硬件:计算机
软件:JDK、Eclipse
三、试验内容
本系统将会包含到图书馆日常管理工作基础常见细节,诸如新图书入库登记,图书馆全部书籍分类管理,图书查询,图书借阅、退还手续登记,费旧图书清理撤消等,本系统所要实现这些功效基础上涵盖了图书馆日常管理工作,基础能够满足校园图书馆工作人员管理需要。在对本系统具体开发过程当中,将采取Java语言进行开发,以SQLServer实现后台数据库,本系统是完全基于图形化用户界面(GUI)单机版本。
四、试验步骤
请参见教材第20章综合案例——快递打印系统格式来书写,要求有界面和关键代码。
图书馆管理系统要有信息:用户登录(注册),新图书入库,图书信息查询,图书更新(修改),旧图书删除,办理借阅证登记,图书借阅管理,软件说明及相关作者等。
以下是示例,每个同学能够有自己功效设计和数据库设计。
系统功效结构
图书入库对应数据库
学生信息表对应数据库
用户信息表对应数据库
(一)图书菜单
主菜单源代码以下:
package book;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractAction;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import llf.frane.Login;
import booksystem.BookDelete;
import booksystem.BookQuery;
import booksystem.BookUpdate;
import booksystem.Dengji;
public class MainFrame extends JFrame{
JMenuBar menubar=null;
JMenu jm=null;
JPanel jp;//图片
Icon icon;//图片
JLabel jl;//图片
public MainFrame(){
setSize(558,370);
setTitle("广外图书管理系统");
setJMenuBar(getJMenuBar1());
setLocationRelativeTo(null);
setResizable(false);
}
private JMenuBar getJMenuBar1() {
// TODO Auto-generated method stub
if(menubar==null){
menubar=new JMenuBar();
JMenu jm1=new JMenu("菜单");
JMenu jm2=new JMenu("选项");
JMenu jm3=new JMenu("帮助");
menubar.add(jm1);
menubar.add(jm2);menubar.add(jm3);
JMenuItem bookinsert=new JMenuItem("新图书入库");
JMenuItem bookquery=new JMenuItem("图书信息查询");
JMenuItem bookupdate=new JMenuItem("图书更新");
JMenuItem bookdelete=new JMenuItem("旧图书删除");
JMenuItem bookexit=new JMenuItem("退出系统");
JMenuItem dengji=new JMenuItem("办理借阅证登记");
JMenuItem manage=new JMenuItem("图书借阅管理");
JMenuItem denglu=new JMenuItem("用户登陆");
JMenuItem introduce=new JMenuItem("软件说明");
JMenuItem author =new JMenuItem("相关作者");
jm1.add(bookinsert);
jm1.add(bookquery);
jm1.add(bookupdate);
jm1.add(bookdelete);
jm1.add(bookexit);
jm2.add(dengji);jm2.add(manage);
jm2.add(denglu);
jm3.add(introduce);jm3.add(author);
JPanel jp=new JPanel();//图片
Icon iocn=new ImageIcon("C:/Users/Administrator/Desktop/李亮锋/tushuguan.JPG");
JLabel jl=new JLabel(iocn);//图片
jp.add(jl);//图片
this.add(jp);//图片
bookinsert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Bookinsert bi=new Bookinsert();
bi.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
bi.setVisible(true);
}
});
bookquery.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
BookQuery bq=new BookQuery();
bq.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
bq.setVisible(true);
}
});
bookupdate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
BookUpdate bu=new BookUpdate();
bu.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
bu.setVisible(true);
}
});
bookdelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
BookDelete bd=new BookDelete();
bd.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
bd.setVisible(true);
}
});
bookexit.addActionListener(new ActionListener() {//退出
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.exit(1);
}
});
dengji.addActionListener(new ActionListener() {//办理借阅证登记
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Dengji dj=new Dengji();
dj.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
dj.setVisible(true);
}
});
introduce.addActionListener(new ActionListener() {//软件说明
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Introduce id=new Introduce();
id.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
id.setVisible(true);
}
});
manage.addActionListener(new ActionListener() {//图书借阅管理
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Manage ma=new Manage();
ma.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
ma.setVisible(true);
}
});
denglu.addActionListener(new ActionListener() {//登陆
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Login lg=new Login();
lg.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
lg.setVisible(true);
}
});
author.addActionListener(new ActionListener() {//相关作者
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Author at=new Author();
at.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
at.setVisible(true);
}
});
}
return menubar;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MainFrame mf=new MainFrame();
mf.setVisible(true);
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
(二)登录界面
登陆界面源代码以下:
package llf.frane;
import java.awt.Component;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Login extends JFrame{
JPanel jP1,jP2,jP3,jP4;
JLabel jl1,jl2,jl3;
JTextField tf;
JPasswordField pf;
JButton b1,b2,b3;
public Login(){
jl1=new JLabel("广外图书馆");
jl1.setFont(new Font("隶书",Font.BOLD,40));
jl2=new JLabel("账户:");
jl3=new JLabel("密码:");
b1=new JButton("登陆");
b2=new JButton("取消");
b3=new JButton("重置");
tf=new JTextField(15);
pf=new JPasswordField(15);
jP1=new JPanel();jP2=new JPanel();
jP3=new JPanel();jP4=new JPanel();
setLayout(new GridLayout(4,1));
jP1.add(jl1);jP2.add(jl2);jP2.add(tf);
jP3.add(jl3);jP3.add(pf);
jP4.add(b1);jP4.add(b2);jP4.add(b3);
this.add(jP1);this.add(jP2);
this.add(jP3);this.add(jP4);
setTitle("用户登陆");
setSize(500,400);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(1);
}
});
b3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
tf.setText("");
pf.setText("");
}
});
}
public static void main(String[] args) {
Login lg=new Login();
}
}
(三)新图书入库
新图书入库源代码
package book;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import llf.frane.DAO;
public class Bookinsert extends JFrame {
JLabel jl1,jl2,jl3,jl4,jl5;
JTextField jt1,jt2,jt3,jt4,jt5;
JButton jb1,jb2;
JPanel jp1,jp2,jp3,jp4,jp5,jp6;
public Bookinsert(){
setSize(400,300);
setTitle("新图书入库");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLayout(new GridLayout(6,1));
jp1=new JPanel();jp2=new JPanel();
jp3=new JPanel();jp4=new JPanel();
jp5=new JPanel();jp6=new JPanel();
jl1=new JLabel("图书编号");
jl2=new JLabel("图书名称");
jl3=new JLabel("出版日期");
jl4=new JLabel("出版社名称");
jl5=new JLabel("图书总数");
jt1=new JTextField(15);
jt2=new JTextField(15);
jt3=new JTextField(15);
jt4=new JTextField(15);
jt5=new JTextField(15);
jb1=new JButton("入库");
jb2=new JButton("重置");
jp1.add(jl1);jp1.add(jt1);
jp2.add(jl2);jp2.add(jt2);
jp3.add(jl3);jp3.add(jt3);
jp4.add(jl4);jp4.add(jt4);
jp5.add(jl5);jp5.add(jt5);
jp6.add(jb1);jp6.add(jb2);
this.add(jp1);this.add(jp2);this.add(jp3);
this.add(jp4);this.add(jp5);this.add(jp6);
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//System.exit(1);
String sname=jt1.getText().trim();
String sno=jt2.getText().trim();
String sriqi=jt3.getText().trim();
String schubanshe=jt4.getText().trim();
String szongshu=jt5.getText().trim();
String sex;
try { if(sname.equals("")||sno.equals("")||sriqi.equals("")||schubanshe.equals("")||szongshu.equals("")){
JOptionPane.showMessageDialog(null,"请输入完整信息");
}else{
Connection conn=null;
PreparedStatement ps=null;
conn=DAO.getConn();
ps=conn.prepareStatement("insert into inputbook values ('"+sname+"','"+sno+"','"+sriqi+"','"+schubanshe+"','"+szongshu+"')");
int i=ps.executeUpdate();
if(i==1){
JOptionPane.showMessageDialog(null,"入库成功");
}else{
JOptionPane.showMessageDialog(null,"入库失败");
}
}
} catch (HeadlessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
jb2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
jt1.setText("");jt2.setText("");
jt3.setText("");jt4.setText("");jt5.setText("");
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Bookinsert b=new Bookinsert();
b.setVisible(true);b.setResizable(false);
}
}
(四)图书信息查询
图书信息查询源代码以下:
package booksystem;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import llf.frane.DAO;
public class BookQuery extends JFrame {
JLabel jl1,jl2,jl3,jl4;
JTextField jf1,jf2,jf3,jf4;//文本
JButton jb1;//按钮
JPanel jp1,jp2,jp3,jp4;
public BookQuery(){
jl1=new JLabel("查询图书名称:");
jl2=new JLabel("图书编号:");
jl3=new JLabel("入库日期");
jl4=new JLabel("入库总数:");
jf1=new JTextField(15);
jf2=new JTextField(15);
jf3=new JTextField(15);
jf4=new JTextField(15);
jb1=new JButton("查询");
jp1=new JPanel();jp2=new JPanel();
jp3=new JPanel();jp4=new JPanel();
this.setLayout(new GridLayout(4, 1));
jp1.add(jl1);jp1.add(jf1);jp1.add(jb1);
jp2.add(jl2);jp2.add(jf2);jp3.add(jl3);jp3.add(jf3);
jp4.add(jl4);jp4.add(jf4);
this.add(jp1);this.add(jp2);
this.add(jp3);this.add(jp4);
setTitle("图书查询");
setSize(400,300);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String bookname=jf1.getText().trim();
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
conn=DAO.getConn();
try {
if(bookname.equals("")){
JOptionPane.showMessageDialog(null,"请输入你要查询书名");
}else{
String sql="select * from inputbook where bookname='"+bookname+"'";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()){
jf2.setText(rs.getString(1));
jf3.setText(rs.getString(3));
}else{
JOptionPane.showMessageDialog(null,"你查询图书不存在");
}
}
} catch (HeadlessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
BookQuery bc=new BookQuery();
}
}
(五)图书更新
图书更新源代码以下:
package booksystem;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import llf.frane.DAO;
public class BookUpdate extends JFrame {
JLabel jl1,jl2,jl3,jl4,jl5;
JTextField jt1,jt2,jt3,jt4,jt5;//文本
JButton jb1,jb2;
JPanel jp1,jp2,jp3,jp4,jp5,jp6;
public BookUpdate(){
jl1=new JLabel("图书名称");
jl2=new JLabel("图书编号");
jl3=new JLabel("入库日期");
jl4=new JLabel("入库日期");
jl5=new JLabel("入库总数");
jt1=new JTextField(15);jt2=new JTextField(15);
jt3=new JTextField(15);jt4=new JTextField(15);
jt5=new JTextField(15);
jb1=new JButton("查询");
jb2=new JButton("修改");
jp1=new JPanel();jp2=new JPanel();
jp3=new JPanel();jp4=new JPanel();
jp5=new JPanel();jp6=new JPanel();
setLayout(new GridLayout(6, 1));
jp1.add(jl1);jp1.add(jt1);jp2.add(jl2);jp2.add(jt2);
jp3.add(jl3);jp3.add(jt3);jp4.add(jl4);jp4.add(jt4);
jp5.add(jl5);jp5.add(jt5);jp6.add(jb1);jp6.add(jb2);
this.add(jp1);this.add(jp2);
this.add(jp3);this.add(jp4);
this.add(jp5);this.add(jp6);
setTitle("图书更新");
setSize(500,350);
setLocationRelativeTo(null);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String bookname=jt1.getText(
展开阅读全文