完整word版Java图书管理系统课程设计.docx
- 文档编号:23785066
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:44
- 大小:599.42KB
完整word版Java图书管理系统课程设计.docx
《完整word版Java图书管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《完整word版Java图书管理系统课程设计.docx(44页珍藏版)》请在冰豆网上搜索。
完整word版Java图书管理系统课程设计
湖南科技学院
课程设计报告
课程名称:
面向对象程序设计课程设计
课程设计题目:
图书管理系统
系:
数学与计算科学系
专业:
信息与计算科学
年级、班:
2009级信计1班
姓名:
谭鄱仑
学号:
200905002109
指导教师:
牛志毅
职称:
讲师
2012年6月
课题说明
1、设计一个图书信息管理系统
2、图书信息包括图书编号、书名、作者、出版社、出版日期、图书简介及图书类别等。
3、本系统功能描述:
图书信息录入功能;
图书信息浏览功能;
查询功能(至少一种查询方式);
图书信息修改功能;
及其它你认为必要的功能。
程序设计思路
程序较小,分为七个个模块,分别实现:
登录,图书查询修改,图书入库,图书修改,图书概览,修改密码,学生信息查询。
程序通过登录模块登录后可以通过点击相应按钮使用其余六个模块的功能,从而实现图书管理员。
程序状态转换图
数据库设计
数据库类型为MySQLServer5.5
数据库名称为tpl
下图为表结构
程序部分源代码
由于源代码较多,故只写出部分源代码
Login.java登录类
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.sql.*;
@SuppressWarnings("serial")
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("用户密码");
//重构painComponent函数实现JPanel添加背景
jp1=newJPanel(){
publicvoidpaintComponent(Graphicsg){
super.paintComponent(g);
ImageIconimg=newImageIcon("1.jpg");
g.drawImage(img.getImage(),0,0,null);
}};
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);
}
}
);
}
@SuppressWarnings("deprecation")
publicvoidconfirm()//验证用户和密码是否存在
{
try{ConnectMysqla=newConnectMysql();
Connectioncon=a.Connecting();
Statementsql=con.createStatement();
StringuName=t1.getText().trim();
Stringpassword=t2.getText().trim();
StringqueryMima="select*fromuserwhere用户名='"+uName+"'and密码='"+password+"'";
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();
}
}
@SuppressWarnings("unused")
publicstaticvoidmain(String[]arg){
Logina=newLogin();
}
}
QueryBook.java查找修改书籍类
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.sql.*;
classQueryBookimplementsActionListener//查询修改书籍信息窗口类
{
//定义容器和组件
JFramef3;
Containercp;
JPaneljp1,jp2,jp3,jp4,jp,jpanelWest;
JButtonjbt1,jbt2,jbt3,jbt4;//按钮,确定、取消、修改、借书者信息
JLabellabel;//标签:
请输入图书号
JTextFieldtf,tf1,tf2,tf3,tf4,tf5,tf6,tf7,tf8;//定义文本框
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("取消");
jbt3=newJButton("修改");
jbt4=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);
tf7=newJTextField(20);
tf8=newJTextField(20);
//------------------------------------------------
//布局,添加控件
JPaneljpanel=newJPanel();
jpanel.add(label);
jpanel.add(tf);
JPanelpp4=newJPanel();
JPaneljpane4=newJPanel();
cp.add(jpanel,"North");
JPanelpp2=newJPanel(newGridLayout(8,1));
JPanelpp3=newJPanel();
pp4.setLayout(newGridLayout(8,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);
pp4.add(newJLabel("是否被借",SwingConstants.CENTER));
pp2.add(tf7);
pp4.add(newJLabel("借书者学号",SwingConstants.CENTER));
pp2.add(tf8);
//将按钮加入pp3中
pp3.add(jbt1);//按钮确定
pp3.add(jbt2);//按钮取消
pp3.add(jbt3);//按钮修改
pp3.add(jbt4);//按钮借书者信息
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);
jbt3.addActionListener(this);
jbt4.addActionListener(this);
}
//------------------------------------------------
publicvoidshowRecord()
{
try{ConnectMysqla=newConnectMysql();
Connectioncon=a.Connecting();
Statementsql;
Stringql=tf.getText().trim();
Strings="select*frombookwhere图书号='"+ql+"'";
sql=con.createStatement();
ResultSetrs=sql.executeQuery(s);
if(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);
StringisBorrowed=rs.getString(7);
StringborrowedName=rs.getString(8);
tf1.setText(bname);
tf2.setText(bno);
tf3.setText(price);
tf4.setText(writer);
tf5.setText(publish);
tf6.setText(indate);
tf7.setText(isBorrowed);
tf8.setText(borrowedName);
}
else
{JOptionPane.showMessageDialog(null,"您输入的图书号不存在,请重新输入",
"输入错误",JOptionPane.YES_NO_OPTION);
}
con.close();
}catch(SQLExceptiong)
{
System.out.println("ECode"+g.getErrorCode());
System.out.println("EM"+g.getMessage());
}
tf1.setEditable(true);
tf2.setEditable(true);
tf3.setEditable(true);
tf4.setEditable(true);
tf5.setEditable(true);
tf6.setEditable(true);
tf7.setEditable(true);
tf8.setEditable(true);
}
publicvoidfixRecord()
{
try{ConnectMysqla=newConnectMysql();
Connectioncon=a.Connecting();
Statementsql;
Strings="updatebookset图书名='"+tf1.getText()+"',图书号='"+tf2.getText()+"',单价='"+tf3.getText()+"',作者='"+tf4.getText()+"',出版社='"+tf5.getText()+"',入库时间='"+tf6.getText()+"',是否被借='"+tf7.getText()+"',借书者学号='"+tf8.getText()+"'where图书号='"+tf2.getText()+"'";
sql=con.createStatement();
intfix=sql.executeUpdate(s);
if(fix==1)
{JOptionPane.showMessageDialog(null,"修改成功!
",
"信息",JOptionPane.INFORMATION_MESSAGE);
}
con.close();
}catch(SQLExceptiong)
{
System.out.println("ECode"+g.getErrorCode());
System.out.println("EM"+g.getMessage());
}
}
publicvoidShowStuRecord(){
StudentInfoInfo=newStudentInfo();
Info.tf.setText(tf8.getText());
Info.showRecord();
}
@SuppressWarnings("deprecation")
publicvoidactionPerformed(ActionEvente)
{
Stringcmd=e.getActionCommand();
if(cmd.equals("确定"))
{
showRecord();
tf.setText("");
}
if(cmd.equals("修改"))
{
fixRecord();
}
if(cmd.equals("借书者信息"))
{
ShowStuRecord();
}
if(cmd.equals("取消"))
f3.hide();
}
@SuppressWarnings("unused")
publicstaticvoidmain(String[]arg){
QueryBooka=newQueryBook();
}
}
BookIn.java图书入库类
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.sql.*;
//extendsJFrame
classBookInimplementsActionListener//图书入库类
{
JFramef3;
Containercp;
JPaneljp1,jp2,jp3,jp4,jp,jpanelWest;
JButtonjbt1,jbt2;//按钮:
确定、取消、
JLabellabel;//标签
JTextFieldtf1,tf2,tf3,tf4,tf5,tf6,tf7,tf8;//定义文本框
JLabellabel1,label2,label3,label4;
Stringsno;
BookIn()
{
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);
//------------------------------------------------
tf1=newJTextField(20);
tf2=newJTextField(20);
tf3=newJTextField(20);
tf4=newJTextField(20);
tf5=newJTextField(20);
tf6=newJTextField(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word Java 图书 管理 系统 课程设计