java课程设计小型图书管理系统
更新时间:2024-06-01 03:47:01 阅读量: 综合文库 文档下载
《JAVA数据库应用开发》实训报告
课题名称: 图书管理系统设计与实现
专 业: 计算机应用技术 班 级: 计算机应用ZB1001 学 号: 2010920963 姓 名: 胡况 成 绩:_________________________
计算机学院
二〇一一 年 月 日
1
目 录
课程设计目的………………………………………… 课程设计题目描述和要求…………………………… 课程设计报告内容…………………………………… 结论…………………………………………………… 结束语…………………………………………………
2
一、课程设计目的
通过项目驱动的学习和综合实训,熟练掌握运用Java语言进行桌面应用程序开发的基本知识和技能;熟练掌握JAVA的基本语法与JDBC数据库技术的应用;进一步熟悉SQL Server数据库的数据库管理(数据库的创建、备份与恢复、函数与存储过程的应用、数据导入导出、作业的调度等)、表的设计(表的创建、修改、删除,字段的默认值、约束及关系等)、数据的查询处理(insert、update、delete、select语句的应用)等技术;并能结合数据库应用技术和软件工程技术进行桌面应用程序的开发,能基本胜任Java桌面开发程序员的岗位。
二、课程设计题目描述和要求
图书管理系统,是一个由人、计算机等组成的能进行管理信息的收集、传递、加工、保存、维护和使用的系统。其功能一般包括:图书信息管理、用户信息管理、图书借阅、图书归还、违约与毁坏赔偿、图书借还查询等等。
三、课程设计报告内容
3.1设计方案的论证:
需求分析主要任务是开发者和用户共同研究确定本系统需要实现哪些具体的功能、需要对哪些数据信息进行处理、这些数据描述存在哪些具体的要求以及对系统性能、安全性等方面的详细要求,以便为开发者的设计和用户的验收提供依据。随着现代化技术的提高,学校为了方便于学生的借阅,因此建立了一个图书馆数据库,方便管理! 3.2需求功能的描述。
1、图书馆信息管理:条形码、书名、作者、价格。 2、借出管理:条形码、书名、作者、日期、学生信息。
3、归还管理:条形码、书名、作者、日期、学生信息、是否损坏。 3.2.1学生管理
1、姓名:15个汉字以内,可以带有特殊符号。 2、班级:在20个汉字以内。
3、学号:6-10个数字组成,不能有特殊符号。 3.2.2图书管理
3
1、图书名称:5-15个字母或汉字组成,可带特殊符号。 2、图书编号:5-10个数字或字母组成,不能有特殊符号。 3、图书作者:5-20个汉字或字母组成,可带特殊符号。 4、图书损坏:如有损坏按原价赔偿。
5、图书归还:从登记借阅后算起,一个月内(30天)归还,如超期按每天5元赔偿。
6、图书预订:如借阅时你想借阅的书已被借走,可以登记提前预订。 以上的条目各科目可自己行设计
比如硬件设计:在设计报告中要列出主要芯片的参数、逻辑功能;给出硬件线路图及原理介绍以及必要的计算等。
软件设计:详细介绍软件设计的功能、思想、算法、模块的划分、给出算法的逻辑框图等。
图像设计类:可写出主要功能、思想、实现手法效果图等
4
系统流程图
说明:
首先是输入判断,相当于在登陆模块,要求用户输入用户名和密码;然后判断,如果判断失败退出系统,否则进入图书管理系统的主界面。进入主界面后,用户要选择所需执行的功能,即通过鼠标点击相应项,来完成所需操作。
退出 图书查询 图书入库 图书删除 图书概览 修改密码 判断 成功 系统开始 判断 输入密码 失败 退出 5
数据库表 表book 表user 图书名 图书号 单价 作者 出版社 入库时间 用户名 密码
数据库设计
1.表book 字段名称 图书名 图书号 单价 作者 出版社 入库时间
2.表user 字段名称 用户名 密码
数据类型 文本
文本(主键) 文本 文本 文本 文本
数据类型 文本(主键) 文本
系统源码
程序代码
1登陆界面:程序名Login.java
6
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(\欢迎登陆\ cp.add(JL,\ jp2.add(j1); jp2.add(j2);
cp.add(jp1,\ cp.add(\
jp1.setBackground(new Color(255,153,255));
7
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(\
}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\
try{
String url = \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=\用户名='\密码='\
ResultSet rs=sql.executeQuery(queryMima); if(rs.next()) {
new Book(uname); f.hide();
8
con.close(); }else{
JOptionPane.showMessageDialog(null,\该用户不存在\提示!\ JOptionPane.YES_NO_OPTION); }
t1.setText(\ t2.setText(\
} catch(SQLException g) {
System.out.println(\ System.out.println(\ }
}
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.*;
9
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=\
BookBrower() {
f=new JFrame();
cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框 jpS=new JPanel(); jpanelWest=new JPanel();
//------------------------------------------------ jbt1=new JButton(\确定\ jbt2=new JButton(\返回\
//------------------------------------------------
label=new JLabel(\color=#CC00FF size='4'>图书概览\ label.setForeground(Color.blue);
L=new JLabel(\书库现在共有图书\本\
//------------------------------------------------
table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名 JScrollPane scrollpane = new JScrollPane(table);
//------------------------------------------------ //布局,添加控件
jpS.add(jbt1);
jpS.add(jbt2);
10
JPanel jpanel=new JPanel(); jpanel.add(label);
JPanel pp4=new JPanel(); JPanel jpE=new JPanel();
cp.add(jpanel,\ JPanel jp=new JPanel(); //jp.add(scrollpane);
JPanel p=new JPanel();//用来放两个表 p.setLayout(new BorderLayout());
p.add(L,\ p.add(scrollpane);
cp.add(pp4,\ cp.add(p,\ cp.add(jpS,\
cp.add(jpE,\
//------------------------------------------------ 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); } }
11
);*/ }
//------------------------------------------------ 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(\
}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\
try{
String url = \Access Driver (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url);
String s=\
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;
12
ar[i][3]=writer; ar[i][4]=publish; ar[i][5]=indate; i++; }
count=\
L.setText(\书库现在共有图书\本\ f.repaint();
con.close(); }catch(SQLException g) {
System.out.println(\ System.out.println(\ } }
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
13
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(\color=#CC00FF size='4'>请输入图书号:\ 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);
14
//------------------------------------------------ //布局,添加控件
JPanel jpanel=new JPanel(); jpanel.add(label); jpanel.add(tf);
JPanel pp4=new JPanel(); JPanel jpane4=new JPanel();
cp.add(jpanel,\
JPanel pp2=new JPanel(new GridLayout(6,1)); JPanel pp3=new JPanel();
pp4.setLayout(new GridLayout(6,1));
pp4.add(new JLabel(\图书名\
pp2.add(tf1);
pp4.add(new JLabel(\图书号\ pp2.add(tf2);
pp4.add(new JLabel(\单 价\ pp2.add(tf3);
pp4.add(new JLabel(\作 者\ pp2.add(tf4);
pp4.add(new JLabel(\出版社\ pp2.add(tf5);
pp4.add(new JLabel(\入库时间\ pp2.add(tf6); pp3.add(jbt1); pp3.add(jbt2);
cp.add(pp4,\ cp.add(pp2,\ cp.add(pp3,\
cp.add(jpane4,\
//------------------------------------------------ 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;
15
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(\
}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\
try{
String url = \Access Driver (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url); Statement sql;
String ql=tf.getText().trim();
String s=\图书号 ='\ 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);
16
tf6.setText(indate); }
else
{JOptionPane.showMessageDialog(null,\您输入的图书号不存在,请重新输入\
\输入错误\ }
con.close();
}catch(SQLException g) {
System.out.println(\ System.out.println(\ }
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();
17
} }
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=\
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(\请输入要删除的图书名:\
18
label.setForeground(Color.blue);
L=new JLabel(\该种图书共有\本\
//------------------------------------------------
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,\ JPanel jp=new JPanel(); //jp.add(scrollpane);
JPanel p=new JPanel();//用来放两个表 p.setLayout(new BorderLayout());
p.add(L,\ p.add(scrollpane);
cp.add(pp4,\ cp.add(p,\ cp.add(jpS,\
cp.add(jpE,\
19
//------------------------------------------------ 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 WindowAdapter(){
public void windowClosing(WindowEvent e){ System.exit(0); } } );*/ }
//------------------------------------------------ int i=0;
public void showRecord(String ql) {
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(\
}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\
try{
20
String url = \Access (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url); Statement sql;
String s=\图书名 ='\ 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=\
L.setText(\该种图书共有\本\
f.repaint();
con.close();System.out.println(ar[0][1]); }catch(SQLException g) {
System.out.println(\ System.out.println(\ }
}
public void deleteRecord(int index)
21
Driver
{ try{
Class.forName(\
}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\
try{
String url = \Access Driver (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url); Statement sql;
String ql=(String)(ar[index][1]);
String s=\图书号 ='\ sql=con.createStatement(); int del=sql.executeUpdate(s); if(del==1)
{JOptionPane.showMessageDialog(null,\删除成功!\ \信息\ }
con.close(); f.repaint();
}catch(SQLException g) {
System.out.println(\ System.out.println(\ }
}
public void actionPerformed(ActionEvent e) {
String remember=\ String ql=\
String cmd=e.getActionCommand(); if(cmd.equals(\查询\ {
ql=tf.getText().trim(); remember=ql; showRecord(ql); }
22
if(cmd.equals(\删除\ {
int index=table.getSelectedRow(); if( index==-1)
JOptionPane.showMessageDialog(null,\请选定要删除的表格行\ \输入错误\
else{
deleteRecord(index); //showRecord(remember); } }
if(cmd.equals(\取消\ f.hide(); }
public static void main(String []arg){
RemoveBook a=new RemoveBook(); } }
5图书入库:程序名BookIn.java import java.awt.event.*; import javax.swing.*; import java.awt.*;
import java.awt.Container; import java.util.*; import java.sql.*;
import javax.swing.text.JTextComponent;
//extends JFrame
class BookIn implements ActionListener {
JFrame f3; Container cp;
JPanel jp1,jp2,jp3,jp4,jp,jpanelWest; JButton jbt1,jbt2;//按钮:确定、取消、 JLabel label; //标签
JTextField tf1,tf2,tf3,tf4,tf5,tf6; // JLabel label1,label2,label3,label4;
23
定义文本框
String sno; BookIn() {
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(\color=#CC00FF size='4'>\ label.setForeground(Color.blue);
//------------------------------------------------ tf1=new JTextField(20); tf2=new JTextField(20); tf3=new JTextField(20); tf4=new JTextField(20); tf5=new JTextField(20); tf6=new JTextField(20);
//------------------------------------------------ //布局,添加控件
jp1.add(jbt1); jp1.add(jbt2);
sno=tf4.getText();
jp1.add(new JLabel(\您好\欢迎登陆学生信息系统\
JPanel jpanel=new JPanel(); jpanel.add(label);
24
书入库图
JPanel pp4=new JPanel(); JPanel jpane4=new JPanel();
cp.add(jpanel,\
JPanel pp2=new JPanel(new GridLayout(6,1)); JPanel pp3=new JPanel();
pp4.setLayout(new GridLayout(6,1));
pp4.add(new JLabel(\图书名\
pp2.add(tf1);
pp4.add(new JLabel(\图书号\ pp2.add(tf2);
pp4.add(new JLabel(\单 价\ pp2.add(tf3);
pp4.add(new JLabel(\作 者\ pp2.add(tf4);
pp4.add(new JLabel(\出版社\ pp2.add(tf5);
pp4.add(new JLabel(\入库时间\ pp2.add(tf6); pp3.add(jbt1);
pp3.add(jbt2);
cp.add(pp4,\ cp.add(pp2,\ cp.add(pp3,\
cp.add(jpane4,\
//------------------------------------------------ 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);//注册监听器
25
jbt2.addActionListener(this);
/*f3.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){ System.exit(0); } } );*/ }
//------------------------------------------------ public void insertRecord() {
if(tf1.getText().equals(\||
tf4.getText().equals(\ {
JOptionPane.showMessageDialog(f3,\请填写图书资料\ return; }
try{
Class.forName(\
}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\
try{
String url = \Access Driver (*.mdb)};DBQ=Book.mdb\直接使用当前类目录下的数据库文件 Connection con=DriverManager.getConnection(url); Statement sql;
String s=\into book values('\
tf3.getText()+\');\
//查询输入的图书号是否在数据库中存在
String query=\图书号='\ sql=con.createStatement();
ResultSet rs=sql.executeQuery(query);//返回查询结果集 boolean moreRecords=rs.next();//判断结果集是否有数据
26
if(moreRecords) {
JOptionPane.showMessageDialog(f3,\图书号已经被使用,请重新输入\
con.close(); tf2.setText(\ return; }
int insert=sql.executeUpdate(s); if(insert==1) {
JOptionPane.showMessageDialog(null,\图书信息录入成功!\ tf1.setText(\ tf2.setText(\ tf3.setText(\ tf4.setText(\ tf5.setText(\ tf6.setText(\ }
}catch(SQLException g) {
System.out.println(\ System.out.println(\ }
}
public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand(); if(cmd.equals(\确定\ {
insertRecord(); }
else if(cmd.equals(\取消\ f3.hide(); }
27
public static void main(String []arg){
BookIn a=new BookIn(); } }
6主界面:程序名Book.java /*本类为用户界面*/
import java.net.*; import java.sql.*; import java.awt.*;
import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*;
import javax.swing.border.*;import java.util.*;
class Book extends JFrame implements ActionListener {
JButton QueryScore=new JButton(\图书查询\ JButton QueryXuefen=new JButton(\图书入库\ JButton jiangfa=new JButton(\图书删除\ JButton xuanke=new JButton(\图书概览\ JButton gaiMima=new JButton(\修改密码\ JMenuBar mb = new JMenuBar();//菜单栏 JPanel jp=new JPanel();//用来填放子模块 Container cp=getContentPane(); String username; Book(){}
Book(String username) {
this.username=username; mb.add(QueryScore); mb.add(QueryXuefen); mb.add(jiangfa); mb.add(xuanke); mb.add(gaiMima); cp.add(mb,\
// 设置边框
jp.setBorder(BorderFactory.createTitledBorder(BorderFactory .createLineBorder(Color.blue, 2),null, TitledBorder.CENTER, TitledBorder.TOP)); jp.setLayout(new BorderLayout());
28
JLabel label1 = new JLabel(new ImageIcon(\ jp.add(label1);
/* JLabel JL=new JLabel(\欢迎登陆\ jp.add(JL,\
JLabel label2 = new JLabel(new ImageIcon(\ //jp.add(label2,\
JScrollPane scrollpane=new JScrollPane(jp); cp.add(scrollpane); setTitle(\欢迎登陆\
Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();
int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ //setSize(x,y); /*让系统窗口平铺整个显示器窗口*/
setSize(600,600); int xcenter=(x-600)/2; int ycenter=(y-600)/2;
setLocation(xcenter,ycenter);/*显示在窗口中央*/
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //注册临听器
QueryScore.addActionListener(this); QueryXuefen.addActionListener(this); jiangfa.addActionListener(this); xuanke.addActionListener(this); gaiMima.addActionListener(this); }
public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand(); if (cmd.equals(\图书查询\ {
new QueryBook(); }
if (cmd.equals(\图书入库\ {
new BookIn(); }
if (cmd.equals(\图书删除\
29
{
new RemoveBook(); }
if (cmd.equals(\图书概览\ {
new BookBrower().showRecord(); }
if (cmd.equals(\修改密码\ {
new UpdateMima(username); }
}
public static void main(String[]args) {
new Book(\ } }
7.密码修改:程序名UpdateMima.java import java.net.*; import java.sql.*; import java.awt.*;
import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*;
class UpdateMima extends JFrame implements ActionListener {
JFrame f; Container cp;
JPanel jp1,jp2,jp3,jp4,jp,jpanelWest; JButton jbt1,jbt2;//按钮,确定、取消
JLabel label; //标签:修改密码 JTextField name;
JPasswordField tf1,tf2,tf3; //定义文本框 JLabel label1,label2,label3,label4;
30
String sno; UpdateMima(){}
UpdateMima(String username) {
sno=username; f=new JFrame();
cp=f.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(\color=#CC00FF size='4'>\ label.setForeground(Color.blue);
label.setFont(new Font(\ name=new JTextField(20); //name.setEditable(false);
//------------------------------------------------ tf1=new JPasswordField(20); tf2=new JPasswordField(20); tf3=new JPasswordField(20);
//------------------------------------------------ //布局,添加控件
jp1.add(jbt1); jp1.add(jbt2);
jp1.add(new JLabel(\您好\欢迎登陆学生信息系统\
JPanel jpanel=new JPanel(); jpanel.add(label);
JPanel pp4=new JPanel();
31
修改密码
JPanel jpane4=new JPanel();
cp.add(jpanel,\
JPanel pp2=new JPanel(new GridLayout(6,1)); JPanel pp3=new JPanel();
pp4.setLayout(new GridLayout(6,1));
pp4.add(new JLabel(\用户名: \ pp2.add(name);
pp4.add(new JLabel(\原密码: \
pp2.add(tf1);
pp4.add(new JLabel(\新密码: \ pp2.add(tf2);
pp4.add(new JLabel(\确认密码: \ pp2.add(tf3);
pp2.add(new JLabel());
JPanel jpbutton=new JPanel(); jpbutton.add(jbt1); jpbutton.add(jbt2); pp2.add(jpbutton);
//pp3.add(jbt1);
//pp3.add(jbt2);
cp.add(pp4,\ cp.add(pp2,\ //cp.add(pp3,\
cp.add(jpane4,\
//------------------------------------------------ Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize();
int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height;
f.setSize(350,330); /*取得显示器窗口的高度*/ int xcenter=(x-350)/2; int ycenter=(y-330)/2;
f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ //f.setTitle(\修改密码\ f.setVisible(true);
32
//------------------------------------------------- jbt1.addActionListener(this);//注册监听器 jbt2.addActionListener(this);
/*f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){ System.exit(0); } } );*/ }
public void updateM() {
try{
Class.forName(\
}catch(ClassNotFoundException e){System.out.println(\加载驱动程序失败!\
try{
String url = \Access Driver (*.mdb)};DBQ=Book.mdb\ Connection con=DriverManager.getConnection(url);
Statement sql=con.createStatement(); String uname=name.getText().trim();
String queryMima=\用户名='\ ResultSet rs=sql.executeQuery(queryMima); if(rs.next()) {
String newMima=tf2.getText().trim();
String s=%user set 密码='\where 用户名 ='\
sql=con.createStatement();
int updateMima=sql.executeUpdate(s); if(updateMima==1) {
JOptionPane.showMessageDialog(f,\密码修改成功!\ }
con.close(); f.repaint(); }else{
JOptionPane.showMessageDialog(null,\该用户不存在\警告!\ JOptionPane.YES_NO_OPTION);
33
}
name.setText(\ tf1.setText(\ tf2.setText(\ tf3.setText(\ } catch(SQLException g) {
System.out.println(\ System.out.println(\ }
}
//------------------------------------------------ public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand(); if(cmd.equals(\确定\ {
if(name.getText().equals(\)||tf3.getText().equals(\ {
JOptionPane.showMessageDialog(null,\请填写用户的所有信息\提示\
JOptionPane.YES_NO_OPTION); return; }
if(tf2.getText().trim().equals(tf3.getText().trim())) updateM(); }
else if(cmd.equals(\取消\ f.hide(); }
public static void main(String[]args) {
new UpdateMima(\ } }
34
四.界面设计
35
正在阅读:
java课程设计小型图书管理系统06-01
我国的原油加工能力居世界第几位02-07
年终优秀护士工作总结参考例文08-02
【新课标I版】2015届高三数学(理)一轮专题复习:平面向量(含解析)09-06
2019版高考地理一轮复习第1部分自然地理第5章地表形态的塑造第三讲河流地貌的发育练习新人教版12-30
高频电路实验指导书(图)05-08
高考班考前家长会讲话稿和资料03-08
压力表测量范围及选型06-05
司法局2012年半年总结04-30
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 管理系统
- 小型
- 课程
- 图书
- 设计
- java
- 高考化学物质结构与性质
- 0xwxuso法语_词汇-汽车
- 中国可持续发展之路
- 物业管理实务案例分析参考资料
- 2015年1月西风井瓦斯发电站安装机组管路电火焊措施
- 关于车床、车削中心、车铣复合的说明
- 第一单元 走进生命世界
- 商业银行简答题大全
- 安吉物流整车物流
- XX公司重大危险源评估报告范本2
- 人教版(2013)三年级英语(下)Unit1-Welcome-back-to-school-教
- 当代企业管理沟通中的重要性
- 初中综合实践教科版七年级上册《4 给秸秆和落叶找去处》优质课公
- 压裂用油溶降滤失剂技术要求
- 墩柱施工方案 - 图文
- 2014中考历史 记忆知识点速记 中国近代历史-新民主主义革命时期
- 牛津高中M3第一单元复习
- 分式方程 - 单元测试题 - (好教案)
- 最新人教版小学三年级数学下册两位数乘两位数教案及教学反思
- 鄂尔多斯隧道实施性施工组织设计