JAVA图书管理系统课程设计.docx

上传人:b****6 文档编号:6048575 上传时间:2023-01-03 格式:DOCX 页数:26 大小:122.49KB
下载 相关 举报
JAVA图书管理系统课程设计.docx_第1页
第1页 / 共26页
JAVA图书管理系统课程设计.docx_第2页
第2页 / 共26页
JAVA图书管理系统课程设计.docx_第3页
第3页 / 共26页
JAVA图书管理系统课程设计.docx_第4页
第4页 / 共26页
JAVA图书管理系统课程设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

JAVA图书管理系统课程设计.docx

《JAVA图书管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《JAVA图书管理系统课程设计.docx(26页珍藏版)》请在冰豆网上搜索。

JAVA图书管理系统课程设计.docx

JAVA图书管理系统课程设计

山东建筑大学

课程设计说明书

 

题目:

图书管理系统

课程:

JAVA程序设计基础课程设计

院(部):

信息与电气工程学院

专业:

物联网工程

班级:

物联121

学生姓名:

李明钰

学号:

20120815032

指导教师:

关华

完成日期:

2015年7月10日

 

一摘要

设计一个小型图书管理系统,该系统由登录模块和功能模块组成。

登录模块实现管理员登录,功能模块分为图书查询、图书入库、图书删除、图书修改四个部分。

图书管理系统的开发主要涉及到用户登录和图书信息管理。

图书信息管理包括:

添加新进图书、删除旧图书、修改图书信息、图书查询。

用户可以浏览、查询、添加、删除、修改图书的基本信息。

创建公共类,主要是用于连接数据库的操作,事件监听操作)

创建主窗体及登陆窗体。

利用JFrame来JButton子类来进行设计

创建所要应用的各功能内嵌面板,并实现相应数据库连接处理功能。

 

二所需软件

操作系统:

Windows8.1

数据库服务器:

mySQLserver5.1

开发工具:

eclipse3.4.1、

JDBC驱动:

mysql-connector-java-5.1.7-bin

JAVA环境;jre-8u25-windows-i586

 

三E-R图与结构功能图

E-R图

 

 

功能结构图

登录界面

图书管理面板

编辑图书

查询图书

删除图书

添加图书

图1图书管理系统功能结构图

四所需表格

根据系统分析,设计图书信息管理系统的数据库(book)表有:

图2SQL创建结果图

 

用户信息表(表1)、图书信息表(表2)。

表结构如下:

表1:

user

字段

说明

类型

长度

主键

备注

Id

用户名

varchar

10

no

Psw

密码

varchar

10

no

表2:

book

字段

说明

类型

长度

主键

备注

bid

图书编号

varchar

10

yes

bname

书名

varchar

10

no

Wname

作者

varchar

10

Num1

库存

varchar

10

no

Chubs

出版社信息

varchar

10

no

Num2

价格

Varchar

10

No

Sql创建语句

Createdatabasebook;

Usebook;

Createtableuser(idvarchar(10)primarykey,pswvarchar(10));

Insertintouservalues(“xx”,123456);

Createtablebook(bidvarchar(10)primarykey,bnamevarchar(10),wnamevarchar(10),num1varchar(10),chubsvarchar(10),num2varchar

(2));

Insertintobookvalues(1001,”JAVA”,”山建”,10,”山建出版社”,10);

五页面的结构和关系

密码错误

密码正确

 

六程序截图

图3登录界面

 

图4管理界面

七总结

从上面的演示中可以看出,此系统可以完成用户登录和图书管理两大功能。

在本系统的应用下可以实现用户按照书名查询书库的藏书,方便的增添图书,删除图书,修改图书信息。

测试阶段一方面发现了系统的各种错误,另外一方面验证了修改后的系统能够实现提高图书管理工作效率的预期目的。

不知不觉中,课程设计快接近尾声。

回顾这几天,短暂而充实。

也是由于时间比较紧张只有五天时间,所以该系统功能比较简单,暂且留待日后在完善。

最后感谢这几天来宫淑兰老师对我们孜孜不倦的教导以及对本程序实验效果的鼓励。

为我在以后的学习道路中增加了信心。

八参考文献

[1]张思民.Java语言程序设计.计算机科学与技术,2012,292-305

[2]飞思科技产品研发中心.JAVA应用开发详解[M].电子工业出版社,2003.9:

32-300

[3]赛奎春.JAVA工程应用与项目实践[M].机械工业出版社,2002.8:

23-294

[4]耿祥义,张跃平.JAVA实用教程[M].清华大学出版社,2003.5.1:

1-354

附录

(1)登录模块代码

packageLibrary;

importjava.awt.BorderLayout;

importjava.awt.Color;

importjava.awt.Container;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjavax.swing.ImageIcon;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JPasswordField;

importjavax.swing.JTextField;

publicclassLoginextendsJFrame{

privatestaticfinallongserialVersionUID=1L;

privateJLabeljlUsername;

privateJLabeljlPwd;

privateJTextFieldtxtUsername;//用户名

privateJTextFieldtxtPassword;//密码

privateJButtonjbOk;

privateJButtonjbCancel;

publicJLabelgetJlUsername(){

if(jlUsername==null)

{

jlUsername=newJLabel("账号");

jlUsername.setForeground(Color.BLACK);

jlUsername.setBounds(118,40,85,30);

}

returnjlUsername;

}

publicJLabelgetJlPwd(){

if(jlPwd==null)

{

jlPwd=newJLabel("密码");

jlPwd.setForeground(Color.BLACK);

jlPwd.setBounds(118,100,85,30);

}

returnjlPwd;

}

publicJTextFieldgetTxtUsername(){

if(txtUsername==null)

{

txtUsername=newJTextField(20);

txtUsername.setBounds(180,40,200,30);

}

returntxtUsername;

}

publicJTextFieldgetTxtPassword(){

if(txtPassword==null)

{

txtPassword=newJPasswordField(20);

txtPassword.setBounds(180,100,200,30);

}

returntxtPassword;

}

publicJButtongetJbOk(){

if(jbOk==null)

{

jbOk=newJButton("登陆");

jbOk.setBounds(150,180,90,30);

//jbOk.addActionListener(this);

}

returnjbOk;

}

publicJButtongetJbCancel(){

if(jbCancel==null)

{

jbCancel=newJButton("取消");

jbCancel.setBounds(300,180,90,30);

}

returnjbCancel;

}

publicLogin(Stringtitle)

{

super(title);

//JFrameframe=newJFrame();

Containercantainer=this.getContentPane();

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

ImageIconimg=newImageIcon("C:

\\DocumentsandSettings\\Administrator\\桌面\\2.jpg");//这是背景图片

JLabelimgLabel=newJLabel(img);//将背景图放在标签里。

this.getLayeredPane().add(imgLabel,newInteger(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。

imgLabel.setBounds(100,100,img.getIconWidth(),img.getIconHeight());//设置背景标签的位置

cantainer.setLayout(newBorderLayout());

imgLabel.setLayout(null);

imgLabel.add(getJlUsername());

imgLabel.add(getTxtUsername());

imgLabel.add(getJlPwd());

imgLabel.add(getTxtPassword());

imgLabel.add(getJbOk());

imgLabel.add(getJbCancel());

cantainer.add(imgLabel,BorderLayout.NORTH);

((JPanel)cantainer).setOpaque(false);//注意这里,将内容面板设为透明。

这样LayeredPane面板中的背景才能显示出来。

this.setSize(img.getIconWidth(),img.getIconHeight());

myEvent();

this.setVisible(true);

this.setResizable(true);

}

privatevoidmyEvent(){

jbCancel.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEvente)

{

Login.this.dispose();

}

});

jbOk.addActionListener(newActionListener()

{

publicvoidactionPerformed(ActionEvente)

{

Connectionconn=null;

Statementstm=null;

ResultSetst=null;

try

{

Class.forName("com.mysql.jdbc.Driver");

conn=DriverManager.getConnection("jdbc:

mysql:

//localhost:

3306/book","root","123");

stm=conn.createStatement();

Stringsql="select*fromuser";

//Stringsql1="selectpswfromuser";

st=stm.executeQuery(sql);

//st1=stm.executeQuery(sql1);

if(st.next())

{

if(txtUsername.getText().equals(st.getString("id"))&&txtPassword.getText().equals(st.getString("psw")))

{

Login.this.setVisible(false);

newBook("管理界面");

}

else

{

JOptionPane.showMessageDialog(null,"您输入的账号或密码不正确");

getTxtUsername().setText("");

getTxtPassword().setText("");

}

}

else

{

JOptionPane.showMessageDialog(null,"用户名不存在,请重新输入,错误!

");

getTxtUsername().setText("");

getTxtPassword().setText("");

}

}

catch(ClassNotFoundExceptione1)

{

e1.printStackTrace();

}catch(SQLExceptione2){

//TODOAuto-generatedcatchblock

e2.printStackTrace();

}finally{

try{

stm.close();

}catch(Exceptione3){}

//关闭Connection

try{conn.close();}catch(Exceptione4){}

}

}

});

}

publicstaticvoidmain(String[]args)

{

newLogin("图书管理登陆界面");

}

}

(2)图书管理模块代码

packageLibrary;

importjava.awt.BorderLayout;

importjava.awt.Container;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjavax.swing.ImageIcon;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JPanel;

importjavax.swing.JTable;

importjavax.swing.JTextField;

publicclassBookextendsJFrame{

privatestaticfinallongserialVersionUID=1L;

privateJLabellblId;

privateJLabellblBname;

privateJLabellblWname;

privateJLabellblCbs;

privateJLabellblnum1;

privateJLabellblnum2;

privateJTextFieldbId;//图书编号

privateJTextFieldbname;//书名

privateJTextFieldwname;//作者名

privateJTextFieldcbs;//出版社

privateJTextFieldnum1;//价格

privateJTextFieldnum2;//库存量

privateJButtonjbDel;

privateJTextFieldjDel;

privateJButtonjbAdd;

privateJButtonjbSearch;

privateJButtonjbUpdate;

privateJTabletable;

privateJLabeljabel;//输入要查找的书号

publicJLabelgetJabel(){

if(jabel==null)

{

jabel=newJLabel("查删学号");

jabel.setBounds(20,350,60,60);

}

returnjabel;

}

publicJButtongetJbDel(){

if(jbDel==null)

{

jbDel=newJButton("删除");

jbDel.setBounds(180,400,60,30);

}

returnjbDel;

}

publicJTextFieldgetjDel(){

if(jDel==null)

{

jDel=newJTextField(20);

jDel.setBounds(100,350,150,30);

}

returnjDel;

}

publicJButtongetJbAdd(){

if(jbAdd==null)

{

jbAdd=newJButton("添加");

jbAdd.setBounds(100,400,60,30);

}

returnjbAdd;

}

publicJButtongetJbSearch(){

if(jbSearch==null)

{

jbSearch=newJButton("查找");

jbSearch.setBounds(100,450,60,30);

}

returnjbSearch;

}

publicJButtongetJbUpdate(){

if(jbUpdate==null)

{

jbUpdate=newJButton("修改");

jbUpdate.setBounds(180,450,60,30);

}

returnjbUpdate;

}

publicJTablegetTable(){

if(table==null)

{

table=newJTable(100,6);

table.setBounds(270,50,500,600);

}

returntable;

}

publicJLabelgetLblId(){

if(lblId==null)

{

lblId=newJLabel("编号");

lblId.setBounds(50,50,50,30);

}

returnlblId;

}

publicJLabelgetLblBname(){

if(lblBname==null)

{

lblBname=newJLabel("书名");

lblBname.setBounds(50,100,50,30);

}

returnlblBname;

}

publicJLabelgetLblWname(){

if(lblWname==null)

{

lblWname=newJLabel("作者");

lblWname.setBounds(50,150,50,30);

}

returnlblWname;

}

publicJLabelgetLblnum1(){

if(lblnum1==null)

{

lblnum1=newJLabel("价格");

lblnum1.setBounds(50,200,50,30);

}

returnlblnum1;

}

publicJLabelgetLblnum2(){

if(lblnum2==null)

{

lblnum2=newJLabel("库存量");

lblnum2.setBounds(50,250,50,30);

}

returnlblnum2;

}

publicJTextFieldgetbId(){

if(bId==null)

{

bId=newJTextField(20);

bId.setBounds(100,50,150,30);

}

returnbId;

}

publicJTextFi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1