数据库课程设计实验报告

时间:2024.5.4

数据库设计报告

  目:图书管理系统

        

班级:

专业:

姓名:

学号:

辅导老师:


. 设计目的

 本课程设计是计算机科学与技术专业的学生在学习完《数据库原理与应用》课程后,进行的一次综合的实践训练,其目的在于加深对数据库基础理论和基本知识的理解,掌握数据库应用系统开发的基本方法。同时也使学生了解基于图形用户界面的多任务环境中应用程序开发的特点,熟悉Windows应用程序的开发过程和基本的编程方法。掌握一种Windows平台上的应用开发工具。

. 设计内容

图书管理系统

三.概要设计

1.功能模块图;

 

                         

 

2.各个模块详细的功能描述。

(1)系统管理:包括新增用户,修改密码,关于软件,退出系统。

(2)读者管理:包括读者新增,读者编辑,读者删除。

(3)图书库管理:包括图书新增,图书编辑,图书删除。

(4)图书查询。

(5)借阅管理:包括图书借出,图书归还,借阅查询。

四.详细设计

1.功能函数的调用关系图;

2.各功能函数的数据流程图;

3.重点设计及编码。

登录:

Private Sub cmdOk_Click()

  If Text1.Text = "" Or Text2.Text = "" Then

     MsgBox "请输入完整的信息!", vbCritical, "警告"

  Else

     If Combo1.Text = "" Then

     MsgBox "请选择权限!", vbCritical, "警告"

  Else

     rs1.Open "Select * From 系统设置 Where 用户名='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

     strD = Text1.Text

     strB = rs1.Fields(2)

     inta = rs1.RecordCount

     rs1.Close

     If inta = 0 Then

        MsgBox "无此用户!", vbCritical, "警告"

        Text1.Text = ""

        Text2.Text = ""

        Combo1.Text = ""

        Exit Sub

     Else

     rs1.Open "Select * From 系统设置 Where 用户名='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

     strA = rs1.Fields(1)

    ' MsgBox rs1.Fields(2)

     rs1.Close

     If Combo1.Text <> Trim(strB) Then

        MsgBox "权限不匹配!", vbCritical, "警告"

     Else

     If Trim(Text2.Text) = Trim(strA) Then

          ' MDIForm1.Show

          ' rs1.Open "Select 权限 From 系统设置 Where 用户名='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

           If Combo1.Text = "student" Then

              MDIForm1.Show

              BlnQX = False

              Call QX

              Unload Me

           Else

              If Combo1.Text = "administrator" Then

         '  rs1.Close

              MDIForm1.Show

              Unload Me

              End If

            End If

        Else

           MsgBox "密码错误!", vbCritical, "提示"

           intCount = intCount + 1

           If intCount = 3 Then

             MsgBox "密码错误登录次数超过限制次数!", vbCritical, "警告"

             End

           End If

          Exit Sub

      End If

     End If

    End If

  End If

 End If

End Sub

新增用户:

Private Sub cmdOk_Click()

  If txt(0).Text = "" Or txt(1).Text = "" Or Combo1.Text = "" Then

     MsgBox "请输入完成的信息!"

  Else

    rs.Open "Select * From 系统设置 Where 用户名='" & txt(0).Text & "'", cn, adOpenKeyset, adLockOptimistic

    If rs.EOF = False Then

 '   If rs.RecordCount <> 0 Then

       MsgBox "有重名!", vbCritical, "警告"

       rs.Close

       Exit Sub

    End If

    rs.Close

    If txt(2).Text = txt(1).Text Then

       rs.Open "系统设置", cn, adOpenKeyset, adLockOptimistic

       rs.AddNew

       rs.Fields(0) = txt(0).Text

       rs.Fields(1) = txt(1).Text

       rs.Fields(2) = Combo1.Text

       rs.Update

       rs.Close

       MsgBox "添加新用户成功!", , "恭喜"

       txt(0).Text = ""

       txt(1).Text = ""

       txt(2).Text = ""

       Combo1.ListIndex = -1

    Else

       MsgBox "两次输入的密码不相同,请确认后重新输入", vbCritical, "警告"

    End If

  End If

End Sub

读者新增:

Private Sub cmdOk_Click()

  Dim i As Integer

  If txt(0).Text = "" Or txt(1).Text = "" Or txt(2).Text = "" Or txt(3).Text = "" Then

     MsgBox "请输入完整的信息!"

  Else

     rs1.Open "读者库", cn, adOpenKeyset, adLockOptimistic

     rs1.AddNew

     For i = 0 To 3

       rs1.Fields(i) = txt(i).Text

     Next i

     rs1.Update

     MsgBox "添加新用户成功!", , "恭喜"

     txt(0).Text = rs1.Fields(0) + 1

     For i = 1 To 3

       txt(i).Text = ""

     Next i

  End If

End Sub

读者删除:

Private Sub cmdEdit_Click()

  

 If txt(0).Text = "" Or txt(1).Text = "" Or txt(2).Text = "" Or txt(3).Text = "" Then

    MsgBox "请单击行标选择需要修改的读者行!", vbCritical, "警告"

    Exit Sub

 Else

     If rs1.Fields(0) <> txt(0).Text Then

       MsgBox "请单击行标选择需要修改的读者数据行!", vbCritical, "警告"

       Exit Sub

    Else

   If MsgBox("确认删除读者么?", vbYesNo, "提示") = vbYes Then

     rs1.Delete adAffectCurrent

 '  rs1.UpdateBatch adAffectCurrent

     rs1.MoveLast

     Dim i As Integer

     For i = 0 To 3

       txt(i) = ""

     Next i

     MsgBox "删除成功!", , "提示"

   End If

 End If

End If

End Sub

图书编辑:

Private Sub cmdEdit_Click()

If txt(0).Text = "" Or txt(1) = "" Or txt(2) = "" Or txt(3) = "" Or txt(4) = "" Or Combo1.Text = "" Then

   MsgBox "请单击行标选择需要修改的图书行", vbCritical, "提示"

   Exit Sub

Else

   If txt(0) <> rs1.Fields(0) Then

      MsgBox "请单击行标选择需要修改的图书行", vbCritical, "提示"

   Else

      If MsgBox("确认要修改么?", vbYesNo, "提示") = vbYes Then

         Dim i As Integer

         For i = 0 To 4

            rs1.Fields(i) = txt(i).Text

         Next i

         rs1.Fields(5) = Combo1.Text

         rs1.UpdateBatch adAffectCurrent

         MsgBox "修改成功", , "提示"

      End If

   End If

End If

End Sub

图书查询:

Private Sub cmdSearch_Click()

    On Error Resume Next

    rs1.Close

    rs1.CursorLocation = adUseClient

    rs1.Open "Select * From 书库 Where " & Combo1.Text & " ='" & txt_Search.Text & "'", cn, adOpenKeyset, adLockOptimistic

    Set DataGrid1.DataSource = rs1

 

   If rs1.RecordCount = 0 Then MsgBox "查无此书"

  

End Sub

图书借出:

Private Sub cmdB_Click()

 

    If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then

       MsgBox "请输入完整的数据!", vbCritical, "警告"

       Exit Sub

    Else

       rs1.Open "Select * From 书库 Where 书号='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

       intb = rs1.RecordCount

       rs1.Close

       rs1.Open "Select * From 读者库 Where 读者编号= '" & Text2.Text & "'", cn, adOpenKeyset, adLockOptimistic

       intc = rs1.RecordCount

       rs1.Close

       If intb = 0 Or intc = 0 Then

          MsgBox "书号或读者编号不存在!", vbCritical, "警告"

          Text1.Text = ""

          Text2.Text = ""

       Else

          rs1.Open "Select * From 书库 Where 书号='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

          If Trim(rs1.Fields(6)) = "Yes" Then

          rs1.Close

          Dim temp1 As String, temp2 As String

          rs1.Open "Select * From 书库 Where 书号='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

          temp1 = rs1.Fields(1)

          rs1.Close

          rs1.Open "Select * From 读者库 Where 读者编号= '" & Text2.Text & "'", cn, adOpenKeyset, adLockOptimistic

          temp2 = rs1.Fields(1)

          rs1.Close

          rs1.Open "借阅记录", cn, adOpenKeyset, adLockOptimistic

          rs1.AddNew

          rs1.Fields(0) = inta

          rs1.Fields(1) = Text1.Text

          rs1.Fields(2) = temp1

          rs1.Fields(3) = Text3.Text

          rs1.Fields(5) = Text2.Text

          rs1.Fields(6) = temp2

          rs1.UpdateBatch adAffectCurrent

          rs1.Close

          rs1.Open "Select * From 书库 Where 书号='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

          rs1.Fields(6) = "No"

          rs1.UpdateBatch adAffectCurrent

          rs1.Close

          MsgBox "已办理好借阅手续!", , "提示"

          Text1.Text = ""

          Text2.Text = ""

          Else

             MsgBox "该书已经被借出", vbCritical, "提示"

             rs1.Close

             Text1.Text = ""

             Text2.Text = ""

       End If

    End If

  End If

End Sub

图书归还:

Private Sub cmdR_Click()

   If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then

      MsgBox "请输入完整的数据!", vbCritical, "警告"

      Exit Sub

   Else

      rs2.Open "Select * From 书库 Where 书号='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

      inta = rs2.RecordCount

      rs2.Close

      If inta = 0 Then

         MsgBox "书号不存在!", vbCritical, "警告"

         Text1.Text = ""

         Text2.Text = ""

      Else

         rs2.Open "Select * From 书库 Where 书号='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

         If Trim(rs2.Fields(6)) = "No" Then

         rs2.Close

         rs2.Open "Select * From 借阅记录 Where 书号='" & Text1.Text & "' And 读者编号='" & Val(Text2.Text) & "'", cn, adOpenKeyset, adLockOptimistic

         rs2.Fields(4) = Text3.Text

         rs2.UpdateBatch adAffectCurrent

         rs2.Close

         rs2.Open "Select * From 书库 Where 书号='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

         rs2.Fields(6) = "Yes"

         rs2.UpdateBatch adAffectCurrent

         rs2.Close

         MsgBox "已经办理好归还手续!", , "提示"

         Text1.Text = ""

         Text2.Text = ""

         Else

             MsgBox "该书已在库!", vbCritical, "提示"

             rs2.Close

             Text1.Text = ""

             Text2.Text = ""

        End If

    End If

 End If

End Sub

借阅查询:

Private Sub cmdSearch_Click()

    On Error Resume Next

    rs1.Close

    rs1.CursorLocation = adUseClient

   

    If Opt1.Value = True Then

       rs1.Open "Select * From 借阅记录 Where  读者编号 ='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

    Else

       rs1.Open "Select * From 借阅记录 Where  书号 ='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic

    End If

   Set DataGrid1.DataSource = rs1

End Sub

五.测试数据及运行结果

1.正常测试数据(3组)及运行结果;

图书书号:IS-7

读者编号:9

图书书号:IS-4

读者编号:6

根据读者编号查询:6

2.非正常测试数据(2组)及运行结果。

图书书号:IS-2

读者编号:9

图书书号:IS-8

读者编号:9

六.调试情况,设计技巧及体会

1.对自己的设计进行评价,指出合理和不足之处,提出改进方案;

实验中遇到许多问题,比如在连接数据库的时候,老是连接不成功,后来才知道,数据库的连接需要定义数据库管理员的账户和密码,这样方便数据库的操作,在一些方面注意数据库的数据操作,什么时候需要更新数据库,什么时候需要删除数据库的内容,都要在恰当的时候.感觉在数据库的连接方面还是vb比较直观一点.在界面的一些操作中,需要注意一些细节问题,特别是按钮的设计,在按钮上设计位图,更改工具条的位图,还有就是tab操作这些都是需要注意的,在对类的设计上,感觉也有不完美的地方,最后不得不参照书本了,所以基本上看起来和书本上的差不多,但是确实遇到许多问题,也解决了许多问题,在登陆界面上,不支持快捷键的操作,现在也是感觉很矛盾的事情,因为需要屏蔽这个快捷键,另外也需要通过tab来更改热键的位置.程序设计当中遇到许多问题,有的已经解决,有的解决不是很理想,代码也存在冗余部分,比如对工具条的设计,或者对butter的设计等等,这些主要看的还是源代码.

2.对设计及调试过程的心得体会。

通过本次实验,充分的掌握了,程序中使用数据库的方法,另外自己感觉在数据库的连接上,问题可能还是遇到的不很全面,经验积累不足,经过老师的点评发现在数据库的设计上也存在一些漏洞,比如表的结构上以及表之间的关系主键,外键,触发器这些东西使用还是僵死.这可能是经验不足,或者第一次设计,心里还是脱离不开老的那种从文件中读数据的那种模式,所以这以后的课程设计和学习当中我会注意加强自己的数据库设计方面的能力.

七.参考文献

《Visual Basic开发实战宝典》  高春艳,刘彬彬等  清华大学出版社

《VisualBasic范例开发大全》    隋丽娜、迟剑、郭立峰  清华大学出版社

《数据库设计系统原理与应用》  孟彩霞  人民邮电出版社

www.baidu.com

八.附录:源代码(电子版)

更多相关推荐:
数据库课程设计实验报告3

数据库课程设计报告课程设计题目:学分管理系统专业:网络工程班级:**学号:***20**年12月1日学分管理系统数据库课程设计实验时间:20**.11.28-20**.12.01实验地点:软件楼501室实验目的…

数据库课程设计报告范例

数据库课程设计报告课题名称:图书管理统专业:信息与计算科学班级:信计071班小组人员:***一.背景资料在高校中,学生的数量较多,图书的数量也比较多,每天图书的借阅量比较大,采用手工的处理方式已经不能满足这种需…

数据库课程设计实验报告

11课题意义21世纪是信息化的时代信息化以更快捷更方便为目标来融入各行各业学校也不能例外当前我国的学校正在加紧实施信息化建设其中学生管理是相当重要的一部分12课题开发的目的本课题为了适应信息时代发展提高学院工作...

数据库课程设计实验报告

数据库课程设计报告课程名称数据库课程设计题目教务管理系统指导教师卢益清设计起止日期20xx515至20xx62学院信息管理学院专业电子商务组号组长陈哲1北京信息科技大学计算机信息系统系课程设计实验报告课程名称数...

数据库课程设计实验报告

西安郵電學院数据库课程设计报告书系部名称学生姓名专业名称班级时间计算机20xx年12月20日至20xx年12月30日一本课程设计的目的熟悉数据库的语句语法将数据库运用到实际的项目中体会前台与后台的联系二选定的题...

数据库课程设计实验报告

数据库课程课程设计实验报告题目学生基本信息管理系统院系计算机学院班级软件1002班学号04103064姓名张芳莉指导老师乔平安一需求分析1基本功能要求1学生基本信息管理学生对自己的基本信息进行查询管理员对学生的...

数据库课程设计报告扉页及格式软件

课程设计报告课程名称数据库课程设计设计题目教材管理系统专业班级软件0941姓名***学号03指导教师***起止时间20**年6月20日-6月24日成绩评定电气与信息学院课程设计考核和成绩评定办法1.课程设计的考…

图书管理系统-数据库课程设计实验报告

计算机科学与工程学院题目基于数据库课程设计报告书CS模式的图书管理系统的设计所学专业计算机软件与理论班级作者指导老师完成日期20xx年08月08日内容提要本文介绍了一个基于ClientServer模式的高校图书...

数据结构课程设计报告

XXXX大学计算机学院课程设计数据结构班级姓名学号指导教师二一一年一月二十日课程设计任务书及成绩评定课题名称校园导游咨询题目的目的和要求1设计目的巩固和加深对数据结构的理解通过上机实验调试程序加深对课本知识的理...

数据结构课程设计实验报告--177

数据结构课程设计报告姓名陈白杨班级软092老师王森玉学号099074177实验一农夫过河问题一题目农夫过河问题二问题描述从前一人农夫带着一只狼一只羊和一棵白菜注意该狼已被农夫驯服了但还是会吃羊他要将所有东西安全...

数据结构课程设计实验报告E10914060 刘晨晨

实验一线性表逆置一问题描述分别以不同存储结构实现线性表的就地逆置线性表的就地逆置就是在原表的存储空间内将线性表a1a2a3ananan1a2a1二基本要求用顺序存储结构实现线性表的就地逆置并将结果输出三数据结构...

数据结构课程设计实验报告 安徽大学

20xx726实验一停车场管理系统设计要求1问题描述设计一个停车场管理系统模拟停车场运作此程序具备以下功能1若车辆到达则显示汽车在停车场内或便道上的停车位置2若车辆离开则显示汽车在停车场内停留的时间和应缴纳的费...

数据库课程设计实验报告(17篇)