简单的图书管理系统知识分享Word文档格式.docx
《简单的图书管理系统知识分享Word文档格式.docx》由会员分享,可在线阅读,更多相关《简单的图书管理系统知识分享Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
工作内容
6.30-7.15
分析题目,进行资料查询
7.16-8.25
编写代码
8.25-8.30
进行代码调试,答辩并编写文档
主
要
参
考
资
料
[1]赵生慧等.Java面向对象程序设计(第二版)[M].北京:
中国水利水电出版社,2010.8
[2]万长选等.数据库系统原理与设计(第2版)[M].北京:
清华大学出版社,2012.9
[3]吴京慧等.数据库系统原理与设计实验教程[M].北京:
清华大学出版社,2009.10
指导教师
意见
(签字):
年月日
系(教研室)主任意见
学院名称:
计算机与信息工程学院
班级名称:
网络工程122班
学生姓名:
学号:
题目:
简单的图书管理系统
姓名:
起止日期:
第一部分:
正文部分
一、选题背景
随着我国国民经济的迅速发展和人民日常生活水平的不断提高,人民的精神生活也有着显著提高,人们对图书馆藏书的需求也越来越高,随之就伴来图书馆图书数目不断增加,这也带来了图书管理技术的挑战,以前的人工流水技术已经不能适应当代的环境,取而代之的是现代先进的图书管理技术,通过使用Java编程并且链接数据库方法实现对图书的概览、借阅、入库、更新、删除等功能。
当今图书管理系统的一个重要领地就是面对可模块化处理的信息。
我所开发的系统就是利用现代的管理技术来实现对图书的管理,改善对图书的规范管理,提高图书管理的效率,方便统计和图书借阅,以便图书馆更好的为人民、为国家服务。
二、方案论证(或设计理念)
本次学年设计我所选择的题目是:
简单的图书管理系统,以便人们以后对图书馆更好的应用,本次方案有以下几个特点:
⑴采用数据库建模进行功能分析,划分登陆、概览、存储、更新、删除等子功能、E-R进行数据分析;
⑵基于JavaSwing技术进行各模块的设计,采用Access进行数据库设计,JDBC-ODBC技术进行数据库连接;
⑶使用JCreator开发环境完成了系统的登陆、概览、存储、更新、删除等功能。
三、过程论述
3.1系统功能分析
本次设计的简单的图书管理系统分为登陆、概览、存储、查询、删除、修改密码这些功能。
系统功能模块如图3-1所示:
图3-1图书管理系统功能
⑴用户登录:
根据数据库里已有的用户,输入用户名及密码进行登陆。
⑵图书概览:
登陆进入过后可以看到数据库里的所有图书。
⑶图书查询:
输入图书编号即可显示要查询的图书的信息。
⑷图书存储:
选择本选项,然后输入图书对应信息,点击“保存”,即可保存。
⑸图书删除:
输入要删除的图书编号,点击“删除”,即完成相应操作。
⑹修改密码:
即对用户登录密码的修改。
3.2系统数据分析
图书实体E-R图,如图3-2所示:
图3-2图书实体E-R图
用户实体E-R图,如图3-3所示:
图3-3用户实体E-R图
3.2系统架构设计
如图3-4所示:
图3-4系统架构设计
3.3系统数据库设计
建立数据库,本数据库采用Access2000来创建,根据系统功能的分析需要创建2张表,分别是图书表(book),用户表(user)。
1.图书信息,如表3-1所示:
表3-1book表
字段名称
数据类型
图书名
文本
图书号
文本(主键)
单价
作者
出版社
入库时间
2.用户信息,如图3-2所示:
表3-2user表
用户名
密码
3.4系统实现
3.4.1登录模块
本模块实现图书管理系统的登录功能,登录过后才可以对图书管理系统进行操作。
publicvoidconfirm()//验证用户和密码是否存在
{
try{
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
}catch(ClassNotFoundExceptione){System.out.println("
加载驱动程序失败!
"
}
try{
Stringurl="
jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};
DBQ=Book.mdb"
;
//直接使用当前类目录下的数据库文件
Connectioncon=DriverManager.getConnection(url);
Statementsql=con.createStatement();
Stringuname=t1.getText().trim();
StringMima=t2.getText().trim();
StringqueryMima="
select*fromuserwhere用户名='
+uname+"
'
and密码='
+Mima+"
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());
EM"
+g.getMessage());
}
publicvoidactionPerformed(ActionEvente)
Stringcmd=e.getActionCommand();
if(cmd.equals("
确定"
)){
confirm();
}
elseif(cmd.equals("
取消"
f.dispose();
3.4.1图书概览模块
本模块主要是实现对图书馆里图书总览的功能,并且能够知道图书馆现在图书数量。
publicvoidshowRecord()
{
while(i>
=0)
{
ar[i][0]="
ar[i][1]="
ar[i][2]="
ar[i][3]="
ar[i][4]="
ar[i][5]="
i--;
i=0;
Strings="
select*frombook"
Statementsql=con.createStatement();
ResultSetrs=sql.executeQuery(s);
while(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);
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="
+i+"
L.setText("
图书馆现在共有图书"
+count+"
本"
f.repaint();
con.close();
}catch(SQLExceptiong)
))
f.hide();
}
返回"
3.4.1图书查询模块
本模块主要实现对在馆图书进行查询,应用数据库查询语句进行查询。
Statementsql;
Stringql=tf.getText().trim();
select*frombookwhere图书号='
+ql+"
sql=con.createStatement();
if(rs.next())
Stringbname=rs.getString
(1);
tf1.setText(bname);
tf2.setText(bno);
tf3.setText(price);
tf4.setText(writer);
tf5.setText(publish);
tf6.setText(indate);
else
{JOptionPane.showMessageDialog(null,"
您输入的图书号不存在,请重新输入"
"
输入错误"
JOptionPane.YES_NO_OPTION);
}
tf1.setEditable(false);
tf2.setEditable(false);
tf3.setEditable(false);
tf4.setEditable(false);
tf5.setEditable(false);
tf6.setEditable(false);
3.4.1图书删除模块
本模块主要实现对不在馆图书进行删除,应用数据库删除语句进行删除,以便保持图书馆里图书数量正确。
publicvoiddeleteRecord(intindex)
Stringql=(String)(ar[index][1]);
delete*frombookwhere图书号='
intdel=sql.executeUpdate(s);
if(del==1)
删除成功!
信息"
Stringremember="
Stringql="
查询"
ql=tf.getText().trim();
remember=ql;
showRecord(ql);
删除"
{
intindex=table.getSelectedRow();
if(index==-1)
请选定要删除的表格行"
else{
deleteRecord(index);
//showRecord(remember);
3.4.1图书存储模块
本模块主要实现对新来的图书进行管理的功能,主要代码如下:
publicvoidinsertRecord()
if(tf1.getText().equals("
)||tf2.getText().equals("
)||tf3.getText().equals("
)||
tf4.getText().equals("
)||tf5.getText().equals("
)||tf6.getText().equals("
{
JOptionPane.showMessageDialog(f3,"
请填写图书资料"
return;
insertintobookvalues('
+tf1.getText()+"
'
+tf2.getText()+"
+
tf3.getText()+"
+tf4.getText()+"
+tf5.getText()+"
+tf6.getText()+"
//查询输入的图书号是否在数据库中存在
Stringquery="
select*frombookwhere图书号='
sql=con.createStatement();
ResultSetrs=sql.executeQuery(query);
//返回查询结果集
booleanmoreRecords=rs.next();
//判断结果集是否有数据
if(moreRecords)
JOptionPane.showMessageDialog(f3,"
图书号已经被使用,请重新输入"
tf2.setText("
return;
intinsert=sql.executeUpdate(s);
if(insert==1)
图书信息录入成功!
tf1.setText("
tf3.setText("
tf4.setText("
tf5.setText("
tf6.setText("
3.4.1用户密码修改模块
本模块主要实现对用户密码修改的功能,主要代码如下:
publicvoidupdateM()
Stringuname=name.getText().trim();
StringnewMima=tf2.getText().trim();
Strings="
updateuserset密码='
+newMima+"
where用户名='
+uname+"
intupdateMima=sql.executeUpdate(s);
if(updateMima==1)
JOptionPane.showMessageDialog(f,"
密码修改成功!
}else