图书管理系统
摘要
在图书管理系统用计算机管理图书是一种计算机应用技术的创新,在计算机还未普及之前图书管理都是由图书管理人员手工记帐的方式来操作的.现在一般的图书馆都是采用计算机作为工具的实用的计算机图书管理程序来帮助图书馆管理员进行更有效的图书管理。
图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 关键字:图书,面向对象,软件工程
Abstract
In the library management system with computer management books is a computer application technology innovation, not on the computer before the popularity of management books are books of account management manual approach to the operation. Libraries are now generally used as a tool for computer The practical procedures for the management of computer books to system (MIS), including the development of its background of the establishment and maintenance of the database front-end applications, as well as the development of both. The former set up the requirements for data integrity and consistency of strong data security a good library. For the latter applications require full-featured and easy to use and so on.
Keywords: books, Object-Oriented Software Engineering
目 录
第一章 概述 1
1.1开发背景 1
1.2管理信息系统产生的背景 1
1.3系统功能要求的分析 2
第二章 开发环境及实现技术介绍 3
2.1开发环境 3
2.2开发工具简介 3
第三章 图书管理系统的设计和实现 5
(此文档为word 格式,下载后您可任意编辑修改!) 优秀论文 审核通过 未经允许 切勿外传
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公司的 VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
1.3 系统功能要求的分析
图书管理系统主要服务与图书管理人员,包含的功能模块主要有:
一.图书管理:图书类别管理,图书信息管理
二.读者管理:读者管理,读者信息管理.
三.图书借阅管理:借书管理,还书管理.
四.系统管理:添加管理员,修改密码,退出系统
第二章开发环境及实现技术介绍
2.1开发环境
硬件平台
CPU Intel P4 1.5G
主板Intel 850芯片组的GA-8TX-C
内存2×128M的三星Rambus内存
硬盘Seagate Barracuda 7200.7 80G
显卡Unika 小妖G9800
显示器美格770PF,17寸纯平显示器
软件环境
操作系统Microsoft WindowsXP简体中文专业版+SP1
办公软件Microsoft Office 2003
显卡驱动nVIDIA ForceWare驱动56.72版For Win2000XP
2.2 开发软件介绍
本系统所采用的编程语言为visual basic 6.0与微软的 access作为操作数据库.
现分别对其简单介绍:
Visual Basic 6.0是Micrsoft公司出品的开发工具,Visual Basic是一种可视化的,面向对象的Windows开发语言,它具有易用,通用和开发效率高的特点。随着微软对它不断地改进以及计算机本身性能的提高,使得Visual Basic越来越适合一般的应用程序开发。正如Bill Gate所说,世界上绝大多数的Windows应用程序是用Visual Basic编写的。在众多的开发工具中,我们为什么要选择Visual Basic6.0呢?因为VB具有众多其它开发工具所没有的优点!具体介绍如下:
◆开发的高效
◆语言的高效
◆编译的高效
◆执行的高效
◆维护的高效
基于以上理由,我们毫不忧郁的选择了VB6.0做为我们的开发工具!!
主要的控件及其基本属性,事件简介
◆命令按钮类的控件:
1)Caption属性:用来显示在控件上的标题。
2)Enable属性:控制控件的激活状态灰色或可用。
3)Appearance属性:值为1时,则以3D效果显示该控件,0则不然。
4)Backcolor属性:用来改变在按钮上显示图像的背景色。
5)Cancel属性:该属性决定按钮是否为一个”取消”按钮。
6)Default属性:决定哪一个命令按钮控件是窗体的缺省命令按钮.
7)Font属性:控制各种文字字体类型.
1)Left,top, 属性值设置为True
◆单选按钮类的控件:
1)Caption属性:显示在控件上的文本,是单选按钮的标题。
2)Alignment属性:决定单选按钮的标题在控件上的位置。
3)Enable属性:该控件为灰色时为false,表示运行时不可用。
4)Index属性:属性值表示为单选按钮组成的控件中某个按钮的索引值。
5)Tabindex属性:建立控件时,vb自动为其分配一个tabindex值,利用tab
键可以在控件之间切换焦点。
6)Value属性:反映控件状态的属性,返回true表示已选择了该按钮。
7)Appearance 属性:设置返回一个对象在运行时是否以3D效果显示。
8)BackColor 属性:设置返回背景色。
9)Container 属性:设置返回Form上的控件属性。
10)DataField 属性:设置返回数据使用者将被绑定到的字段名。
11)DataFormat 属性:设置返回DataFormat对象,一个绑定对象将附加到它。
12)DisabledPicture 属性:设置返回一个对图像的引用,该图片在控件无效时
显示在控件中。
13)DownPicture 属性:设置返回一个对图片的引用,该图片在控件单击下处于
压下状态时显示。
14)DragMode 属性:设置返回一个值,确定在拖放操作中所用的方式。
15)Font 属性:设置返回字体属性。
16)FontBold 属性:设置返回字体粗体样式。
17)FontItalic 属性:设置返回字体斜体样式。
18)FontStrikethru 属性:设置返回字体删除线样式。
19)FontUnderLine 属性:设置返回字体下划线样式。
20)FontName 属性:设置返回控件中显示文本所用的字体大小。
21)FontSize 属性:设置返回控件中显示文本所用的字体大小
22)Height 属性:设置返回控件的高度。
23)MaskColor 属性:设置返回一个在控件的图片中作为掩码的颜色。
24)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事件:在控件上释放鼠标时发生。
◆复选按钮类的控件:
1)Caption属性:缺省为check1…。
2)Index属性:该属性值为复选框控件数组的下标.
3)Value属性:value为0表空白,为1表勾号,为2表示灰色勾号.
4)Container属性:Form控件上的容器。
5)DataChangeed属性:设置返回一个值,指出被绑定的控件中的数据已经被
某进程修改。
6)DataField属性:设置或返回数据使用者将被绑定到的字段名。
7)DataFormat 属性:设置或返回DataFormat对象,用于数据绑定。
8)Datasource属性:设置或返回控件绑定的一个数据源。
9)DisabledPicture属性:设置或返回一个对图片的引用,该图片在控件无效
时显示在控件中。
10)DownPicture 属性:设置或返回一个对图片的引用,该图片在控件被单击处
于压下状态时显示。
11)DragIcon属性:设置或返回图标,它将在拖放操作中做为指针显示。
12)DragMode属性:设置返回一个值,确定在拖放操作中所用方式。
13)Font属性:设置或返回字体的属性。
14)Name属性:设置或返回控件的标识名。
15)Value属性:设置或返回控件的状态。
◆复选按钮类的控件的基本事件:
1)Click事件:鼠标单击控件时发生。
2)DragDrop事件:在一个完整的拖放动作完成或使用Drag方法,并将其Action参数设置为2时发生。
3)DragOver事件:在拖放操作正在进行时发生。
4)GotFocus事件:在对象获的焦点时发生。,
5)OLECompleteDrag事件:当源部件被放到目标时发生,并通知源部件拖放操作被执行或取消。
6)OLEDragDrag事件:当源部件决定放操作能发生,却源部件被放到目标部件时,此事件发生。
◆框架类的控件:
1) List属性:列表框控件的表项是使用数组的方式保存,数组的每一
个元素存储列表控件的一个表项
1)Listcount属性:控件列表部分项目的个数。
2)Mutselect属性:可以设置列表框为单选或允许多选属性.
3)Selectd属性:标示一个数组,数组各元素为:
4)Selected(0),selected(1)…
◆滚动条类的控件:
1)Value属性:滚动条上滑块所在位置由value值所决定。
2)Max和min属性:对value值的最大,最小进行限制。
3)Largechange属性:用户点击滚动条与键头之间的区域时,value的改变量。
4) OnClick事件:用来添加按钮的单击事件所执行的程序代码。
定时器类类的控件:
1)Interval属性:表示定时的时间间隔,以毫秒为单位。
2)Enable属性:为true时(缺省值),激活定时器开始计时;为false时处于休
眠状态.
数据库连接方式选择
Visual basic6.0连接数据库的主要方式以下几种方式:一是:用data控件进行数据库链接,二是利用adodc(ADO Data Control)进行数据库链接。三是: 利用DataEnvironment进行数据库链接.四是利用ADO(ActiveX Data Objects)进行编程:现在我们来大致对这几种技术应用介绍:
一、用data控件进行数据库链接.
第一步:给窗体添加一个Data控件。
第二步:用Access建立一个名为Pad的数据库,在库中建立一个表Myset,给表添加四个字段:backcolor(数据),forecolor(文本),fontname(文本),fontsize (文本)。注意:请将库文件存入程序所在目录。
如果你的机器没安装有Access,可通过VB建库。
二、利用adodc(ADO Data Control)进行数据库链接:
使用adodata控件访问数据库可以完全不用编写代码,只需要通过简单的设置和操作其属性就可以实现与数据库的连接,通过绑定数据感知控件,就能提供一个访问数据库的界面,用来实现对数据库的浏览,贴加,删除,修改等操作.
三、利用DAO对数据库进行操纵:
在visual basic 中提供了两种与jet数据引擎接口的方法:data控件与数据访问对象(DAO)DAO是database object的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持.
DAO模型是设计关系数据库系统结构的对象类的集合.他们提供了管理关系型数据库系统所需要的全部操作属性和方法,这其中包括建立数据库,定义表,字段和建立表间关系,定位和查询数据库等.
关系数据库介绍:
关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20世纪70年代以后开发的数
据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。
关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。
结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言
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 系统的主界面的设计与实现
主界面代码:
Private Sub add_admin_Click() frmadduser.Show
End Sub
Private Sub add_back_book_Click() frmbackbookinfo.Show
End Sub
Private Sub add_book_info_Click() frmaddbookinfo.Show
End Sub
Private Sub add_book_style_Click() frmaddbookstyle.Show
End Sub
Private Sub add_lend_book_Click()
frmfindbook.Show
End Sub
Private Sub add_reader_info_Click() frmaddreaderinfo.Show
End Sub
Private Sub add_reader_style_Click() frmaddreaderstyle.Show
End Sub
Private Sub change_pwd_Click() frmchangepwd.Show
End Sub
Private Sub del_book_info_Click() frmmodifybookinfo.Show
End Sub
Private Sub del_book_style_Click() frmmodifybookstyle.Show
End Sub
Private Sub del_reader_info_Click() frmreaderinfo.Show
End Sub
Private Sub del_reader_style_Click() frmmodifyreaderstyle.Show
End Sub
Private Sub exit_sys_Click()
End
End Sub
Private Sub find_book_info_Click() frmfindbook.Show
End Sub
Private Sub find_lend_book_Click() frmfindborrowinfo.Show
End Sub
Private Sub find_reader_info_Click() frmfindreader.Show
End Sub
Private Sub modify_book_info_Click() frmmodifybookinfo.Show
End Sub
Private Sub modify_book_style_Click() frmmodifybookstyle.Show
End Sub
Private Sub modify_reader_info_Click() frmreaderinfo.Show
End Sub
Private Sub modify_reader_style_Click() frmmodifyreaderstyle.Show
End Sub
3.2.2 图书管理模块的设计与实现
图书管理模块主要由:图书类别管理,图书信息管理. 图书类别管理又分别由以下几个界面构成:
1.添加图书类别
添加图书类别代码:
Private Sub Command1_Click()
Dim rs_bookstyle As New ADODB.Recordset
Dim sql As String
If Trim(Text1.Text) = "" Then
MsgBox "图书种类不能为空", vbOKOnly + vbExclamation, "" Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = "" Then
MsgBox "种类编号不能为空", vbOKOnly + vbExclamation, ""
Text2.SetFocus
Exit Sub
End If
sql = "select * from 图书类别 where 类别名称='" & Text1.Text & "'" rs_bookstyle.Open sql, conn, adOpenKeyset, adLockPessimistic
If rs_bookstyle.EOF Then
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
Exit Sub
End If
End Sub
2.修改图书类别:
修改图书类别代码:
Private Sub Form_Load()
Dim sql As String
On Error GoTo loaderror
sql = "select * from 图书类别"
rs_reader.CursorLocation = adUseClient
rs_reader.Open sql, conn, adOpenKeyset, adLockPessimistic '打开数据库
cmdupdate.Enabled = False
'设定datagrid控件属性
DataGrid1.AllowAddNew = False '不可增加
DataGrid1.AllowDelete = False '不可删除
DataGrid1.AllowUpdate = False
If userpow = "guest" Then '权限相关
Frame2.Enabled = False
End If
Set DataGrid1.DataSource = rs_reader
Exit Sub
loaderror:
MsgBox Err.Description
End Sub
3.2.3 读者管理模块的设计与实现
1.添加读者类别界面:
Private Sub Command1_Click()
Dim sql As String
If Trim(Text1.Text) = "" Then
MsgBox "读者种类不能为空", vbOKOnly + vbExclamation, "" Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) = "" Then
MsgBox "借书数量不能为空", vbOKOnly + vbExclamation, "" Text2.SetFocus
Exit Sub
End If
If Trim(Text3.Text) = "" Then
MsgBox "借书期限不能为空", vbOKOnly + vbExclamation, ""
Text3.SetFocus
Exit Sub
End If
If Trim(Text4.Text) = "" Then
MsgBox "有限期限不能为空", vbOKOnly + vbExclamation, ""
Text4.SetFocus
Exit Sub
End If
sql = "select * from 读者类别 where 种类名称='" & Text1.Text & "'" rs_readerstyle.Open sql, conn, adOpenKeyset, adLockPessimistic
If rs_readerstyle.EOF Then
rs_readerstyle.AddNew
rs_readerstyle.Fields(0) = Trim(Text1.Text)
rs_readerstyle.Fields(1) = CInt(Text2.Text)
rs_readerstyle.Fields(2) = CInt(Text3.Text)
rs_readerstyle.Fields(3) = CInt(Text4.Text)
rs_readerstyle.Update
MsgBox "添加读者类别成功!", vbOKOnly, ""
rs_readerstyle.Close
Else
MsgBox "读者类别重复!", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Text1.Text = ""
rs_readerstyle.Close
Exit Sub
End If
End Sub
3.查询读者信息
代码分析:
Private Sub Command1_Click()
Dim rs_findreader As New ADODB.Recordset Dim sql As String
If Check1.Value = vbChecked Then
sql = "读者编号='" & Trim(Text1.Text & " ") & "'"
End If
If Check2.Value = vbChecked Then
If Trim(sql) = "" Then
sql = "读者姓名='" & Trim(Text2.Text & " ") & "'"
Else
sql = sql & "and 读者姓名='" & Trim(Text2.Text & " ") & "'" End If
End If
If Check3.Value = vbChecked Then
If Trim(sql) = "" Then
sql = "读者类别='" & Trim(Combo1.Text & " ") & "'"
Else
sql = sql & "and 读者类别='" & Trim(Combo1.Text & " ") & "'" End If
End If
sql = "select * from 读者信息 where " & sql
rs_findreader.CursorLocation = adUseClient
rs_findreader.Open sql, conn, adOpenKeyset, adLockPessimistic DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False