图书馆管理系统的设计与实现0605.docx
- 文档编号:29696071
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:26
- 大小:839.37KB
图书馆管理系统的设计与实现0605.docx
《图书馆管理系统的设计与实现0605.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统的设计与实现0605.docx(26页珍藏版)》请在冰豆网上搜索。
图书馆管理系统的设计与实现0605
目录
摘要························……1
Abstract························……2
目录·······················……4
第一章绪论
1.1课题的研究背景························……6
1.2研究的目的与意义························……6
1.3图书馆管理系统开发的历史与现状························……6
第2章系统开发的工具和环境及可行性研究
2.1数据库管理系统概述····················……9
2.2VB工具软件介绍······················……11
2.2.1VB简介······················……11
2.2.2VB优点·····················……12
2.3Access2000建库工具软件介绍·····················……13
2.3.1AccesS2000简介················……13
2.3.2Access2000优点················……14
2.4系统的初步调查················……15
2.5系统可行性分析················……16
2.5.1经济可行性················……16
2.5.2技术可行性················……16
2.5.3运行可行性················……17
2.6系统的总目标················……17
第三章图书馆管理系统的需求分析
3.1需求分析················……18
3.1.1需求分析概述················……18
3.1.2需求分析原则:
················……18
3.1.3结构化分析方法···············……19
3.2图书馆管理系统应用需求···············……20
3.3图书馆管理系统业务流程图···············……23
3.4图书馆管理系统的主要数据流程图···············……23
3.4.1DFD顶层图···············……24
3.4.2主要的程序流程图:
···············……26
3.5数据字典···············……28
第四章图书馆管理系统概要设计
4.1概要设计······························……32
4.2实体一联系模型(E一R图)概述·,··········……32
4.3图书馆管理系统的E一R图·············……34
4.4数据库设计····························……37
4.4.1数据库设计原则··················……37
4.4.2数据库逻辑结构设计··············……38
第五章图书馆管理系统详细设计与功能设计
5.1系统的设计规范············……42
5.2系统的设计原则············……43
5.3各模块的详细设计·············……44
5.3.1图书借阅管理模块详细设计········……44
5.3.2图书信息管理模块详细设计········……44
5.3.3读者信息管理模块详细设计···········45
5.3.4管理员信息管理模块详细设计······……45
5.4功能设计······……46
5.4.1读者信息管理功能模块设计······……46
5.4.2图书信息管理功能模块设计······……46
5.4.3图书类别管理功能模块设计·····……47
5.4.4图书借阅和归还管理功能模块设计·····……48
5.4.5管理员管理功能模块设计·····……49
5.4.6管理员权限管理功能模块设计·····……50
5.4.7图书借阅统计管理功能模块设计·····……50
5.4.8连接服务器模块实现·····……50
第六章系统测试与维护
6.1系统开发环境实现·····……52
6.1.1硬件环境·····……52
6.1.2软件环境·····……53
6.2系统的测试·····……53
6.3系统的维护·····……53
第八章结论和展望·····……54
致谢·····……55
参考文献·····……56
附录····……57
根据前面分析得到的E一R图,向关系模型转换的结果如下所示(带下划线的为关键码):
(1)图书类别:
{类别号,类别名称}
(2)图书:
{书号,书名,作者,出版社,版本号,出版日期,图书类别号,借阅次数,备注,在库}
(3)读者:
{读者ID,读者姓名,读者类型,己借图书数,超期欠款,是否有效,备注}
(4)管理员:
{管理员ID,管理员姓名,管理员密码,权限类型,备注}
(5)图书借阅记录:
{记录号,读者ID,图书号,借阅日期,应还日期,归还日期,超期欠款,备注}
下面是根据关系模型结合AccesS的特点进行了修正,得到了如下的主要关系数据库表,数据库内设计了5张表来存储数据,且数据冗余度最小,表名及内容分别如下:
l)图书资料数据表(Book_Info)
图书资料数据表(Book_Info):
该表记录了图书馆藏书的基本资料,可供查阅。
主要包括了图书号、书名、作者、出版社、版本号、出版日期和图书类别号等基本资料,并且设计了图书借阅次数字段,以供统计图书借阅次数排名使用。
图书类别号必须与图书类别数据表中的类别号相对应。
如图5.7所示。
2)图书类别数据表(BookType)
图书类别数据表(BookTyPe):
图书类别数据表记录图书类别,用于给图书分类。
主要包括了类别号和类别名称等数据。
如图5.8所示。
图4.8图书类别数据表
3)读者资料数据表(Reader_Info)
读者资料数据表(Reader_Info):
读者资料数据表记录了所有读者的基本资料,管理员可添加、删除和查询该表。
除了读者ID、姓名、读者类型(专科生、本科生、教师)等基本资料,还设计了已借图书、超期欠款和是否有效等字段,用于判断该读者是否满足可借书条件。
如图4.9所示。
图4.9读者资料数据表
4)图书借还数据表(Book_Record)
图书借还数据表(Book--Record):
图书借还数据表记录了所有读者借阅图书的数据,管理员通过添加图书借阅信息、图书归还信息和缴纳罚款信息来添加和修改该表中的记录。
该表主要包括记录号、借阅读者ID、借阅图书号、借阅日期、应还日期和实际归还日期,以及本书的超期欠款等资料。
其中借阅读者功必须与读者资料数据表中的读者ID对应。
图书号必须与图书资料数据表中的图书号对应。
如图4.10所示。
图4.10图书借还数据表
5)管理员资料数据表(User_Info)
管理员资料数据表(User_Info):
管理员资料数据表记录了所有管理员的基本资料,管理员可添加、删除和查询该表。
该表包括管理员ID、姓名、密码和权限类型(系统管理员、高级管理员、普通管理员)等资料。
如图4一11所示。
图4.11管理员资料数据表
5.3.1图书借阅管理模块详细设计
图书借阅模块:
用于实现图书借阅信息的管理,包括图书借阅、图书归还和
读者缴纳罚款等功能。
如图5.1所示。
5.3.2图书信息管理模块详细设计
图书信息管理模块:
管理图书资料,主要有图书类别管理和图书信息管理两
大部分,都分别有添加和查询功能。
如图5.2所示
5.3.3读者信息管理模块详细设计
读者信息管理模块:
用于实现读者资料数据的管理,主要包括添加读者、删
除读者和读者信息查询3项功能。
如图5.3所示。
5.3.4管理员信息管理模块详细设计
管理员信息管理模块:
用于实现管理员资料的管理,主要包括添加管理员、
删除管理员和管理员信息查询等功能。
如图5.4所示。
5.4功能设计
5.4.1读者信息管理功能模块设计
读者信息管理:
即管理和维护读者的各项数据信息,包括读者ID、姓名、读者类型、己借图书数、是否有超期欠款及该读者是否有效。
其中读者类型分为3类:
专科生(借书5本,借期1月)类型代码1;本科生(借书8本,借期2月)类型代码2;教师(借书10本,借期2月)类型代码3。
当超期欠款大于3元时,读者将不能继续借阅图书。
当读者离校被删除时,读者被设为无效,也将不能再借阅图书。
允许高级管理员和系统管理员添加读者信息、删除读者信息和查询读者信息。
例如:
添加读者信息如图5.5所示
图5.5添加读者信息界面
5.4.2图书信息管理功能模块设计
图书信息管理:
即管理和维护图书的各项数据信息,包括书名、作者、出版社、版本号、出版日期、图书类别号及是否在库等信息。
其中图书类别号必须是图书类别数据表中的一种。
允许高级管理员和系统管理员添加图书信息和查询图书信息,如图5.6所示
图5.6图书信息管理界面
5.4.3图书类别管理功能模块设计
图书类别管理:
即管理和维护图书类别数据,主要有类别号和类别名两项。
允许高级管理员和系统管理员添加图书类别信息和查询图书类别信息。
如图5.7所示。
图5.7图书类别管理界面
5.4.4图书借阅和归还管理功能模块设计
图书借阅和归还管理:
即管理和维护图书的借阅、归还及读者的缴纳超期欠款等信息。
主要功能有图书借阅、图书归还和缴纳罚款3项功能。
例如:
图书借阅界面如图5.8所示。
图5.8图书借阅管理界面
5.4.5管理员管理功能模块设计
管理员管理:
即管理和维护管理员的各项数据信息,包括管理员ID、姓名、密码和管理员类型。
主要有添加管理员信息、删除管理员信息和查询管理员信息等3项功能。
只有系统管理员才能执行上述命令。
如图5.9添加管理员主界面。
图5.9添加管理员主界面
5.4.6管理员权限管理功能模块设计
管理员权限管理:
按照数据表里的记录来确定管理员的权限,并允许其执行相应的功能。
这里我定义了2种管理员权限类型,第1种是普通管理员,代码2,只能登记图书借阅和归还信息,查看图书类别和图书信息;第2种是高级管理员,代码1,除了普通管理员的权限,还能添加新的图书资料和图书类别资料,管理读者信息(添加、删除和查询);第3种是系统管理员,代码O,能够执行任何命令,除了高级管理员的权限,还能够执行管理员管理命令(如添加新管理员、删除和查询管理员信息)
5.4.7图书借阅统计管理功能模块设计
图书借阅统计管理:
可以查询图书借阅统计排行,方便用户了解图书借阅情况。
如图5.10所示。
图5.10图书借阅排行管理界面
5.4.8连接服务器模块实现
连接服务器界面主要功能就是向服务器发送网络连接命令。
用户填写用户ID、密码后,就可发送到服务器等待验证。
如果连上服务器,服务器就会返回登录结果信息。
如果登录信息都正确,系统就会弹出服务器响应的提示框,这时主界面的状态栏也将显示相应的说明。
如图6.10所示
图5.11连接服务器界面
5.5使用ADO操纵数据库
ADO,即ActiveDataobject,实际是一种提供访问各种数据类型的连接机制。
ADO被实现为OLEDB之上的一个薄层,这使得ADO可以有更快的访问速度,更易使用,同时更节省资源。
ADO被设计成一种非常简单的格式,通过ODBC的方法同数据库接口相连。
用户可以使用任何一种ODBC数据源,不仅适合于SQLSever、oracle、Access等数据库应用程序,也适合于Exeel表格、文本文件、图形文件和无格式的数据文件。
ADO使用OLEDB数据支持提供了厂个面向对象的访问数据源的接口,它是DAO
和RDO对象模型的集成者,集合了DAO和RDO的所有优点。
ADO的另一大优点是,它是基于COM接口技术的OLEDB的高级接口,所以,任何支持COM的应用程序都可以实现ADO。
也就是说,ADO的应用范围绝不仅仅是VB,甚至于不仅仅是VisualStudio家族的产品。
首先,运行VB,选择菜单中工程下的引用命令,在可用的引用列表框中选
择MicrosoftAetivexDataobjects2.7Library选项,再单击确定按钮。
这
样在程序中便加入了对ADO的引用。
附录
*****************************************************************************
对ADO的引用:
首先,我们添加两个全局变量,它们的名称和功能如下:
'定义全局ADO对象连接,用于连接数据库
PublicDBCnnAsNewADODB.Connection
'现存动态生成的Winsock控件数(不包括静态生成的那个保持侦听的控件)
PublicMaxSvrSockAsInteger
'服务器端口
PublicSvrPortAsString
接着定义内存中记录客户端数据的CIType数据类型如下:
.允许连接100个客户端
PublicClient(1To100)AsC1Type
'记录客户端连接最大下标
PublicC1MaxAsInteger
*****************************************************************************
*****************************************************************************
检验查询图书借阅次数排行的函数CheckStat
'功能:
检验客户端发送来的查询图书排行信息,读取数据库后按个数返回图书信息。
'输入:
StatNum,Integer类型,图书排行个数。
'输出:
CheckStat,String类型,返回帧头+查询结果。
'响应信息格式:
Stat
Book_Numl+Book_Namel+Book_Authorl+Book_Pressl+Book_PrsNuml
'+Book_PrsDatel+Book_Typel+Book_Availablel+Book_Totall,…
*******************************************************************************
PrivateFunctionCheckStat(ByValStatNumAsInteger)AsString
DimrsCheckAsNewADODB.Recordset
DimDBstrAsString
DimiAsInteger
DimsAvailableAsString
DimNumAsInteger
'1.查询结果
DBstr="select*fromBook_InfoorderbyBook_TotalDESC"
rsCheck.OpenDBstr,DBCnn,adOpenStatic,adLockOptimistic
'2.返回响应信息
CheckStat="Stat"
IfrsCheck.RecordCount<1Then.'没有图书’
CheckStat=CheckStat&",目前没有图书排行信息!
"
ExitFunction
EndIf
rsCheck.MoveFirst
IfStatNum>rsCheck.RecordCountThen
Num=rsCheck..RecordCount
Else
Num=StatNum
EndIf
'逐个返回
Fori=1ToNum
CheckStat=CheckStat&","
CheckStat=CheckStat&"书名:
"&rsCheck.Fields("Book_Name").Value
CheckStat=CheckStat&"作者:
"&rsCheck.Fields("Book_Author").Value
CheckStat=CheckStat&""&rsCheck.Fields("Book_Press").Value
CheckStat=CheckStat&"版本号"&rsCheck.Fields("BooK_PrsNum").Value
CheckStat=CheckStat&"出版日期:
"&rsCheck.Fields("Book_PrsDate").Value
CheckStat=CheckStat&"图书类型:
"&rsCheck.Fields("Book_Type").Value
IfrsCheck.Fields("BookAvailable").ValueThen
CheckStat=CheckStat&"在库:
是"
Else
CheckStat=CheckStat&"在库:
否"
EndIf
CheckStat=CheckStat&"借阅次数:
"&rsCheck.Fields("Book_Total").Value
rsCheck.MoveNext
Nexti
rsCheck.Close
EndFunction
*******************************************************************************
检验读者借阅图书的函数CheckLend
功能:
检验客户端发送来的读者借书信息,处理数据库后返回信息。
输入:
RdrID,String类型,读者ID,
bkNum,Long类型,借书书号。
输出:
CheckLend,String类型,返回帧头+读者借书响应信息。
*******************************************************************************
PrivateFunctionCheckLend(ByValRdrIDAsString,ByValbkNumAsLong)AsString
DimDBstrAsString
DimRdrTypeAsInteger,RdrBKTotalASInteger
DimBKTotalASInteger,dLimitAsInteger
DimDateLimitAsData,dNowAsData
DimSqlStrAsString
DimrsCheckAsNewADODB.Recordest
DimbookAsNewADODB.Recordest
CheckLend=“Lend,”
1.读出读者信息,判断是否可以借阅该书
DBstr="select*fromReader_InfowhereRdrID="&Replace(RdrID,"",vbNullString)&
'打开数据集
rsCheck.OpenDBstr,DBCnn,adOpenStatic,adLockOptimistic
'查找到的记录数为0
IfrsCheck.RecordCount<0Then找不到读者
CheckLend=CheckLend&”该读者不存在!
借阅图书失败!
”
ExitFunction
EndIf
'数据集指针指向第一个记录,这里查找到的记录唯一,读出读者信息
rsCheck.MoveFirst
'ID是否有效
IfrsCheck.Fields(“Rdr_Entitle”).Value=FalseThen
CheckLend=CheckLend&”该读者已过期!
借阅图书失败!
”
ExitFunction
EndIf
'欠款是否超过3.00
IfrsCheck.Fieds(“Rdr_Arrearage”).Value>3Then
CheckLend=CheckLend&”该读者欠款已超过3.00元!
借阅图书失败!
”
ExitFunction
EndIf
RdrType=rsCheck.Fields(“Rdr_Type”).Value
RdrBkTotal=rsCheck.Fields(Rdr_BkTotal”).Value
SelectCaseRdrType
Case1'专科生
BkTotal=5
dLimit=1
Case2'本科生
BkTotal=8
dLimit=2
Case3'教师
BkTotal=10
dLimit=2
EndSelect
'借书是否超过数量
IfRdrBkTotal>BkTotalThen
CheckLend=CheckLend&”该读者借书已达最大!
借阅图书失败!
”
EndIf
2.'该书是否可借
DBstr= “select*fromBook_InfowhereBook_Num=”&bkNum
Book.OpenDBstr,DBCnn,adOpenStatic,adLockOptimistic
Ifbook..Recordcount<1Then
CheckLend=CheckLend&”您的输入有误!
该图书不存在!
”
ExitFunction
EndIf
Book.MoveFirst'书号唯一
Ifbook.Fields(“Book_Available”).Value=FslseThen该书已借出
CheckLend=CheckLend&”您的输入有误!
该图书已借出!
”
ExitFunction
EndIf
3.借阅成功,计算应还日期,读者借阅书数+1
dNow=Format(Now,”yy-mm-dd”)
DataLimit=DataAdd(“m”,dLimit,dNow)
rsCheck.Fields(“Rdr_BkTotal”).Value=rsCheck_fields(“Rdr_BkTotal”).Value+1
4.图书借阅次数+1,标记该书已借出
Book.Fields(“Book_Total”).Value=book.Fields(“Book_Total”).Value+1
Book.Fields(“Book_Available”).Value=False
更新数据集
rsCheck.Update
book.Update
关闭数据集
rsCheck.Close
book.Close
返回信息
CheckLend=CheckLend&”借阅图书成功!
”&”归还期限是”&DataLimit&”,”
5.记录到数据库
SqlStr=”INSERTINTOBook_Record”&_
“(Rec_RdrID,Rec_BkNum,Rec_LendTime,Rec_LendLimit)”&_
“VALUES(“&RdrID&””&_
“,”&bkNum&_
“,#”&dNow&”#”&
“,#”&DataLimit&”#);”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 设计 实现 0605