1、毕 业 论 文题 目: 图书馆管理系统 学 科 部: 专 业: 计算机科学与技术 班 级: 学 号: 学生姓名: 指导教师: 起讫日期: 目 录第一章 概述 11.1 开发背景 11.2 管理信息系统产生的背景 11.3 系统功能要求的分析 2第二章 开发环境及实现技术介绍 32.1 开发环境 32.2 开发工具简介 3第三章 图书管理系统的设计和实现 53.1 系统的设计 53.1.1 概要设计 53.1.2 详细设计 73.2 系统的实现 93.2.1 主界面的设计与实现 123.2.2 图书管理模块的设计与实现 153.2.3 读者管理模块的设计与实现 193.2.4 图书借阅管理模块的
2、实现 223.2.5 系统管理模块的设计与实现 25第四章 图书管理系统的运行说明 404.1 运行环境 40致 谢 42参考文献 43第一章 概述1.1 开发背景在图书管理系统用计算机管理图书是一种计算机应用技术的创新,在计算机还未普及之前图书管理都是由图书管理人员手工记帐的方式来操作的.现在一般的图书馆都是采用计算机作为工具的实用的计算机图书管理程序来帮助图书馆管理员进行更有效的图书管理。1.2 图书管理系统产生的背景图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对
3、于后者则要求应用程序功能完备,易使用等特点。经过分析,我们使用 MICROSOFT 公司的 VISUAL BASIC 开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。1.3 系统功能要求的分析图书管理系统主要服务与图书管理人员,包含的功能模块主要有:一. 图书管理:图书类别管理,图书信息管理二. 读者管理:读者管理,读者信息管理.三. 图书借阅管理:借书管理,还书管理.四. 系统管理:添加管理员,修改密码,退出系统第二章 开发环境及实
4、现技术介绍2.1 开发环境2.2 开发软件介绍本系统所采用的编程语言为 visual basic 6.0 与 微软的 access 作为操作数据库.现分别对其简单介绍:硬件平台CPU Intel P4 1.5G主板 Intel 850 芯片组的 GA-8TX-C内存 2128M 的三星 Rambus 内存硬盘 Seagate Barracuda 7200.7 80G显卡 Unika 小妖 G9800显示器 美格 770PF,17 寸纯平显示器软件环境操作系统 Microsoft WindowsXP 简体中文专业版SP1办公软件 Microsoft Office 2003显卡驱动 nVIDIA
5、ForceWare 驱动 56.72 版 For Win2000/XPVisual Basic 6.0 是 Micrsoft 公司出品的开发工具,Visual Basic 是一种可视化的,面向对象的 Windows 开发语言,它具有易用,通用和开发效率高的特点。随着微软对它不断地改进以及计算机本身性能的提高,使得 Visual Basic 越来越适合一般的应用程序开发。正如 Bill Gate 所说,世界上绝大多数的 Windows 应用程序是用Visual Basic 编写的。在众多的开发工具中,我们为什么要选择 Visual Basic6.0呢?因为 VB 具有众多其它开发工具所没有的优点
6、!具体介绍如下: 开发的高效 语言的高效 编译的高效 执行的高效 维护的高效基于以上理由,我们毫不忧郁的选择了 VB6.0 做为我们的开发工具!主要的控件及其基本属性,事件简介 命令按钮类的控件:1) Caption 属性:用来显示在控件上的标题。2) Enable 属性:控制控件的激活状态灰色或可用。3) Appearance 属性:值为 1 时,则以 3D 效果显示该控件,0 则不然。4) Backcolor 属性:用来改变在按钮上显示图像的背景色。5) Cancel 属性:该属性决定按钮是否为一个”取消”按钮。6) Default 属性:决定哪一个命令按钮控件是窗体的缺省命令按钮.7)
7、Font 属性:控制各种文字字体类型.8) Left,top,height,width 属性:设定控件的位置与大小.9) Style,picture 属性:决定按钮的显示方式是否为图像形式出现.10)Visible 属性:确定控件运行时是否为可见.11)Index 属性:当控件为一控件数组时,此属性值为该控件在数组的下标值.12)DownPicture 属性:设置/返回一个对图片的引用,该图片在按钮被单击处于压下状态时显示。13)DisabledPicture 属性:设置/返回一个对图片的引用,该图片在控件无效时显示在控件中。14)MaskColor 属性:设置/返回一个在按钮的图片中作为“掩
8、码“的的颜色15)Picture 属性:设置返回 commandButton 控件中要显示的图片。 命令按钮类的事件:1)单击事件Click 事件(1) 触发与适用此事件是在一个命令按钮对象上按下然后释放一个鼠标按钮时发生。命令按钮的 Click 事件仅对当单击鼠标时发生。(2) 事件处理过程按钮单击事件的处理过程为:Private Sub object-Click(Index As Integer)其中 Object 为引发该事件的对象名称。如果是命令按钮的控件是数组,则需要使用 Index 参数标识该控件。2)获得焦点GotFocus 事件(1) 触发与适用 当命令按钮获得焦点产生该事件,
9、获得焦点可以通过诸如 Tab 切换或单击对象之类的用户动作,或在代码中用 SetFocus 方法改变焦点来实现。(2) 事件处理过程命令按钮 GotFoucs 事件处理过程为:Private Sub Object-GotFocus(Index As Integer)3)LostFocus 事件:当一个对象失去焦点时发生4)KeyDown 事件:当命令按钮具有焦点时按下一个键时发生5)KeyUp 事件:当命令按钮具有焦点时释放一个键时发生。6)KeyPress 事件:当用户按下或松开一个 ANSI 键时发生。7)MouseDown 事件:当在命令按钮上按下鼠标按钮时发生。8)MouseMove
10、事件:当命令按钮上移动鼠标时发生。9)MouseUp 事件:当在命令按钮上释放鼠标按钮时发生。 标签框类的控件类的控件:1) Caption 属性:在应用程序界面上加入说明。2) Autosize 属性:决定控件是否自动改变大小以显示其全部内容。3) Backstyle 属性:用以指示标签是否透明.4) Bordstyle 属性:用以设定控件是否有边框。 文本框类的控件:1) Text 属性:通过像 text 属性赋值的方法来改变该属性的值。2) Maxlength 属性:该属性设定在文本框控件中能够输入的最大字符数。3) Multline 属性:该属性设定 text 字符串中是否接受换行符。
11、4) Scrollbars 属性:该属性决定是否为文本框加滚动条。5) Passwordchar 属性:该属性设定输入文本的特殊显示字符,在设计密码程序时非常有用。6) Change 事件属性:文本框的内容发生改变时,相应的控件之间发生相应的改变,具有即时性。7) Keypress:事件由用户在文本框控件中按任意键触发。8) Alignment 属性:设定控件中的文本对其方式9) Appearance 属性:设定一个对象在运行时是否可以 3D 效果显示。10)BackColor 属性:设置返回背景色11)BorderStyle 属性:设置对象的边框样式12)DataField 属性:设定数据使
12、用者将被绑定到的字段名13)DataFormat 属性:设定 DataFormat 对象,用于数据绑定14)DataMember 属性:从数据供应程序提供的几个数据成员中返回/设定一个特定的数据成员15)DataSource 属性:设定控件绑定的一个数据源16)DragIcon 属性:设定图标,它将在拖放操作中作为指针显示17)DragMode 模式:设定一个值,确定在拖放操作中所用方式18)Enabled 属性:设置/返回运行时 TextBox 是否相应用户事件19)Font 属性:设置/返回字体属性20)ForeColor 属性:设置/返回文本的前景色21)Height 属性:设置/返回
13、TextBox 的高度22)IMEMode 属性:设置/返回数值用来确定输入方法编辑器的状态23)Index 属性:设置/返回唯一的标识控件数组中该控件的编号24)Left 属性:设置/返回 TextBox 控件的水平位置25)Locked 属性:设置/返回 TextBox 中文本是否可编辑26)LinkItem 属性:设置/返回 DDE 与另一个应用程序会话时,传给接受端的数据27)MaxLength 属性:设置/返回一个值,指定在 TextBox 控件中能够输入的字符最大值28)MouseIcon 属性:设置/返回自定义鼠标的图标29)Top 属性:设置/返回 TextBox 控件的垂直位
14、置30)Tag 属性:存储过程所需的附加数据 文本框类的事件:1)Change 事件:当改变文本框内容时发生2)Click 事件:鼠标单击控件时发生3)DblClick 事件:用鼠标左键双击控件时发生4)DragDrop 事件:在一个完整的拖放动作完成或使用 Drag 方法,并将其Action 参数设置为 2 时发生5)DragOver 事件:在拖放操作正在进行时发生6)GotFocus 事件:当一个命令按钮获得焦点时发生7)LinkClose 事件:当一个 DDE 对话结束时发生8)LinkError 事件:当一个 DDE 对话框过程中出现错误时,该事件发生9)KeyDown 事件:当命令按
15、钮具有焦点时按下一个键时发生10) Validate 事件:在焦点转换到另一个控件之前发生,此时该控件的Causes Validation 属性值设置为 True 单选按钮类的控件:1) Caption 属性:显示在控件上的文本,是单选按钮的标题。2) Alignment 属性:决定单选按钮的标题在控件上的位置。3) Enable 属性:该控件为灰色时为 false,表示运行时不可用。4) Index 属性:属性值表示为单选按钮组成的控件中某个按钮的索引值。5) Tabindex 属性:建立控件时,vb 自动为其分配一个 tabindex 值,利用 tab键可以在控件之间切换焦点。6) Val
16、ue 属性:反映控件状态的属性,返回 true 表示已选择了该按钮。7) Appearance 属性:设置/返回一个对象在运行时是否以 3D 效果显示。8) BackColor 属性:设置/返回背景色。9) Container 属性:设置/返回 Form 上的控件属性。10)DataField 属性:设置/返回数据使用者将被绑定到的字段名。11)DataFormat 属性:设置/返回 DataFormat 对象,一个绑定对象将附加到它。12)DisabledPicture 属性:设置/返回一个对图像的引用,该图片在控件无效时显示在控件中。13)DownPicture 属性:设置/返回一个对图片
17、的引用,该图片在控件单击下处于压下状态时显示。14)DragMode 属性:设置/返回一个值,确定在拖放操作中所用的方式。15)Font 属性:设置/返回字体属性。16)FontBold 属性:设置/返回字体粗体样式。17)FontItalic 属性:设置/返回字体斜体样式。 18)FontStrikethru 属性:设置/返回字体删除线样式。19)FontUnderLine 属性:设置/返回字体下划线样式。20)FontName 属性:设置/返回控件中显示文本所用的字体大小。21)FontSize 属性:设置/返回控件中显示文本所用的字体大小22)Height 属性:设置/返回控件的高度。2
18、3)MaskColor 属性:设置/返回一个在控件的图片中作为掩码的颜色。24)MousePointer 属性:设置/返回一个值,该值指示在运行时当鼠标移动到对象上时显示的指针类型。 单选按钮类的常用事件:1)Click 事件:鼠标单击控件时发生。2)DbClick 事件: 当在一个对象上按下和释放鼠标按钮并再次按下和释放按钮时,该事件发生。3)DragDrop 事件:在一个完整的拖放动作或使用 Drag 方法,并将其Action 参数设置位 2 时,该事件发生。4)DragOver 事件: 在拖放操作正在进行时发生。5)GotFocus 事件: 当获的对象焦点时发生。6)LostFocus
19、事件:当对象失去焦点时发生。7)KeyDown 事件:当控件具有焦点时按下一个键时发生。8)KeyUp 事件: 当控件具有焦点时释放一个键时发生。9)KeyPress 事件:当用户按下或释放 ANSI 一个键时发生。10) MouseDown 事件:当在控件上按下鼠标键时发生。11) MouseMove 事件:在控件上移动鼠标时发生。12) MouseUp 事件:在控件上释放鼠标时发生。 复选按钮类的控件:1) Caption 属性:缺省为 check1。2) Index 属性:该属性值为复选框控件数组的下标.3) Value 属性:value 为 0 表空白,为 1 表勾号,为 2 表示灰色
20、勾号.4) Container 属性:Form 控件上的容器。5) DataChangeed 属性:设置/返回一个值,指出被绑定的控件中的数据已经被某进程修改。6) DataField 属性:设置或返回数据使用者将被绑定到的字段名。7) DataFormat 属性:设置或返回 DataFormat 对象,用于数据绑定。8) Datasource 属性:设置或返回控件绑定的一个数据源。9) DisabledPicture 属性:设置或返回一个对图片的引用,该图片在控件无效时显示在控件中。10)DownPicture 属性:设置或返回一个对图片的引用,该图片在控件被单击处于压下状态时显示。11)D
21、ragIcon 属性:设置或返回图标,它将在拖放操作中做为指针显示。12)DragMode 属性:设置返回一个值,确定在拖放操作中所用方式。13)Font 属性:设置或返回字体的属性。14)Name 属性:设置或返回控件的标识名。15)Value 属性:设置或返回控件的状态。 复选按钮类的控件的基本事件:1)Click 事件:鼠标单击控件时发生。2)DragDrop 事件:在一个完整的拖放动作完成或使用 Drag 方法,并将其Action 参数设置为 2 时发生。3)DragOver 事件:在拖放操作正在进行时发生。4)GotFocus 事件:在对象获的焦点时发生。,5)OLEComplete
22、Drag 事件:当源部件被放到目标时发生,并通知源部件拖放操作被执行或取消。6)OLEDragDrag 事件:当源部件决定放操作能发生,却源部件被放到目标部件时,此事件发生。 框架类的控件:1) List 属性:列表框控件的表项是使用数组的方式保存,数组的每一个元素存储列表控件的一个表项1) Listcount 属性:控件列表部分项目的个数。2) Mutselect 属性:可以设置列表框为单选或允许多选属性.3) Selectd 属性:标示一个数组,数组各元素为:4) Selected(0),selected(1) 滚动条类的控件:1) Value 属性:滚动条上滑块所在位置由 value 值
23、所决定。2) Max 和 min 属性:对 value 值的最大,最小进行限制。3) Largechange 属性:用户点击滚动条与键头之间的区域时,value 的改变量。4) OnClick 事件:用来添加按钮的单击事件所执行的程序代码。 定时器类类的控件:1) Interval 属性:表示定时的时间间隔,以毫秒为单位。2) Enable 属性:为 true 时(缺省值),激活定时器开始计时;为 false 时处于休眠状态.数据库连接方式选择Visual basic6.0 连接数据库的主要方式以下几种方式:一是:用 data 控件进行数据库链接 ,二是利用 adodc(ADO Data Co
24、ntrol)进行数据库链接 。三是: 利用DataEnvironment 进行数据库链接.四是利用 ADO(ActiveX Data Objects)进行编程:现在我们来大致对这几种技术应用介绍:一、用 data 控件进行数据库链接.第一步:给窗体添加一个 Data 控件。第二步:用 Access 建立一个名为 Pad 的数据库,在库中建立一个表 Myset,给表添加四个字段:backcolor(数据),forecolor(文本),fontname(文本),fontsize(文本)。注意:请将库文件存入程序所在目录。如果你的机器没安装有 Access,可通过 VB 建库。二、利用 adodc(
25、ADO Data Control)进行数据库链接:使用 adodata 控件访问数据库可以完全不用编写代码,只需要通过简单的设置和操作其属性就可以实现与数据库的连接,通过绑定数据感知控件,就能提供一个访问数据库的界面,用来实现对数据库的浏览,贴加,删除,修改等操作.三、利用 DAO 对数据库进行操纵:在 visual basic 中提供了两种与 jet 数据引擎接口的方法:data 控件与数据访问对象(DAO)DAO 是 database object 的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持.DAO 模型是设计关系数据库系统结构的对象类的集合
26、.他们提供了管理关系型数据库系统所需要的全部操作属性和方法,这其中包括建立数据库,定义表,字段和建立表间关系,定位和查询数据库等.关系数据库介绍:关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20 世纪 70 年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。结构化查询语言 SQL(Structured Query Language)是一种
27、介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言Microsoft Access 介绍:使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系
28、。如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。第三章 图书管理系统的设计与实现3.1 系统的设计3.1.1 系统的概
29、要设计该系统考虑将整个系统分解成如下模块:3.1.2 系统的详细设计1.读者类别表主界面图书管理图书信息管理读者类别管理读者信息管理图书借阅管理借书管理还书管理系统管理登录图书类别管理读者管理2.读者信息表:3. 借阅信息表:4. 书籍信息表:5.图书类别表:6.系统管理表:3.2 系统的设计与实现3.2.1 系统的主界面的设计与实现主界面代码:Private Sub add_admin_Click()frmadduser.ShowEnd SubPrivate Sub add_back_book_Click()frmbackbookinfo.ShowEnd SubPrivate Sub add
30、_book_info_Click()frmaddbookinfo.ShowEnd SubPrivate Sub add_book_style_Click()frmaddbookstyle.ShowEnd SubPrivate Sub add_lend_book_Click()frmfindbook.ShowEnd SubPrivate Sub add_reader_info_Click()frmaddreaderinfo.ShowEnd SubPrivate Sub add_reader_style_Click()frmaddreaderstyle.ShowEnd SubPrivate Sub
31、 change_pwd_Click()frmchangepwd.ShowEnd SubPrivate Sub del_book_info_Click()frmmodifybookinfo.ShowEnd SubPrivate Sub del_book_style_Click()frmmodifybookstyle.ShowEnd SubPrivate Sub del_reader_info_Click()frmreaderinfo.ShowEnd SubPrivate Sub del_reader_style_Click()frmmodifyreaderstyle.ShowEnd SubPri
32、vate Sub exit_sys_Click()EndEnd SubPrivate Sub find_book_info_Click()frmfindbook.ShowEnd SubPrivate Sub find_lend_book_Click()frmfindborrowinfo.ShowEnd SubPrivate Sub find_reader_info_Click()frmfindreader.ShowEnd SubPrivate Sub modify_book_info_Click()frmmodifybookinfo.ShowEnd SubPrivate Sub modify_
33、book_style_Click()frmmodifybookstyle.ShowEnd SubPrivate Sub modify_reader_info_Click()frmreaderinfo.ShowEnd SubPrivate Sub modify_reader_style_Click()frmmodifyreaderstyle.ShowEnd Sub3.2.2 图书管理模块的设计与实现图书管理模块主要由:图书类别管理,图书信息管理.图书类别管理又分别由以下几个界面构成:1.添加图书类别添加图书类别代码:Private Sub Command1_Click()Dim rs_books
34、tyle As New ADODB.RecordsetDim sql As StringIf Trim(Text1.Text) = “ ThenMsgBox “图书种类不能为空“, vbOKOnly + vbExclamation, “Text1.SetFocusExit SubEnd IfIf Trim(Text2.Text) = “ ThenMsgBox “种类编号不能为空“, vbOKOnly + vbExclamation, “Text2.SetFocusExit SubEnd Ifsql = “select * from 图书类别 where 类别名称=“ & Text1.Text
35、& “rs_bookstyle.Open sql, conn, adOpenKeyset, adLockPessimisticIf rs_bookstyle.EOF Thenrs_bookstyle.AddNewrs_bookstyle.Fields(0) = Trim(Text1.Text)rs_bookstyle.Fields(1) = Trim(Text2.Text)rs_bookstyle.UpdateMsgBox “添加图书类别成功!“, vbOKOnly, “rs_bookstyle.CloseElseMsgBox “读者类别重复!“, vbOKOnly + vbExclamati
36、on, “Text1.SetFocusText1.Text = “rs_bookstyle.CloseExit SubEnd IfEnd Sub2. 修改图书类别:修改图书类别代码:Private Sub Form_Load()Dim sql As StringOn Error GoTo loaderrorsql = “select * from 图书类别“rs_reader.CursorLocation = adUseClientrs_reader.Open sql, conn, adOpenKeyset, adLockPessimistic 打开数据库cmdupdate.Enabled =
37、 False设定 datagrid 控件属性DataGrid1.AllowAddNew = False 不可增加DataGrid1.AllowDelete = False 不可删除DataGrid1.AllowUpdate = FalseIf userpow = “guest“ Then 权限相关Frame2.Enabled = FalseEnd IfSet DataGrid1.DataSource = rs_readerExit Subloaderror:MsgBox Err.DescriptionEnd Sub3.2.3 读者管理模块的设计与实现1.添加读者类别界面:Private Sub
38、 Command1_Click()Dim sql As StringIf Trim(Text1.Text) = “ ThenMsgBox “读者种类不能为空“, vbOKOnly + vbExclamation, “Text1.SetFocusExit SubEnd IfIf Trim(Text2.Text) = “ ThenMsgBox “借书数量不能为空“, vbOKOnly + vbExclamation, “Text2.SetFocusExit SubEnd IfIf Trim(Text3.Text) = “ ThenMsgBox “借书期限不能为空“, vbOKOnly + vbExclamation, “Text3.SetFocusExit SubEnd IfIf Trim(Text4.Text) = “ ThenMsgBox “有限期限不能为空“, vbOKOnly + vbExclamation, “Text4.SetFocusExit Sub