图书馆管理信息系统.docx
- 文档编号:9771903
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:25
- 大小:413.37KB
图书馆管理信息系统.docx
《图书馆管理信息系统.docx》由会员分享,可在线阅读,更多相关《图书馆管理信息系统.docx(25页珍藏版)》请在冰豆网上搜索。
图书馆管理信息系统
绪论
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
本套系统正是为解决高校学生管理问题而开发的。
由于能力有限和时间的限制,系统的设计难免会存在不足之处,敬请各位老师不吝赐教。
第一章概述
本系统全称为图书馆管理信息系统。
根据开发要求,它主要应用于教育系统,完成对学校图书的信息管理。
开发图书管理信息系统可使学校图书管理职员工减轻工作压力,比较系统地对学生借阅还书的各项信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及各部门关于信息化的步伐,使各项管理更加规范化。
目前,学校工作繁杂、图书资料重多,特别是学生借阅图书流动大,对图书管理的重要性更要引起足够的重视。
目前,图书管理信息系统进入各个学校,减少了许多不必要的人工操作,但目前很多系统还存在一定的不足之处、因此,开发一套适和大众的、兼容性好的系统是很有必要的。
本系统管理内容广泛,全面涉及了图书管理各方面的信息,包括信息查询,借阅还书信息,在开发过程中,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。
在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究,系统设计和系统实施几个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。
在开发工具的选择上,主要利用VisualBasic编程语言进行开发,使用Access自带的数据库,从而保证了数据的完整性与一致性。
本论文主要从系统分析、系统设计、系统实施与使用等几个方面进行介绍掌握Access基本用法,能手工创建和维护简单的Access数据库,掌握基本的SQL语法。
第二章总体设计
一、总体流程图
图书管理信息系统
图2.1
二、项目说明
该图书馆决定将其业务处理计算机化,该系统的功能和技术要求如下。
1、功能要求
(1)用户支付150元人民币的会员年费就可以成为该图书馆的会员。
但是,会员资格必须每年重新办理。
用户的会员资格将从加入日期/重新办理日期开始算起,一年后到期。
(2)书的借期为一个月
(3)如果用户在一个月内未还书,那么将向用户收取每天0.5元的罚金
(4)图书馆将维护有关书籍、作者和出版商的详细信息
(5)图书馆将维护会员的详细信息
(6)需要考虑一本书可能会有两个作者的情况
2、技术要求
(1)有关图书馆的会员和书籍的详细信息应可更新
(2)系统应能提供更新有关书籍作者和出版商的相关信息的方法
(3)需要提供根据书籍名称搜索功能
(4)可以根据会员ID和会员姓名检索会员的相关信息
(5)系统应提供相关报表
三、设计目标
1、设计出一个功能强大,界面友好,使用方便的学生信息管理系统。
2、能够很好的对信息进行维护,以及用户权限的管理和维护。
第三章系统设计和实现
一、数据库设计
根据系统的功能需求,本系统数据库采用MicrosoftAccess,它不但适合工作的需求,而且它所支持的数据类型十分丰富,维护简单,费用较低,人员素质要求不是很高,容易升级。
在图书信息管理系统的数据库中,需要包含图书会员表、书籍类别表、书籍信息表、书籍作者表、书籍出版商表、用户登录表、罚金表及借阅书籍事务表。
1、创建表结构
数据表定义:
数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:
属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。
关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。
数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。
单击数据库中的“表”对象,单击右侧的“使用设计器设计表”完成以下的表结构。
总表
序号
表名称
用途
1
Users
图书馆的会员/用户信息
2
bookcategories
书籍类别信息
3
bookInformation
各种馆藏书籍的详细信息
4
authors
馆藏书籍的作者详细资料
5
publishers
馆藏书籍的出版商详细资料
6
issues
借出书籍的详细信息
7
fakuan
罚款计算的详细信息
表3.1
Users(会员表)
序号
列名称
数据类型
说明
1
userID
自动编号
用户ID
2
userName
文本
用户姓名
3
userAddress
备注
用户地址
4
userContactNo
文本
用户联系电话
5
userMobileNo
文本
用户手机号码
6
userEmailID
文本
用户电子邮件地址
7
DOJ
日期/时间
用户作为会员加入图书馆的日期
8
DOR
日期/时间
预期会员资格到期日期
9
LibRees
是/否
用户是否已为本年度会员资格付费
表3.2
bookcategories(书籍类别表)
序号
列名称
数据类型
说明
1
catCode
文本
3位类别代码
2
catName
文本
类别名称
3
catDesc
备注
类别的说明
表3.3
bookInformation(书籍信息表)
序号
列名称
数据类型
说明
1
bookID
自动编号
书籍ID
2
bookName
文本
书名
3
bookDesc
备注
书籍说明
4
bookISBN
文本
书籍ISBN编号
5
bookCount
数字
馆藏书籍册数
6
bookPrice
小数
书籍价格
7
publishID
数字
出版商ID
8
cateCode
文本
书籍的第一级或第二级类别代码
9
authorID1
数字
作者1的ID
10
authorID2
数字
作者2的ID
11
purchaseDate
日期
购书日期
表3.4
authors(作者)
序号
列名称
数据类型
说明
1
authorID
自动编号
作者ID
2
authorName
文本
作者姓名
3
authorEmailID
文本
作者电子邮件地址
表3.5
publishers(出版商)
序号
列名称
数据类型
说明
1
publishID
自动编号
出版商ID
2
publishName
文本
出版商名称
3
publishAddress
备注
出版商地址
4
publishContactNo
文本
出版商联系电话
5
publishMobilNo
文本
出版商手机号码
6
publishEmailID
文本
出版商电子邮件地址
表3.6
issues(借书/还书)
序号
列名称
数据类型
说明
1
issueID
自动编号
借出事务处理ID
2
issueDate
日期/时间
书籍借出日期
3
userID
数字
借书用户的ID
4
bookID
数字
借出书籍的ID
6
dueDate
日期/时间
书籍到期日期
7
returnDate
日期/时间
还书日期
表3.7
fakuan(罚金表)
序号
列名称
数据类型
说明
1
issueID
数字
出现罚款的借出事务处理ID
2
fakuanDate
日期/时间
罚款交付日期
3
fakuanMoney
数字–小数
罚款金额
表3.8
2、建立表关系
为了表现这种逻辑关系。
在数据库图书馆管理系统中还需要建立表相应字段的关系,定义参照完整性。
一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在关系。
若有关系,进一步确定是1:
多,多:
多,还是1:
1。
还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。
如:
一个借阅者(用户)只能具有一种身份,而一种身份可被多个借阅者所具有;一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。
各个表之间的关系
图3.1
3、输入表记录
如图:
作者信息表
图3.2
二、创建窗体
利用Access中的“工具箱”和“属性设置”,针对数据库中的各个数据表创建不同的窗体,让其窗体对后台数据进行联接。
操作具体方法如下:
第一步:
选择数据库中的“窗体”对象,选择“新建”命令按钮。
第二步:
在弹出的“新建窗体”对话框中(如下图所示),单击“设计视图”,选择该对象数据的来源表或查询,单击“确定”按钮。
“新建窗体”对话框中
图3.3
第三步:
在新建窗体中把相关的字段列表拖放到舞台,更改其属性,如名称、标题、数据源、控件来源、导航按钮、记录选择器、分隔线等。
第四步:
利用工具箱添加相关的控件按钮。
第五步:
进行窗体整体布局,如对齐方式、控件摆放位置等。
窗体分别如下:
会员信息窗体书籍信息窗体
图3.4图3.5
出版商信息窗体作者详细信息窗体
图3.6图3.7
借阅还书窗体罚金信息窗体
图3.8图3.9
查询窗体增加书籍窗体
图3.10图3.11
三、编写窗体代码
因Access中具有导航记录功能按钮,所以对于上述窗体的部分按钮只需通过向导控件即可完成。
少部分按钮完成代码的编写,实现人机交互的功能。
1、会员信息窗体
“查找”按钮:
DimstDocNameAsString
DimstLinkCriteriaAsString
stDocName="frmfindusers"
DoCmd.OpenFormstDocName,,,stLinkCriteria
“打印会员卡号”按钮:
DimstDocNameAsString
stDocName="printuserinformation"
DoCmd.OpenReportstDocName,acPreview
“每年会员人数统计”按钮:
DimstDocNameAsString
stDocName="printyearusercount"
DoCmd.OpenReportstDocName,acPreview
“本月需缴会费的会员”按钮:
DimstDocNameAsString
stDocName="printmonthjiaofeirenyuan"
DoCmd.OpenReportstDocName,acPreview
2、书籍信息窗体
“增加”按钮:
PrivateSubcmdaddbook_Click()
DimstDocNameAsString
DimstLinkCriteriaAsString
stDocName="frmaddbook"
DoCmd.OpenFormstDocName,,,stLinkCriteria
EndSub
3、查询窗体
首先定义申明如下:
OptionCompareDatabase
DimconnAsADODB.Connection
DimrsAsADODB.Recordset
其实在“查询”按钮编写代码:
在本系统中,任何人都有权限使用查询功能,不做任何限制。
由于实现的查询功能有多种,如按图书编号、图书名称等字段进行完全匹配查找和部分匹配的模糊查找,还有按多个条件进行逻辑与或是逻辑或的多条件查找。
其中实现的方法者差不多,所以只给出多条件查找的代码。
在这个功能中可以在(会员查找)中输入会员姓名,点查找按钮后就会在各个相应的组件中显示出信息,或按会员名称模糊查找到所要的记录,在各个相应的组件中显示第一条记录的信息在各个相应的组件中也会显示所选记录的信息
PrivateSubcmdquery_Click()
DimstrsqlAsString
IfIsNull(txtusername.Value)Then
strsql="select*fromusers"
Else
strsql="select*fromuserswhereuserNamelike'%"&txtusername.Value&"%'"
EndIf
Debug.Printstrsql
Setrs=NewADODB.Recordset
rs.Openstrsql,conn,3,3
MsgBox("共查询到"&rs.RecordCount&"条记录")
Calldisplay
EndSub
PrivateSubdisplay()
If(rs.BOF=False)Then
txtuserID.Value=rs.Fields("userID").Value
txtusername.Value=rs.Fields("userName").Value
txtname.Value=rs.Fields("userName").Value
txtaddress.Value=rs.Fields("userAddress").Value
txtcontactno.Value=rs.Fields("userContactNo").Value
txtmobil.Value=rs.Fields("userMobileNo").Value
txtemail.Value=rs.Fields("userEmailID").Value
txtDOJ.Value=rs.Fields("DOJ").Value
txtDOR.Value=rs.Fields("DOR").Value
txtnowrecord.Value=rs.AbsolutePosition
txtrecordcount.Value=rs.RecordCount
Ifrs.Fields("LibRees").ValueThen
chkmoney.Value=True
Else
chkmoney.Value=False
EndIf
Else
MsgBox"没有查询到记录"
rs.Close
EndIf
EndSub
4、借阅还书窗体
当借阅者正确登录到系统后,此功能将被激活,使用户能查看到自身的借阅情况。
首先定义申明如下:
OptionCompareDatabase
DimconnAsADODB.Connection
DimrsAsADODB.Recordset
“借阅”按钮:
IfIsNull(Me.txtbookID.Value)OrNotIsNumeric(Me.txtbookID.Value)ThenMsgBox("您的书籍ID号未输入或书籍ID号格式不对")
ExitSub
ElseSetrs=NewADODB.Recordset
rs.Open"select*fromissues",cn,3,3
rs.AddNew
rs("bookID")=CInt(txtbookID.Value)
rs("userID")=CInt(txtuserID.Value)
rs.Update
rs.Close
Setrs=Nothing
MsgBox("您可以借阅")
EndIf
“归还”按钮:
DimflagAsBoolean
DimissidAsInteger
DimduedateAsDate
DimstrsqlAsString
strsql="select*fromissueswherebookID="&(txtbookID.Value)&"anduserId="&(txtuserID.Value)&"andreturnDateisNull"
Setrs=NewADODB.Recordset
rs.Openstrsql,cn,3,3
IfNotrs.EOFThen
flag=True
issid=rs("issueID")
duedate=rs("duedate")
Else
MsgBox("错误")
flag=False
EndIf
rs.Close
Setrs=Nothing
Ifflag=FalseThen
MsgBox("您输入的书籍ID或会员ID错误!
")
Else
strsql="updateissuessetreturnDate="&Date&"whereissid="&issid&""
'cn.Execute(strsql)
MsgBox("归还成功!
")
'bookID.Value=""
'userID.Value=""
IfCDate(duedate) MsgBox("您借书时间超过了1个月,请缴纳罚金! 事务ID号为: "&issid) EndIf EndIf 四、登录系统 1、界面设计 按照上述方法在工程中添加“图书馆管理信息系统登录”的窗体,命名为登录窗口,并对此窗体进行相关的属性设置,将“密码”文本框的属性“输入掩码”设定为“密码”,运行时该文本框将以*号输入。 登录窗口 图3.12 2、登录功能实现 使用本系统的用户只能是管理员。 所以在设计登录窗体时,一定要以图书管理员身份才可登录。 如果用户输入的用户名及密码口令和数据库中对应的用户名和密码吻合,则用户登录成功,此时系统会自动退出登录窗体,并进入到欢迎窗体界面。 欢迎界面 图3.13 如果用户所输入的用户名和口令,没有通过数据库验证,则用户登录失败。 用户需要重新输入用户和口令。 3、编写登录代码 将“用户”文本框中将此命名重命名为txtuser,“密码”文本框命名为txtpassword,“确定”按钮命名为cmdOK,对cmdOK按钮编写代码,如下: OptionCompareDatabase OptionExplicit PrivateSubcmdOK_Click() Iftxtuser.Value=DLookup("loadname","loadtable")Andtxtpassword.Value=DLookup("password","loadtable")Then DoCmd.OpenForm("index") Else MsgBox("您输入的用户名或密码有错,请重新输入! ") EndIf EndSub 五、创建主界面 本系统采取切换面换来组织系统中各个窗体。 该界面是一种Windows用户界面标准,它有一个父窗体和多个子窗体。 在典型情况下,父窗体可用来显示子窗体。 它能够以便捷的方式导航数据库,单击切换面板上的按钮可以打开窗体、报表或打开其他切换面板以打开另外的窗体和报表,甚至可以退出MicrosoftAccess。 1、主切换面板的界面设计 在窗体对象中新建一个窗体,命名为主切换面板。 它是整个系统的框架和基础,所有的窗体的展现都将在这里得以实现。 1选择菜单项“工具”中的“数据库实用工具”中的“切换面板管理器”。 2单击“编辑”按钮,选择“新建”命令按钮,在相应的对话框中选择相应的文本、命令及窗体,最后单击“确定”按钮。 3重复上述操作,将不同的窗体都添加到切换面板中。 4此时单击切换面板上相应的按钮可以分别打开窗体、报表或退出应用程序。 主切换面板 图3.14 2、界面工作流程 主切换面板窗体的作用主要是作为整个系统中的各个功能窗体的父窗体。 每个子窗体中都有一个“退出”向导按钮,单击此按钮均可实现退出此窗体的操作。 若用户想退出数据库界面,则可以通过主切换面板中的“退出”切换按钮即可实现。 为防止用户不小心无意退出的可能性,故创建一个“退出”窗体对话框。 如图所示: 退出对话框 图3.15 代码编写如下: OptionCompareDatabase PrivateSubcmdno_Click() DoCmd.Close EndSub PrivateSubcmdyes_Click() DoCmd.Quit EndSub 六、整个程序运行效果的实现 因为要执行Access的运行程序,其相对其它开发应用程序有着不可避免的缺陷,不可生成可执行文件,所以为使整个窗体在运行时能够美观大方,所以最后进行了一步宏的操作,让其不但可以自动执行窗体操作,并能以最大化展示出界面。 操作方法如下: 1、通过从数据库窗口中的对象列表选择“宏”对象,新建一个宏。 2、在宏设计窗口中,将第一个操作指定为Maximize,在执行下个操作之前,此操作会将活动窗口最大化,将下下个操作指定为OpenForm,然后将要打的窗体批定为“登录窗口”。 3、将宏以“AutoExec”名称保存,因此,在下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理信息系统