图书馆管理系统报告.docx

上传人:b****8 文档编号:29072176 上传时间:2023-07-20 格式:DOCX 页数:26 大小:619.42KB
下载 相关 举报
图书馆管理系统报告.docx_第1页
第1页 / 共26页
图书馆管理系统报告.docx_第2页
第2页 / 共26页
图书馆管理系统报告.docx_第3页
第3页 / 共26页
图书馆管理系统报告.docx_第4页
第4页 / 共26页
图书馆管理系统报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

图书馆管理系统报告.docx

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

图书馆管理系统报告.docx

图书馆管理系统报告

华北科技学院

《数据库原理与应用》

课程设计说明书

 

班级:

计科B113姓名:

来丹丹学号:

30

设计题目:

____图书管理系统_______________

设计时间:

2013.12.16至2013.12.27

指导教师:

郭红范玉涛

评语:

________________________________

_________________________________________

_________________________________________

_________________________________________

_________________________________________

评阅成绩:

评阅教师:

目录

1引言1

1.1课程设计题目1

1.2课程设计的目的1

1.3本选题的设计背景1

2系统分析与设计2

2.1系统的需求分析2

2.1.1功能需求2

2.1.2性能需求2

2.1.3数据流图表示2

2.2系统的开发运行环境2

2.3系统总体设计2

3数据库设计4

3.1数据库概念结构4

3.1.1实体:

4

3.1.2局部视图:

4

3.1.3视图集成:

4

3.2数据库逻辑结构5

3.2.1关系模型5

3.2.2关系模型的优化6

3.3.1表6

(1)读者信息表6

(2)图书类型信息表7

(3)借阅信息表7

(4)订购图书信息表7

(5)读者信息表7

(5)库存信息表8

(7)管理员信息表8

3.3.2视图8

3.3.3安全性设计8

3.3.4完整性设计9

3.3.5索引设计9

3.3.5存储过程、触发器9

4主要功能的详细设计与实现11

4.1登录模块11

4.1.1界面11

4.1.2登陆界面重要代码12

4.1.3功能12

4.2登陆主界面模块13

4.3菜单预览模块13

4.4功能界面模块14

(1)新书登记界面14

(2)图书查询界面15

(3)预览图书界面16

(4)删除图书界面17

(6)修改密码界面17

4.5帮助界面模块18

(1)关于作者18

(2)关于系统18

(3)系统指南18

结  论19

参考文献19

1引言

1.1课程设计题目

图书管理系统

1.2课程设计的目的

通过数据库系统课程设计,熟悉了SQLSERVER数据库管理系统的结构与组成;掌握了SQLSERVER数据库管理系统的应用技术和的使用;应用eclipse开发工具实践了《图书管理系统》的数据库应用系统的设计方法、开发过程和SQLSERVER数据库的管理与维护。

最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。

1.3本选题的设计背景

随着社会的发展,人们对于知识的需求也在不断地增长。

书籍作为人们获取并增长知识的主要途径,使得图书馆在人们生活中占有了一定位置。

但是近几年来,随着书量的不断增长,造成了书库空间极度不足,图书挤压,管理不善。

这些都直接影响了读者对图书馆藏书的充分利用。

这时图书馆就特别需要开发一套图书馆管理系统,通过该系统来提高图书馆的管理效率,从而减少管理方面的工作流和成本。

一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。

面对图书馆数以万计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理出现漏洞,造成损失。

因此有一个智能化、系统化、信息化的图书管理系统十分重要的。

充分利用计算机的功能实现对读者管理、书籍管理,借阅管理等自动化控制,将会使图书馆的工作大大减弱。

方便友好的图形界面、简便的操作、完善的数据库管理。

将会使得图书馆系统极大限度的应用于现代化图书管理中。

2系统分析与设计

2.1系统的需求分析

2.1.1功能需求

我所设计的图书馆管理系统有6个功能模块,分别是图书类别管理模块,图书信息管理模块,读者信息管理模块,新书订购管理模块,图书借阅模块以及系统维护模块。

在eclipse开发环境中我只注重了部分管理员的功能,对于读者部分功能在数据库中实现,在java中运行本系统后需要登陆,然后进入主界面,在这个界面我们可以选择所需要的功能模块来完成所要执行的功能。

系统共有4个功能模块:

图书入库、图书查询、图书删除、图书概览、修改密码。

支持一系列关于图书管理方面的简单操作,诸如查询、删除、添加、修改密码等,只适合少量图书的添加和删除。

2.1.2性能需求

系统的登录:

只有管理员可以登陆

2.1.3数据流图表示

数据流名

来源

去向

读者信息

读者

图书管理员的管理处

图书信息

图书

图书管理员的管理处

借阅信息

借阅图书

图书管理员的管理处

2.2系统的开发运行环境

(1)系统开发平台:

Eclipse3.4。

(2)数据库管理系统软件:

SQLServer2008。

(3)运行平台:

Windows7。

(4)Java开发包:

JDK5.0以上。

(5)GUI开发包:

Swing。

2.3系统总体设计

图书馆管理系统分为四大功能模块,分为基础数据维护,图书借阅管理,新书订购功能,系统维护。

本系统各个部分及其包括的功能模块如图:

 

图1图书管理功能图

在java中我主要是选择了管理员对图书的图书入库、图书查询、图书删除、图书概览、修改密码这些功能进行设计编译和运行,其主要功能模块入下:

 

图2管理员管理功能图

3数据库设计

3.1数据库概念结构

3.1.1实体:

读者,图书,图书管理员

3.1.2局部视图:

(1)读者—借阅—图书

事务规则:

一个读者可以借阅多本图书(1:

n)

一本图书可以被一个读者借阅(1:

n)

读者

m

n

图书

图3读者-图书表

(2)管理员—管理—读者

事务规则:

一个图书管理员可以管理多个读者信息(1:

n)

一个读者信息只能被一个图书管理员管理(1:

1)

1

n

管理员

读者

图4管理员-读者表

(3)管理员—订购—图书

事务规则:

一本图书可以被一个图书管理员订购(1:

1)

1

n

一个图书管理员可以订购多本图书(1:

n)

管理员

图书

3.1.3视图集成:

图5管理员-图书表

“图书管理系统”的全局ER模式如下图所示。

图6全体E-R图

3.2数据库逻辑结构

3.2.1关系模型

读者(读者证件号,姓名,专业,证件类型,最大借书量)

图书(图书号,图书名,作者,出版社,入库时间,图书类型编号,单价)

借阅(借阅号,读者证件号号,图书编号,管理员编号,借书日期,是否归还,应还日期)

订购(管理员编号,图书号,是否验收,折扣,订购日期,订购数量)

3.2.2关系模型的优化

从理论‘E-R模型’到理论‘关系模型’的整理转换,通过E-R模型到关系模型的转化,可以得到如下关系模式:

(1)借阅关系

属性:

借阅号,读者证件号,图书号,借书日期,是否归还,应还日期

主键:

借阅号,读者编号,图书编号

(2)管理员-书籍关系

属性:

管理员编号,图书编号,是否验收,折扣,订购日期,订购数量

主键:

管理员编号,图书编号

(3)管理员-读者关系

属性:

事务号,管理员编号,读者编号,借还状态

主键:

事务号,管理员编号,读者编号

关系模式读者表、图书表、图书类型表、库存表、管理员表不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是图书和库存模式中存在着一些数据冗余,现将2个关系模型进行合并,消除冗余,优化为:

图书(图书号,图书名,作者,出版社,入库时间,图书类型编号,单价,图书数量)

由以上关系模式可以看出借阅关系、管理员-书籍关系、管理员-读者关系都属于3NF。

3.3数据库的实现

3.3.1表

(1)读者信息表

 

(2)图书类型信息表

(3)借阅信息表

(4)订购图书信息表

(5)读者信息表

(5)库存信息表

(7)管理员信息表

 

3.3.2视图

视图的作用:

视图对单个表一般可以进行进行查询和更改数据操作。

视图的数据也可以来自多个表中,这样定义的视图一般只用于查询,不用于修改数据。

--在library数据库的borrow表上创建“借阅号为a1”的视图b_view,

createviewb_view

asselect*

fromborrow

where借阅号='a1'

3.3.3安全性设计

创建用户并赋予权限

--创建一个名为“s1”的登录用户,密码为;允许其登录library数据库,且用户名为s1。

execsp_addlogin's1','123'

uselibrary

createusers1forlogins1

--将book表的操作权限select和insert赋予数据库用户s1,并允许其向其它用户授权。

grantselect,insert

onbook

tos1

withgrantoption

3.3.4完整性设计

(1)参照完整性:

在借阅表里借阅号是主键,管理员编号、读者证件号、图书号都是外键,但在管理员信息表里管理员编号是主键,在读者信息表里读者证件号是主键,在图书信息表里图书号是主键,而图书类型编号是外键,在图书类型信息表里图书类型编号是主键等,通过这些主键、外键约束把这些基本表联系在一起。

(2)自定义完整性:

主键属性域不能为空,但是外键可以为空或者和主键的取值相同。

在管理员信息表里设置密码不能为空等。

3.3.5索引设计

--由于基本表reader,book的主码读者证件号,图书号经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引;

createuniqueindexINDEX_ID

onreader(证件号)

GO

CREATEuniqueindexINDEX_I

ONbook(图书号)

3.3.5存储过程、触发器

(1)创建触发器

触发器的作用:

当你做了某种预设的操作时才会执行触发器的命令,对表进行了添删改查等操作

--当删除Reader表中某一读者基本信息时,触发Borrow表,删除相应的记录

createtriggerReader_delete

onReader

fordelete

as

deleteBorrow

fromdeleted

whereBorrow.读者证件号=deleted.证件号

--借书要求(读者最多借阅量),假定读者最多只能借10本书

createtriggertri_RBorrowNum

onreader

forinsert

as

declare@nochar(10),@numtinyint

--------获得证件号

select@no=证件号frominserted

--------统计读者借书总量并做相应处理

select@num=count(*)

fromreader

where证件号=@no

if(@num>10)--------假定读者最多只能借9本书

begin

rollbacktransaction

print'借阅失败!

'

print'对不起,你的借阅总量已经达到10本,无法进行本次借书操作!

请归还部分书籍后,再进行下次借书操作!

'

end

go

--借书要求(书本没有库存,则无法进行借书操作)

createtriggertri_borrow

onBorrow

forupdate

as

declare@btotalint,@bborrowedint,@nochar(10)

select@no=inserted.图书号,@btotal=库存量,@bborrowed=COUNT(inserted.图书号)

frominserted,store

wherestore.图书号=inserted.图书号

groupbyinserted.图书号,store.库存量

if(@btotal<@bborrowed)

begin

rollbacktransaction

print'借阅失败!

'

print'对不起,此书已经没有库存,无法进行本次借书操作!

'

end

Go

(2)存储过程

存储过程的作用:

sql存储过程执行起来比sql命令文本快,当一个sql语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它;调用存储过程,是程序易于维护。

如果程序需要做某些改动,你只要改动存储过程即可;一个存储过程可以包含多个sql语句,可以使用变量和条件;在存储过程中可以使用参数,可以传送和返回参数,还可以得到一个返回值。

--创建一存储过程在Book,按图书名查询

createprocedureQuery_Book_name

@图书名char(20)

as

select*

frombook

where图书名like'%'+ltrim(@图书名)+'%'

--创建存储过程,在Book中插入一元组

CREATEPROCEDUREBook_Insert

@图书号char(10),

@图书类型编号char(20),

@单价money,

@入库时间char(20),

@出版社char(30),

@作者char(10),

@图书名char(20)

as

insertintoBook

values(@图书名,@图书号,@单价,@作者,@出版社,@入库时间,@图书类型编号

);

4主要功能的详细设计与实现

4.1登录模块

4.1.1界面

对于图书管理系统而言,不是所有的用户都是可以使用的,所以需要添加一个登陆模块。

通过该模块来对用户的合法性进行判断,只有合法的用户才能进入到系统。

整个登陆模块的实现非常简单,相信读者能够快速掌握其开发过程。

登录模块的运行结果如图7所示。

 

图7登陆界面

4.1.2登陆界面重要代码

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}

catch(ClassNotFoundExceptione)

{System.out.println("加载驱动程序失败!

");

}

try{

Stringurl="jdbc:

odbc:

library";

Connectioncon=DriverManager.getConnection(url);

Statementsql=con.createStatement();

Stringuname=name.getText().trim();

StringMima=pwd.getText().trim();

StringqueryMima="select*from[User]where管理员编号='"+uname+"'and密码='"+Mima+"'";

ResultSetrs=sql.executeQuery(queryMima);

if(rs.next())

{

newBook(uname);

//f.hide();

con.close();

}

else{

JOptionPane.showMessageDialog(null,"管理员编号或密码不对!

","管理员登录!

",

JOptionPane.YES_NO_OPTION);

}

4.1.3功能

定义数据库连接,定义只有管理员可以登录此系统。

由登陆界面进入主界面,由管理员实现对图书的图书入库、图书查询、图书删除、图书概览、修改密码等功能,主要实现了对少量图书的插入、查询和删除以及预览,不适合大量图书的管理。

4.2登陆主界面模块

 

图8主界面

4.3菜单预览模块

 

图9菜单功能图

4.4功能界面模块

(1)新书登记界面

图10新书登记界面图

(2)图书查询界面

图11查询图书界面图

(3)预览图书界面

图12预览图书界面图

(4)删除图书界面

图13删除图书界面图

(6)修改密码界面

图14修改密码界面图

4.5帮助界面模块

(1)关于作者

(2)关于系统

(3)使用指南

结  论

在即将迈向2014,在这个收获颇多的2013年的末尾,我们做了数据库课程设计,我选择了图书管理系统,在数据库中建立了7个基本表(图书表、图书类型表、管理员表、库存表、订购图书表、借阅表、读者表)来阐述图书馆的3个实体间的联系和基本功能,在java开发环境中主要发挥了管理员对图书的管理功能,包括图书入库、图书查询、图书删除、图书概览、修改密码等功能,对于读者对图书的借阅和管理员对读者的管理等功能在这里不做编写,希望以后运用java语言再进行实现。

大概用了一个周的时间,通过查找资料和同学的热心帮助,终于功夫不负有心人,实现了java与数据库的正确连接和各个界面的正确的显示,由于时间和个人能力有限,本人认识到通过java运行的界面所编写的管理员功能尚有不足,还有读者和管理员之间的联系以及读者借阅图书和管理员管理借阅这部分功能没有在这里实现,希望老师不要见怪,在以后的学习中我会再接再厉,把这部分功能补足。

在这期间也遇到了很多问题,像空指针异常现象、登陆界面不能跳转到主界面、删除按钮不能正常显示所需要的界面,也会出现select过多没有关闭等现象,但是也明白了敢于尝试和不怕接受挑战的重要性。

总之以后的路很长,只有不断学习才能取得更大的进步。

参考文献

[1]耿祥义,张跃平.Java大学使用教程.电子工业出版社,2012.1

[2]陈志泊,王春玲.数据库原理及应用教程.人民邮电出版社,2008.3

 

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

当前位置:首页 > PPT模板 > 中国风

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

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