版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库课程设计-说明书一、 系统分析系统开发总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。本系统主要实现对图书馆信息的管理,主要功能为管理有关读者,书籍,借阅和管理者的信息等。本系统结构分为学生信息管理模块,图书信息管理模块,借阅信息管理模块,管理者信息管理模块。学生信息管理部分有三个方面的功能,可以浏览读者的信息,可以对读者信息进行维护。图书信息管理可以浏览书籍的信息,可以对书籍信息进行维护。借阅信息管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。管理者信息管理可以显示数据库中管理者的情况,可以对管理者信息进行维护。可见,本系统并不复杂,主
2、要解决的问题是利用关键字对数据库进行查询。1、需求分析:随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。图书管理工作面对大量的可模块化处理的信息,是当今信息革命的一个重要阵地。我们小组开发图书管理信息系统就是采用现代化的信息管理方式代替手工管理方式,提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆
3、更好的为学校,社会服务。2、功能分析:根据图书管理的日常活动的分析,本系统提供了借书卡这以特色功能,借书者需要办理借书卡才能借书。且本系统只有管理员才能使用,管理员有权限办理和注销借书卡,管理借还书的功能。故管理员大致有三大权限:A 添加权限:管理员对借书卡、借书、还书、书籍信息等资料的添加。B 删除权限:管理员对借书卡、借书、还书、书籍信息等资料的删除。C 修改权限:管理员对借书卡、借书、还书、书籍信息等资料的修改。二、系统设计本系统使用Visual Basic6.0作为开发语言,将数据存储到Access数据库。使用ADO连接数据库。通过对传统资源进行数字化或对现有数字资源进行归并整理,采用
4、实用的数据库技术构建服务平台。根据项目目标可以得到以下的各部分结构图:图书管理系统借书卡管理系统管理员信息系统借/还书系统库存管理系统a 管理员信息系统结构图如下:管理员信息系统添加管理员信息删除管理员信息修改管理员信息b 借书卡管理系统结构图如下:借书卡信息系统添加借书卡信息注销借书卡信息查看借书卡信息c借/还书系统与库存管理系统结构图如下:借/还书信息系统借书业务还书业务库存管理系统库存信息书刊查询d.E-R图书编号图书书名库存借出日期借者编号管理员编号用户名密码工作时间电话号码借阅者借书卡号学生号年级号学生姓名电话号码借书者编号三、个人负责部分1、标准模块的实现标准模块是应用程序内其它模
5、块访问的过程和声明的容器。它们可以包含变量、常数、类型、外部过程和全局过程的全局(在整个应用程序范围内有效的)。声明或模块级声明。 详细代码:Modele1定义全局常量Public Const ConnectString As String = DSN=Lib;UID=sa;PWD=sa 数据源:lib 用户名:sa 密码:sa初始化系统登录界面Sub Main() 系统开始,首先进入登录界面 Dim fLogin As New FrmLogin 定义登录窗口对象 fLogin.Show vbModal 显示模态窗体 If Not fLogin.OK Then Login Failed so
6、exit app End End If Unload fLogin 用户身份验证成功后,进入主界面 FrmMain.ShowEnd Sub该模块实现初始化登录界面,调用FrmLogin登录窗口,在验证成够后返回fLogin.OK的值为true,调用FrmMain窗口,进入主界面。定义全局常量:数据源:lib 用户名:sa 密码:sa2、类模块 在 Visual Basic 中类模块是面向对象编程的基础。可在类模块中编写代码建立新对象。这些新对象可以包含自定义的属性和方法。实际上,窗体正是这样一种类模块,在其上可安放控件、可显示窗体窗口。详细代码:BookDatePublic Function
7、getDate() As String Dim nowDate As Date Dim tday As Integer Dim tmonth As Integer Dim tyear As Integer Dim tmpDate As String nowDate = Date tday = Day(nowDate) tmonth = Month(nowDate) tyear = Year(nowDate) tmpDate = CStr(tday)+ / + CStr(tmonth) + / + CStr(tyear) getDate = tmpDateEnd Function调用getDat
8、e()函数可以获得时间:年/月/日/BuildComboListPublic Function getList(ByVal sql As String, Combo As ComboBox) As ComboBox Dim myDbOper As New DbOperation Dim rst As ADODB.Recordset 建立连接 myDbOper.DB_Connect Set rst = myDbOper.querySQL(sql) If Not rst.EOF Then With rst Do While Not .EOF Combo.AddItem .Fields(0) .Mo
9、veNext Loop End With Combo.ListIndex = 0 End If rst.Close 关闭连接 myDbOper.DB_DisConnect Set getList = ComboEnd FunctionPublic Function getIdByName(ByVal sql As String) As String Dim myDbOper As New DbOperation Dim rst As ADODB.Recordset Dim tmpId As String 建立连接 myDbOper.DB_Connect Set rst = myDbOper.q
10、uerySQL(sql) If Not rst.EOF Then tmpId = rst.Fields(0) End If rst.Close 关闭连接 myDbOper.DB_DisConnect getIdByName = tmpIdEnd FunctiongetList()调用函数DB_Connect建立连接DbOperation声明一个连接,,用于数据库连接Dim conn As ADODB.Connection声明一个数据集对象Dim rst As ADODB.RecordsetPublic Sub DB_Connect() 建立连接 Set conn = New ADODB.Con
11、nection conn.Open ConnectString 模块中定义的全局常量 End SubPublic Function querySQL(ByVal sql As String) As ADODB.Recordset 返回ADODB.Recordset对象 sql该参数用传值方式传送 执行查询 Set rst = New ADODB.Recordset rst.Open Trim$(sql), conn, adOpenKeyset, adLockOptimistic 打开记录集 rst.MoveLast get RecordCount Set querySQL = rstEnd F
12、unctionPublic Sub executeSQL(ByVal sql As String) 执行sql语句 conn.Execute (sql)End SubPublic Sub DB_DisConnect() 关闭连接 conn.Close 释放连接 Set conn = NothingEnd Sub该类模块里的函数实现:DB_Connect()建立连接querySQL(ByVal sql As String)传递数值,打开记录集executeSQL(ByVal sql As String)传递查询语句DB_DisConnect()关闭和释放连接2、实现界面功能(例:管理员信息)详细
13、代码(功能实现:看注释):添加功能Private Sub cmdAdd_Click() “添加”调用添加界面FrmAddManager FrmAddManager.Show 1End Sub添加管理员界面功能(FrmAddManager窗口中的程序)返回按钮功能Private Sub cmdExit_Click() Me.HideEnd Sub提交按钮功能Private Sub cmdSubmit_Click() 检验数据的有效性 If Trim(txtId) = Then MsgBox 请输入登录Id Exit Sub End If If Trim(txtPwd) = Then MsgBox
14、 请输入登录密码 Exit Sub End If Dim myDbOper As New DbOperation Dim rst As ADODB.Recordset Dim sql As String 建立连接 myDbOper.DB_Connect 定义查询语句 sql = SELECT * FROM Librarian WHERE seq= + Trim(txtSeq) + Set rst = myDbOper.querySQL(sql) If rst.EOF = True Then With rst .AddNew !seq = Me.txtSeq !id = Me.txtId !Pa
15、ssword = Me.txtPwd !onJobTime = Me.txtTime !telephone = Me.txtPhone .Update End With MsgBox 信息添加成功. Else MsgBox 该编号已经存在,请重新输入. End If rst.Close 关闭连接 myDbOper.DB_DisConnectEnd SubPrivate Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)End Sub删除功能Private Sub cmdDelete_Click() Dim tmpSe
16、q As String 声明变量 If Adodc1.Recordset.BOF = True Then MsgBox 请选择记录 Exit Sub End If p = Adodc1.Recordset.AbsolutePosition tmpSeq = Trim(Adodc1.Recordset.Fields(0) 确认删除 If MsgBox(是否删除当前行?, vbYesNo, 确认) = vbYes Then Dim myDbOper As New DbOperation Dim rst As ADODB.Recordset Dim sql As String 建立连接 myDbOp
17、er.DB_Connect 定义查询语句 sql = SELECT * FROM Librarian WHERE seq= + Trim(txtSeq) + Set rst = myDbOper.querySQL(sql) If (Not rst.EOF) Then With rst .Delete adAffectCurrent DELETE 语句用于删除表中的行 语法:DELETE FROM 表名称 WHERE 列名称 = 值 .Update Update 语句用于修改表中的数据 语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 End With Else
18、 MsgBox 发生错误,请重新操作. End If Refresh_DataList If p - 1 0 Then Adodc1.Recordset.Move 0 Adodc1.Recordset.Move p - 1 End If End IfEnd Sub修改功能Private Sub cmdEdit_Click() 检验数据的有效性 If Trim(txtId) = Then MsgBox 请输入登录Id Exit Sub End If If Trim(txtPwd) = Then MsgBox 请输入登录密码 Exit Sub End If Dim myDbOper As New
19、DbOperation Dim rst As ADODB.Recordset Dim sql As String 建立连接 myDbOper.DB_Connect 调用类模块中DB_Connect函数建立连接 定义查询语句 sql = SELECT * FROM Librarian WHERE seq= + Trim(txtSeq) + Set rst = myDbOper.querySQL(sql) If (Not rst.EOF) Then rst!id = Me.txtId rst!Password = Me.txtPwd rst!onJobTime = Me.txtTime rst!t
20、elephone = Me.txtPhone rst.Update MsgBox 信息修改成功. Else MsgBox 发生错误,请重新输入. End If rst.Close 关闭连接 myDbOper.DB_DisConnect Refresh_DataListEnd Sub退出功能Private Sub cmdExit_Click() Me.HideEnd Sub刷新功能Private Sub cmdRefresh_Click() Refresh_DataListEnd Sub显示管理员列表功能Private Sub DataGrid1_Click() If Adodc1.Record
21、set.BOF = True Then MsgBox 请选择记录 Exit Sub End If 保存光标位置 p = Adodc1.Recordset.AbsolutePosition 读取当前记录的各列数据 Me.txtSeq = Trim(Adodc1.Recordset.Fields(0) Me.txtId = Trim(Adodc1.Recordset.Fields(1) Me.txtPwd = Trim(Adodc1.Recordset.Fields(2) Me.txtTime = Trim(Adodc1.Recordset.Fields(3) Me.txtPhone = Trim
22、(Adodc1.Recordset.Fields(4) Refresh_DataList 恢复光标位置 Adodc1.Recordset.Move 0 Adodc1.Recordset.Move p - 1End Sub刷新管理员列表功能Private Sub Refresh_DataList() Adodc1.RecordSource = SELECT * FROM Librarian ORDER BY seq SQL中的排序语句 Adodc1.RefreshEnd SubPrivate Sub Frame2_DragDrop(Source As Control, X As Single,
23、Y As Single)End Sub Adodc1控件Private Sub Adodc1_WillMove(ByVal adReason As ADODB.EventReasonEnum, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)End Sub3、添加ADODC访问数据ADO Data控件使用Microsoft ActiveX数据对象(ADO)来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。放置控件配置属性4、创建打开【控制面板】-【系统和安全】
24、-【管理工具】-【数据源(ODBC)】点击添加【SQL Server】四、数据库SQL数据库包含了以下7个表:Book:用来储存书库里面的信息,BookID为主码,包含了BookID(书刊编号)、name(书名)、loan(状态)、borrowedID(借阅卡编号)、BorrowDate(借书日期)这五个属性。Borrower:用来储存借书卡信息。BorrowedID为主码,包含了BorrowedID(借阅卡编号)、InstituteID(学院编号)、GradeID(年级编号)、name(姓名)、StudentNum(学号)、teleNumber(电话)、borroeBookNum(已借书)这七个属性。DatesRestrict:用来限制该类别的限定时间,type(类别)为主码,包含了type(类别)、Dates_restrict(限制时间)这两个属性。Grade:用来给VB调用来在各个部分上显示,GradeID(年级编号)为主码,包含了GradeID(年
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论