JAVA图书管理系统课程设计报告书.docx
- 文档编号:25373226
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:31
- 大小:197.29KB
JAVA图书管理系统课程设计报告书.docx
《JAVA图书管理系统课程设计报告书.docx》由会员分享,可在线阅读,更多相关《JAVA图书管理系统课程设计报告书.docx(31页珍藏版)》请在冰豆网上搜索。
JAVA图书管理系统课程设计报告书
建筑大学
课程设计说明书
题目:
图书管理系统
课程:
JAVA程序设计基础课程设计
院(部):
信息与电气工程学院
专业:
物联网工程
班级:
物联121
学生:
明钰
学号:
指导教师:
关华
完成日期:
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(".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;
}
publicJTextFieldgetBname(){
if(bname==null)
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 图书 管理 系统 课程设计 报告书