基于VB图书管理系统.docx
《基于VB图书管理系统.docx》由会员分享,可在线阅读,更多相关《基于VB图书管理系统.docx(28页珍藏版)》请在冰点文库上搜索。
基于VB图书管理系统
图书管理系统
摘要
在图书管理系统用计算机管理图书是一种计算机应用技术的创新,在计算机还未普及之前图书管理都是由图书管理人员手工记帐的方式来操作的.现在一般的图书馆都是采用计算机作为工具的实用的计算机图书管理程序来帮助图书馆管理员进行更有效的图书管理。
图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
关键字:
图书,面向对象,软件工程
Abstract
Inthelibrarymanagementsystemwithcomputermanagementbooksisacomputerapplicationtechnologyinnovation,notonthecomputerbeforethepopularityofmanagementbooksarebooksofaccountmanagementmanualapproachtotheoperation.LibrariesarenowgenerallyusedasatoolforcomputerThepracticalproceduresforthemanagementofcomputerbookstohelplibrariansmoreeffectivemanagementofthebook.
BookManagementSystemisatypicalmanagementinformationsystem(MIS),includingthedevelopmentofitsbackgroundoftheestablishmentandmaintenanceofthedatabasefront-endapplications,aswellasthedevelopmentofboth.Theformersetuptherequirementsfordataintegrityandconsistencyofstrongdatasecurityagoodlibrary.Forthelatterapplicationsrequirefull-featuredandeasytouseandsoon.
Keywords:
books,Object-OrientedSoftwareEngineering
第一章概述1
1.1开发背景1
1.2管理信息系统产生的背景1
1.3系统功能要求的分析2
第二章开发环境及实现技术介绍3
2.1开发环境3
2.2开发工具简介3
第三章图书管理系统的设计和实现5
3.1系统的设计5
3.1.1概要设计5
3.1.2详细设计7
3.2系统的实现9
3.2.1主界面的设计与实现12
3.2.2图书管理模块的设计与实现15
3.2.3读者管理模块的设计与实现19
3.2.4图书借阅管理模块的实现22
3.2.5系统管理模块的设计与实现25
第四章图书管理系统的运行说明40
4.1运行环境40
致谢42
参考文献43
第一章概述
1.1开发背景
图书馆作为学校信息资源的集散地,图书信息及用户借阅资料繁多,其中所产生的信息数据需要进行有效的管理,才能提高图书馆的工作效率。
然而只依靠人工管理必然十分繁琐,因此,为了更好地满足用户的借阅图书的需求,提高学习研究效率,研究并开发一个图书管理系统可以通过计算机软件的应用,对图书信息和用户信息的记录,借阅返还等环节以及可能产生的问题进行有效的管理和防范。
图书管理系统集存储、查询、统计、管理功能于一体,调用方便、使用快捷,充分发挥信息管理系统的功能,大大提高工作效率和数据保存的准确性。
1.2图书管理系统产生的背景
图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
经过分析,我们使用MICROSOFT公司的VISUALBASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
1.3系统功能要求的分析
图书管理系统主要服务与图书管理人员,包含的功能模块主要有:
一.图书管理:
图书类别管理,图书信息管理
二.读者信息管理:
读者管理,读者信息管理.
三.图书借阅管理:
借书管理,还书管理.
四.系统管理:
添加管理员,修改密码
五.超借及罚款管理
六.书籍丢失及证件挂失管理
第二章开发环境及实现技术介绍
2.1开发环境
系统采用C/S结构,主要工作包括后台数据库的建立和维护以及客户端应用程序的设计两个方面;开发工具为VisualBasic6.0,考虑到图书资料的数量及后期扩展升级的需要,采用SQLServer开发后台数据库;开发流程完全按照软件工程的要求,以规定的技术文档作为阶段任务完成标志。
2.2开发软件介绍
1)E4
2)‘]ataMember属性:
从数据供应程序提供的几个数据成员中返回/设定一个特定的数据成员
3)DataSource属性:
设定控件绑定的一个数据源
4)DragIcon属性:
设定图标,它将在拖放操作中作为指针显示
5)DragMode模式:
设定一个值,确定在拖放操作中所用方式
6)Enabled属性:
设置/返回运行时TextBox是否相应用户事件
7)Font属性:
设置/返回字体属性
8)ForeColor属性:
设置/返回文本的前景色
9)Height属性:
设置/返回TextBox的高度
10)IMEMode属性:
设置/返回数值用来确定输入方法编辑器的状态
11)Index属性:
设置/返回唯一的标识控件数组中该控件的编号
12)Left属性:
设置/返回TextBox控件的水平位置
13)Locked属性:
设置/返回TextBox中文本是否可编辑
14)LinkItem属性:
设置/返回DDE与另一个应用程序会话时,传给接受端的数据
15)MaxLength属性:
设置/返回一个值,指定在TextBox控件中能够输入的字符最大值
16)MouseIcon属性:
设置/返回自定义鼠标的图标
17)Top属性:
设置/返回TextBox控件的垂直位置
18)Tag属性:
存储过程所需的附加数据
◆文本框类的事件:
1)Change事件:
当改变文本框内容时发生
2)Click事件:
鼠标单击控件时发生
3)DblClick事件:
用鼠标左键双击控件时发生
4)DragDrop事件:
在一个完整的拖放动作完成或使用Drag方法,并将其Action参数设置为2时发生
5)DragOver事件:
在拖放操作正在进行时发生
6)GotFocus事件:
当一个命令按钮获得焦点时发生
7)LinkClose事件:
当一个DDE对话结束时发生
8)LinkError事件:
当一个DDE对话框过程中出现错误时,该事件发生
9)KeyDown事件:
当命令按钮具有焦点时按下一个键时发生
10)Validate事件:
在焦点转换到另一个控件之前发生,此时该控件的CausesValidation属性值设置为True
◆单选按钮类的控件:
19)Caption属性:
显示在控件上的文本,是单选按钮的标题。
20)Alignment属性:
决定单选按钮的标题在控件上的位置。
21)Enable属性:
该控件为灰色时为false,表示运行时不可用。
22)Index属性:
属性值表示为单选按钮组成的控件中某个按钮的索引值。
23)Tabindex属性:
建立控件时,vb自动为其分配一个tabindex值,利用tab键可以在控件之间切换焦点。
24)Value属性:
反映控件状态的属性,返回true表示已选择了该按钮。
25)Appearance属性:
设置/返回一个对象在运行时是否以3D效果显示。
26)BackColor属性:
设置/返回背景色。
27)Container属性:
设置/返回Form上的控件属性。
28)DataField属性:
设置/返回数据使用者将被绑定到的字段名。
29)DataFormat属性:
设置/返回DataFormat对象,一个绑定对象将附加到它。
30)DisabledPicture属性:
设置/返回一个对图像的引用,该图片在控件无效时显示在控件中。
31)DownPicture属性:
设置/返回一个对图片的引用,该图片在控件单击下处于压下状态时显示。
32)DragMode属性:
设置/返回一个值,确定在拖放操作中所用的方式。
33)Font属性:
设置/返回字体属性。
34)FontBold属性:
设置/返回字体粗体样式。
35)FontItalic属性:
设置/返回字体斜体样式。
36)FontStrikethru属性:
设置/返回字体删除线样式。
37)FontUnderLine属性:
设置/返回字体下划线样式。
38)FontName属性:
设置/返回控件中显示文本所用的字体大小。
39)FontSize属性:
设置/返回控件中显示文本所用的字体大小
40)Height属性:
设置/返回控件的高度。
41)MaskColor属性:
设置/返回一个在控件的图片中作为掩码的颜色。
42)MousePointer属性:
设置/返回一个值,该值指示在运行时当鼠标移动到对象上时显示的指针类型。
◆单选按钮类的常用事件:
1)Click事件:
鼠标单击控件时发生。
2)DbClick事件:
当在一个对象上按下和释放鼠标按钮并再次按下和释放按钮时,该事件发生。
3)DragDrop事件:
在一个完整的拖放动作或使用Drag方法,并将其Action参数设置位2时,该事件发生。
4)DragOver事件:
在拖放操作正在进行时发生。
5)GotFocus事件:
当获的对象焦点时发生。
6)LostFocus事件:
当对象失去焦点时发生。
7)KeyDown事件:
当控件具有焦点时按下一个键时发生。
8)KeyUp事件:
当控件具有焦点时释放一个键时发生。
9)KeyPress事件:
当用户按下或释放ANSI一个键时发生。
10)MouseDown事件:
当在控件上按下鼠标键时发生。
11)MouseMove事件:
在控件上移动鼠标时发生。
12)MouseUp事件:
在控件上释放鼠标时发生。
◆复选按钮类的控件:
43)Caption属性:
缺省为check1…。
44)Index属性:
该属性值为复选框控件数组的下标.
45)Value属性:
value为0表空白,为1表勾号,为2表示灰色勾号.
46)Container属性:
Form控件上的容器。
47)DataChangeed属性:
设置/返回一个值,指出被绑定的控件中的数据已经被某进程修改。
48)DataField属性:
设置或返回数据使用者将被绑定到的字段名。
49)DataFormat属性:
设置或返回DataFormat对象,用于数据绑定。
50)Datasource属性:
设置或返回控件绑定的一个数据源。
51)DisabledPicture属性:
设置或返回一个对图片的引用,该图片在控件无效时显示在控件中。
52)DownPicture属性:
设置或返回一个对图片的引用,该图片在控件被单击处于压下状态时显示。
53)DragIcon属性:
设置或返回图标,它将在拖放操作中做为指针显示。
54)DragMode属性:
设置返回一个值,确定在拖放操作中所用方式。
55)Font属性:
设置或返回字体的属性。
56)Name属性:
设置或返回控件的标识名。
57)Value属性:
设置或返回控件的状态。
◆复选按钮类的控件的基本事件:
1)Click事件:
鼠标单击控件时发生。
2)DragDrop事件:
在一个完整的拖放动作完成或使用Drag方法,并将其Action参数设置为2时发生。
3)DragOver事件:
在拖放操作正在进行时发生。
4)GotFocus事件:
在对象获的焦点时发生。
,
5)OLECompleteDrag事件:
当源部件被放到目标时发生,并通知源部件拖放操作被执行或取消。
6)OLEDragDrag事件:
当源部件决定放操作能发生,却源部件被放到目标部件时,此事件发生。
◆框架类的控件:
1)List属性:
列表框控件的表项是使用数组的方式保存,数组的每一个元素存储列表控件的一个表项
58)Listcount属性:
控件列表部分项目的个数。
59)Mutselect属性:
可以设置列表框为单选或允许多选属性.
60)Selectd属性:
标示一个数组,数组各元素为:
61)Selected(0),selected
(1)…
◆滚动条类的控件:
62)Value属性:
滚动条上滑块所在位置由value值所决定。
63)Max和min属性:
对value值的最大,最小进行限制。
64)Largechange属性:
用户点击滚动条与键头之间的区域时,value的改变量。
4)OnClick事件:
用来添加按钮的单击事件所执行的程序代码。
◆定时器类类的控件:
65)Interval属性:
表示定时的时间间隔,以毫秒为单位。
66)Enable属性:
为true时(缺省值),激活定时器开始计时;为false时处于休眠状态.
数据库连接方式选择
Visualbasic6.0连接数据库的主要方式以下几种方式:
一是:
用data控件进行数据库链接,二是利用adodc(ADODataControl)进行数据库链接。
三是:
利用DataEnvironment进行数据库链接.四是利用ADO(ActiveXDataObjects)进行编程
:
现在我们来大致对这几种技术应用介绍:
一、用data控件进行数据库链接.
第一步:
给窗体添加一个Data控件。
第二步:
用Access建立一个名为Pad的数据库,在库中建立一个表Myset,给表添加四个字段:
backcolor(数据),forecolor(文本),fontname(文本),fontsize(文本)。
注意:
请将库文件存入程序所在目录。
如果你的机器没安装有Access,可通过VB建库。
二、利用adodc(ADODataControl)进行数据库链接:
使用adodata控件访问数据库可以完全不用编写代码,只需要通过简单的设置和操作其属性就可以实现与数据库的连接,通过绑定数据感知控件,就能提供一个访问数据库的界面,用来实现对数据库的浏览,贴加,删除,修改等操作.
三、利用DAO对数据库进行操纵:
在visualbasic中提供了两种与jet数据引擎接口的方法:
data控件与数据访问对象(DAO)DAO是databaseobject的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持.
DAO模型是设计关系数据库系统结构的对象类的集合.他们提供了管理关系型数据库系统所需要的全部操作属性和方法,这其中包括建立数据库,定义表,字段和建立表间关系,定位和查询数据库等.
关系数据库介绍:
关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。
20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。
在数据库发展的历史上,最重要的成就就是关系模型。
关系数据库系统与非关系数据库系统的区别是:
关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。
结构化查询语言SQL(StructuredQueryLanguage)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。
目前已成为关系数据库的标准语言
Microsoft Access介绍:
使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息。
在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。
如果要保存数据,请为每一种类型的信息创建一个表。
如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。
如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。
查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。
如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。
在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。
如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。
例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。
第三章图书管理系统的设计与实现
3.1系统的设计
3.1.1系统的概要设计
该系统考虑将整个系统分解成如下模块:
3.1.2系统的详细设计
1.读者类别表
2.读者信息表:
3.借阅信息表:
4.书籍信息表:
5.图书类别表:
6.系统管理表:
3.2系统的设计与实现
3.2.1系统的主界面的设计与实现
主界面代码:
PrivateSubadd_admin_Click()
frmadduser.Show
EndSub
PrivateSubadd_back_book_Click()
frmbackbookinfo.Show
EndSub
PrivateSubadd_book_info_Click()
frmaddbookinfo.Show
EndSub
PrivateSubadd_book_style_Click()
frmaddbookstyle.Show
EndSub
PrivateSubadd_lend_book_Click()
frmfindbook.Show
EndSub
PrivateSubadd_reader_info_Click()
frmaddreaderinfo.Show
EndSub
PrivateSubadd_reader_style_Click()
frmaddreaderstyle.Show
EndSub
PrivateSubchange_pwd_Click()
frmchangepwd.Show
EndSub
PrivateSubdel_book_info_Click()
frmmodifybookinfo.Show
EndSub
PrivateSubdel_book_style_Click()
frmmodifybookstyle.Show
EndSub
PrivateSubdel_reader_info_Click()
frmreaderinfo.Show
EndSub
PrivateSubdel_reader_style_Click()
frmmodifyreaderstyle.Show
EndSub
PrivateSubexit_sys_Click()
End
EndSub
PrivateSubfind_book_info_Click()
frmfindbook.Show
EndSub
PrivateSubfind_lend_book_Click()
frmfindborrowinfo.Show
EndSub
PrivateSubfind_reader_info_Click()
frmfindreader.Show
EndSub
PrivateSubmodify_book_info_Click()
frmmodifybookinfo.Show
EndSub
PrivateSubmodify_book_style_Click()
frmmodifybookstyle.Show
EndSub
PrivateSubmodify_reader_info_Click()
frmreaderinfo.Show
EndSub
PrivateSubmodify_reader_style_Click()
frmmodifyreaderstyle.Show
EndSub
3.2.2图书管理模块的设计与实现
图书管理模块主要由:
图书类别管理,图书信息管理.
图书类别管理又分别由以下几个界面构成:
1.添加图书类别
添加图书类别代码:
PrivateSubCommand1_Click()
Dimrs_bookstyleAsNewADODB.Recordset
DimsqlAsString
IfTrim(Text1.Text)=""Then
MsgBox"图书种类不能为空",vbOKOnly+vbExclamation,""
Text1.SetFocus
ExitSub
EndIf
IfTrim(Text2.Text)=""Then
MsgBox"种类编号不能为空",vbOKOnly+vbExclamation,""
Text2.SetFocus
ExitSub
EndIf
sql="select*from图书类别where类别名称='"&Text1.Text&"'"
rs_bookstyle.Opensql,conn,adOpenKeyset,adLockPessimistic
Ifrs_bookstyle.EOFThen
rs_bookstyle.AddNew
rs_bookstyle.Fields(0)=Trim(Text1.Text)
rs_bookstyle.Fields
(1)=Trim(Text2.Text)
rs_bookstyle.Update
MsgBox"添加图书类别成功!
",vbOKOnly,""
rs_bookstyle.Close
Else
MsgBox"读者类别重复!
",vbOKOnly+vbExclamation,""
Text1.SetFocus
Text1.Text=""
rs_bookstyle.Close
ExitSub
EndIf
EndSub
2.修改图书类别:
修改图书类别代码:
PrivateSubForm_Load()
DimsqlAsString
OnErrorGoToload