图书馆信息管理系统.docx
《图书馆信息管理系统.docx》由会员分享,可在线阅读,更多相关《图书馆信息管理系统.docx(41页珍藏版)》请在冰豆网上搜索。
![图书馆信息管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/25/7aa980de-94fa-4995-9c6b-ae4d31f70f8f/7aa980de-94fa-4995-9c6b-ae4d31f70f8f1.gif)
图书馆信息管理系统
补充2:
ADO+Access实现图书馆管理信息系统
图书管理系统是一个常见的信息管理系统(MIS),典型的图书管理系统包括会员管理、书籍管理、借书、续借、丢失及赔偿等功能。
本章将详细分析一个完整的图书管理系统的实施过程,包括需求分析、系统框架、系统建模、数据库建模、程序实现和系统维护等。
2.1技术要点
本章的知识要点可以分成两个部分,一个是系统分析层次的知识点,一个是程序员层次的知识点。
对一个完整的系统来说,这两个方面是必不可少的,而更加重要的是系统分析这个层次,只有系统分析做好了,程序模块设计和代码编写才能够做得更好。
本章主要介绍以下知识点:
●图书馆管理系统的整个管理流程
●图书馆管理系统的数据库设计
●控件动态绑定技术:
介绍在数据库字段比较多的时候,如何使用控件数组及控件动态绑定到数据库技术,减少在显示数据时的大量重复代码。
●数据控件DataCombo的使用技术:
介绍使用少量代码利用DataCombo控件显示数据表中某字段存在的信息的技术。
●DataReport报表组件使用技术:
介绍快速报表组件的使用技巧及动态绑定报表到数据库的技术。
●ADO组件使用技术及技巧:
介绍如何通过Connection对象连接后端数据库,使用Recordset对象实现对数据表的添加、修改、删除、查询技术。
●公用窗体技术:
介绍如何使用一个窗体提供几种主要业务,便于控件和窗体的共用,减少编程强度。
●模拟Data控件技术:
介绍使用4个按钮控件和1个标签(Label)控件模拟出Data控件的使用效果。
●其他高级技术。
2.2系统概况
图书管理系统是一套功能完整、操作简便的图书管理及借书管理软件,包括图书管理系统、书籍管理系统、员工管理系统、会员管理系统、借书系统、罚款支付系统、系统设置与维护7大功能,实现了书籍及借书的自动管理。
图书管理系统可广泛适用于中小型图书馆和资料室。
2.2.1软件配置
操作系统:
Windows2000中文版、WindowsXP中文版或更高;
数据库选择:
MicrosoftAccess2000;
开发平台:
VisualBasic6.0。
2.2.2硬件配置
CPU:
Pentium4;
内存:
256M或以上;
硬盘:
80G以上;
扫描仪:
扫描精度1200dpi以上
显示器:
CRT或液晶;
外设:
报表打印机等。
2.3需求分析
需求分析是成功实施一个管理系统的基础,只有弄清楚客户的需求,才能真正开发出满足客户需求的管理信息系统,也才能够真正让整个系统发挥其相应的作用。
接下来就针对图书管理系统的总体需求做分析,在实际开发过程中,可以在本系统需求分析中继续完善。
2.3.1总体功能要求
在经过对图书管理流程进行详细了解与分析后,可以看出一个功能完整的图书管理系统必须包几个管理系统。
(1)图书信息管理系统
考虑到图书馆书籍的特殊性,图书信息有其特殊的层次结构,如图2.1所示。
主题
书籍3
书籍1
书籍2
书本1
书本3
书本2
书本1
书本2
书本1
书本2
图2-1图书信息的树状结构
往往由一些书籍(Titles)组成主题(Subjects),而每一书籍在图书馆中又有若干副本(书本,即Books)。
因此,图书管理系统中包括主题信息管理(包括主题信息的添加、修改、删除及查找操作)、书籍信息管理(包括书籍信息的添加、.修改、删除及查询操作)、书本信息管理(包括书本信息的添加、删除及查询操作)。
(2)员工信息管理系统
这个管理系统包括图书馆工作人员基本信息的添加、修改、删除及查询功能。
(3)会员信息管理系统
这个管理系统包括会员信息的添加、修改、删除及查询功能。
(4)借书管理系统
这个管理系统包括借书、还书、预订书籍等功能。
(5)罚款管理系统
这个管理系统包括丢失书籍罚款、会员支付罚款等功能。
(6)系统设置系统
在这个系统中,可以设置会员最大借书数量、会员最大预订书数量、会员费、会员资格持续时间等系统参数。
(7)用户登录系统
用户分为三类:
管理员、图书馆工作人员和会员,不同的用户根据不同的密码及用户类型登录,具有不同的权限。
(8)查询系统
分为书本查询和会员查询,可进行多个条件的组合查询,可进行精确和模糊查询。
(9)用户管理系统
可添加或删除用户,更改用户密码,变更用户身份类型等。
系统的功能需求可用图2-2来表示。
图书管理系统
用户登录
会员
图书馆工作人员
管理员
图书信息管理系统
系统设置系统
会员信息管理系统
用户管理系统
雇员信息管理系统
借书管理系统
罚款管理系统
查询系统
图2-2系统功能需求
2.3.2性能的需求
(1)精度要求
图书管理系统对精度要求较低,仅需满足整型数据输入、存储和输出即可。
(2)时间特性要求
在软件方面,响应时间、更新处理时间都要求比较快且迅速,以满足要求。
(3)灵活性
当用户需求,如操作方式、运行环境、结果精度、数据结构与其他软件接口等发生变化时,设计的软件要求能做适当调整。
(4)规模
适用于中小规模图书馆及资料室的图书管理工作。
2.4数据库设计及配置
2.4.1数据库设计
数据库设计对于一个信息管理系统的顺利开发和运行是十分重要的,其目标为结构合理、易于维护、查询便捷、冗余信息少等。
本系统的数据库由8张表组成:
Subjects(主题信息表)、Titles(书籍信息表)、Books(书本信息表)、Members(会员信息表)、Employees(员工信息表)、Fine(罚款支付信息表)、GlobalVariables(系统配置信息表)和Users(用户信息表)。
它们之间的关系如图2-3所示。
图2-3关系图
下面对数据表进行逐一介绍。
Subjects表存储主题信息,其结构如表2.1所示。
表2—1主题信息表
字段名
类型
大小
必填字段
索引
是否主键
意义
Subject
文本
50
是
有(无重复)
是
主题名
IssueDays
数字
整型
出借期限
NoOfBooks
数字
整型
该主题下书籍数目
FineCharge
数字
单精度型
罚款费用(每天)
ReverseCharge
数字
单精度型
预订费用
Titles表中存储书籍的基本信息,其结构如表2.2所示。
表2—2书籍信息表
字段名
类型
大小
必填字段
索引
是否主键
意义
TitleID
文本
50
是
有(无重复)
是
书籍编号
Subject
文本
50
所属主题
Author
文本
50
作者
Title
文本
50
书籍名称
Price
数字
单精度型
价格
Quantity
数字
整型
数量
AddOn
文本
50
附加信息
Books表中存储书本的基本信息,其结构如表2.3所示。
字段名
类型
大小
必填字段
索引
是否主键
意义
TitleID
文本
50
是
所属书籍编号
BookID
文本
50
是
有(无重复)
是
书本编号
IsIn
是/否
是否在图书馆中
TypeIssue
是/否
范本出借
Condition
文本
50
书本状况
MemberID
文本
50
借阅会员编号
ReserveId
文本
50
预订会员编号
ReturnDate
日期/时间
归还日期
IssueCount
数字
整型
借出次数
Members表中存储会员基本信息,其结构如表2—4所示。
表2—4会员信息表
字段名
类型
大小
必填字段
索引
是否主键
意义
MemberId
文本
50
是
有(无重复)
是
会员编号
DateOfJoining
日期/时间
加入日期
DateOfExpire
日期/时间
会员资格过期日期
FirstName
文本
50
姓
LastName
文本
50
名
BooksInHand
数字
整型
当前借书数量
FineBal
数字
单精度型
罚款余额
Address
文本
50
地址
Tel
文本
50
电话号码
Email
文本
50
Email地址
Employees表中存储员工基本信息,其结构如表2-5所示。
表2—5员工信息表
字段名
类型
大小
必填字段
索引
是否主键
意义
EmployeeId
文本
50
是
有(无重复)
是
员工编号
FirstName
文本
50
姓
LastName
文本
50
名
Address
文本
50
地址
Tel
文本
50
电话号码
Email
文本
50
Email地址
fine表中存储会员罚款支付信息,其结构如表2—6所示。
表2—6罚款支付信息表
字段名
类型
大小
必填字段
索引
是否主键
意义
MemberId
文本
50
是
有(无重复)
是
会员编号
FineAmount
数字
单精度型
支付罚款金额
PayDate
日期/时间
支付日期
GlobalVariables表中存储系统配置信息,其结构如表2-7所示。
表2-7系统配置信息表
字段名
类型
大小
必填字段
索引
是否主键
意义
TotallssueBooks
数字
整型
是
最大借书数量
RenewalCounter
数字
整型
是
最大续借数量
MaxFineBal
数字
单精度型
是
最大罚款额度
MembershipDuration
数字
整型
是
会员资格持续时间
MembershipFee
数字
单精度型
是
会费
RenewalFees
数字
单精度型
是
续借费用
Users表中存储用户信息,其结构如表2—8所示。
表2—8用户信息表
字段名
类型
大小
必填字段
索引
是否主键
意义
UserName
文本
50
是
有(无重复)
是
用户名
UserPassword
文本
50
是
用户密码
UserType
数字
整型
是
用户类型
2.4.2数据库建立
本例使用的后端数据库是MicrosoftAccess2000,数据库及其表的建立比较简单,可参考前面相关内容,在此不多叙述。
2.5系统程序实现
2.5.1设计概况
为了让读者对本系统有一个大致了解,首先列举出本程序包含的窗体和模块及说明。
窗体信息如下:
frmLogin(系统登录窗体):
对用户名、用户密码、用户类型进行验证。
MDIForm1(程序主窗体):
将系统提供的各种功能集中呈现于用户面前。
frmSubiects(主题信息管理窗体):
提供对书籍主题信息的添加、修改、删除、浏览、查询等功能。
frmTitles(书籍信息管理窗体):
提供书籍基本信息的添加、修改、删除、浏览、查询等功能。
frmBooks(书本信息管理窗体):
提供对书本基本信息的添加、修改、删除、浏览、查询等功能。
frmMembers(会员信息管理窗体):
提供对会员基本信息的管理功能,如添加会员、删除会员、修改会员信息、查询特定会员等。
frmEmployees(员工信息管理窗体):
提供对员工基本信息的管理功能,如添加员工、删除员工、修改员工信息、查询特定员工等。
frmlssue(业务窗体):
本窗体实现的功能比较多,如借阅书籍、还书、续借书籍、丢失书籍、赔款、预订书籍等。
它也是本系统的最重要的窗体,大部分图书管理的业务逻辑均存在于这个窗体中。
frmOptions(系统配置窗体):
提供对系统的一些配置选项,如会员最大借书数量、会员最大预定数量、最大罚款金额、会员资格持续时间、会员费用、会员续办费用等。
frmFindBook(书籍查询窗体):
按书籍编号、书籍名称、作者、主题、价格等进行精确或模糊查询。
frmFindMember(会员查询窗体):
按会员编号、姓、名、电话、地址、email等进行精确或模糊查询。
frmUser(用户管理窗体):
提供用户添加、删除、更改密码、更改用户类型的管理功能。
frmAbout(关于窗体):
提供软件的名称、版本、版权、作者、维护等信息。
以上介绍的是程序的重要窗体,其中frmSubjects、frmTitles、frmBooks、frmMembers和frmEmployee均是信息管理系统的标准窗体设计,具有一定相似性和代表性,可以依照这几个窗体的模式编写出适合其它信息系统的管理窗口。
还有一个部分即模块文件,具体为:
m.bas(主模块):
主要功能为将系统配置信息从GlobalVariables表中读入系统。
在阅读下面的具体程序以前,可先了解每个窗体的大致功能,这对了解整个程序的开发实施是非常有益的。
在后面的具体程序实现中,由于篇幅的限制,不会时所有的代码都进行详细分析,而只是针对关键的模块和技术进行介绍。
2.5.2系统登录窗体
1.登录窗体的功能
系统登录模块是由系统登录窗体(frmLogin)构成,界面如图2-4所示。
本系统是一个基于不同用户的系统。
在本系统中有3类不同的用户:
管理人员、图书馆工作人员和会员。
因此,在系统启动时,需要显示一个登录窗口,以供用户选择不同类型的身份登录,然后根据不同的用户身份,来显示不同的功能。
图2-4frmLogin窗体的设计示意图
2.登录窗体的设计
登录窗体的主要控件及其属性如表2-9所示。
表2-9登录窗体主要控件及其属性设置
控件
名称
属性设置
Form
frmLogin
BorderStyle属性设为3,Caption属性设为“请登录”
Frame
fraLogin
Caption属性设为“登录”
Label
lblLabels
Caption属性设为“用户名:
”,Index属性为0
TextBox
txtUser
Text属性设为空
Label
lblLabels
Caption属性为“口令:
”,Index属性为l
TextBox
txtPwd
Text属性设为空
Label
lblLabels
Caption属性为“选择身份:
”,Index属性为2
ComboBox
cboUserType
Style属性为“2-DropdownList”
CommandButton
cmdOK
Caption属性设为“确定”,Default属性为True
CommandButton
cmdCancel
Caption属性设为“取消”,Cancel属性为False
3.窗体的工作流程/方式
系统开始运行时,首先会登录窗体。
由于本窗体是一个面向多用户的系统,不同的用户在使用统时,将会拥有不同的功能。
登录窗体的作用就是确定当前使用系统的用户的类型。
当窗体运行时,用户首先要在用户名和口令这两个文本框中输入其用户名和口令,然后在身份组合框中选择不同的身份(管理人员、图书馆工作人员和会员)。
在窗体的Load事件中,首先就是需要将用户的3种不同的身份添加到cboUserType中,以供用户选择其身份之用。
在“确定”按钮的Click事件响应中,程序将会根据用户输入的用户名和口令,及其选择的用户身份,在数据库中的Users表中查找对应的用户。
在Users中,“用户名”字段对应用户输入的用户名,“用户密码”字段对应用户输入的口令,“用户类型”字段对应用户所选择的身份。
·如果在UserList表中找到了对应的用户,则退出登录窗体,并进入到MDI主窗体,并根据不同的用户身份,来向用户开放不同的功能。
·如果在Users表中没有找到对应的用户,则提示用户再次输入,如果超过3次,还不能找到用户,则表示用户无权使用本系统,并退出系统。
4.编写窗体代码
(1)本系统需要打开数据库及记录集,以及根据不同的用户来显示不同的功能,需要添加全局性变量和过程。
因此在标准模块m.bas中添加变量和过程如下:
PubliccnnAsNewADODB.Connection'数据库连接对象
Publicg_sqlAsString'要执行的SQL语句
PublicrsAsNewADODB.Recordset'记录集对象
Publicg_UsertypeAsInteger'用户类型
Publicg_userNameAsString'用户名
PublicSubopenDatabase()
cnn.Open"provider=Microsoft.Jet.OLEDB.4.0;DataSource="&_
App.Path&"\library.mdb;PersistSecurityInfo=False"
'打开与数据库的连接
EndSub
(2)在frmLogin窗体模块中,处理Form的Load事件。
在该事件响应中,初始化cboUserType的内容,代码如下:
PrivateSubForm_Load()
CallopenDatabase
cboUserType.Clear
cboUserType.AddItem"管理员",0
cboUserType.AddItem"图书馆工作人员",1
cboUserType.AddItem"借阅者",2
cboUserType.ListIndex=0
txtUser.Text=""
txtPwd.Text=""
EndSub
(3)在frmLogin窗体中,处理cmdOK的Click事件。
在该事件响应中,验证用户所输入的用户名、口令和身份是否匹配。
代码如下:
PrivateSubcmdOK_Click()
IfTrim(txtUser.Text)=""OrTrim(txtPwd.Text)=""Then
MsgBox"请先输入用户名及其密码!
",vbInformation,"注意"
ExitSub
EndIf
'取得用户类型和用户名,保存在标准模块m.bas的全局变量'g_userType和g_userName中
g_Usertype=cboUserType.ListIndex
g_userName=txtUser.Text
'根据用户名及密码在数据库中搜索
Dimrs1AsNewADODB.Recordset
rs1.Open"select*fromUserswhereUserName='"&_
Trim(txtUser.Text)&"'anduserpassword='"&_
Trim(txtPwd.Text)&"'andUserType="&_
g_Usertype,cnn,adOpenDynamic,adLockOptimistic
'用户名密码错误次数,超过3次,则退出系统
StaticcountAsInteger
Ifrs1.EOFThen'登录失败
MsgBox"对不起,无此用户或者密码不正确或者用户类型不正确!
_
请重新输入!
",vbInformation,"错误"
txtUser.SetFocus
count=count+1
Ifcount>=3Then
MsgBox"您无权操作本系统!
再见!
",vbCritical,"无权限"
UnloadMe
'关闭数据库连接
cnn.Close
EndIf
Else'登录成功
MsgBox"登录成功!
欢迎使用本系统!
",vbInformation,"欢迎"
UnloadMe
MDIForm1.Show
EndIf
EndSub
(4)在frmLogin窗体中,处理cmdCancel的Click事件。
PrivateSubcmdCancel_Click()
cnn.Close
'关闭数据库连接
UnloadMe
EndSub
2.5.3系统主界面
1.窗体的功能
主窗体(MDIForm1)的设计采用多文档(MDI)技术(在工程资源管理器中鼠标右键点击当前工程,然后在“插入”中选择“MDI窗体”,就可以创建MDIForm对象设置主窗体)。
一个工程中主窗体是唯一的,多文档界面子窗体的MDIChid属性为True,如下介绍的主题信息管理窗体(frmSubjects)、书籍信息管理窗体(frmTitles)、书本信息管理窗体(frmBooks)、会员信息管理窗体(frmMembers)和员工信息管理窗体(frmEmployees)都是MDI子窗体,打开此类窗体使用的是Show函数。
再设置主窗体的WindowsState属性为wsMaximized,主窗体以最大化方式显示。
系统的主窗体MDIForm1如图2-5所示。
图2-5系统主界面
2.菜单项
系统功能模块的调用是通过主界面的菜单实现的,系统菜单设计如表2-10。
表2-10主菜单设计
标题
名称
功能
数据库(&D)
mnuDB
…主题信息管理
mnuSubjects
调用书籍主题管理模块
…书籍信息管理
mnuTitles
调用书籍信息管理模块
…书本信息管理
mnuB00ks
调用书本信息管理模块
…会员信息管理
mnuMembers
调用会员信息管理模块
…员工信息管理
mnuEmployees
调用员工信息管理模块
…配置
mnuOptions
调用系统配置模块
管理(&M)
mallTrallSaCtions
…借出书籍
mnuIssue
本菜单和接下来的5个菜单都调用业务窗体(业务模块),但实现不同功能
…续借书籍
munRenewal
同上
…归还书籍
munReturn
同上
…预订书籍
mtmRes
同上
…丢失书籍
munMiss
同上。
…购买书籍
munCha