数据库课程设计报告图书管理系统.doc_第1页
数据库课程设计报告图书管理系统.doc_第2页
数据库课程设计报告图书管理系统.doc_第3页
数据库课程设计报告图书管理系统.doc_第4页
数据库课程设计报告图书管理系统.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统原理及应用课程设计报告图书管理系统 学部:计算机科学与技术姓名: 专业: 班级: 学号: 指导老师:目录一、课程设计题目 1二、需求分析 1 2.1信息要求2 2.2处理要求2三、概念结构设计 3 3.1各实体E-R图3 3.2图书管理总E-R图4四、数据库的应用 5 4.1数据库系统简介5 4.2利用数据库建立表5五、Visual Basic6.0的应用 8 5.1开发工具简介(Visual Basic6.0)8 5.2利用VB6.0进行系统功能设计 9 5.3图书管理系统的详细设计 10六、源代码 20 6.1使用ADODB Connection对象连接数据库、ADODB对象操作数据 主要实现代码 20 6.2数据库程序源代码 21七、结束语 24 7.1制作数据库课程设计报告中遇到的问题及解决方法24 7.2体会及心得241、 课程设计题目题目:图书管理系统系统功能基本要求图书信息,包括图书编号、图书名称、所属类别等;读者信息,包括读者编码、姓名、性别、专业等;借还书信息,包括图书当前状态、被借还次数、借阅时间等。2、 需求分析2.1信息要求根据图书管理系统的需求,首先将要记录的信息分类,要记录的信息如下。 用户信息:包括姓名、借书证号、身份。 学生信息表:学生学号、班级编号、借书证号、学生姓名、性别、系别。 图书管理员信息表:管理员编号、姓名、性别、值班时间。 图书借阅信息表:图书名称、学生学号、借书证号、管理员编号、借出数量、剩余数量。 图书信息表:图书编号、类别编号、类别名称、图书名称、作者姓名、出版社名称、图书简介、能否借出、封面。 图书赔偿信息表:图书编号、管理员编号、借书日期、应还日期、赔偿原因、赔偿金额、解决方案。 投诉管理信息表:借书证号、投诉日期、投诉内容、管理员编号2.2处理要求图书管理系统主要应该具有以下功能模块:(1)读者登录界面部分,要求有如下功能: 可以显示读者信息 图书查询功能; 借书操作; 续借操作;(2)管理员登录界面部分,要求有如下功能: 添加用户信息; 修改用户信息; 删除用户信息; 添加书籍信息; 修改书籍信息; 删除书籍信息; 借阅信息管理; 借阅信息修改; 还书信息;系统功能模块图如下:文华图书管理系统管理员读者还书信息借阅信息修改借阅信息管理删除书籍信息修改书籍信息添加书籍信息删除用户信息修改用户信息添加用户信息图书查询用户登录3、 概念结构设计3.1各实体E-R图学生:学生学号、班级编号、借书证号、学生姓名、性别、系别。学生学生学号系别性别学生姓名借书证号班级编号管理员:管理员编号、姓名、性别、值班时间。管理员管理员编号姓名性别值班时间图书:图书编号、类别编号、类别名称、图书名称、作者姓名、出版社名称、图书简介、能否借出、封面。封面能否借出图书编号图书简介类别编号图书类别名称图书名称作者姓名出版社名称3.2图书管理总E-R图性别姓名值班时间管理员编号管理员管理作者姓名图书编号出版社名称类别编号图书图书简介类别名称图书价格图书名称借阅政治面貌读者姓名读者读者类型专业院系性别四、数据库的应用4.1数据库系统的简介通过图书馆图书管理系统管理员可以简捷、方便的对图书记录查阅、增加、删除等功能,而用户也可以通过这个系统对进行图书查询、借阅、归还等功能。 该数据库应用程序按照用户权限和实现功能的不同分为两部分:外部学生对数据库的查询访问和内部管理人员对数据记录的管理维护。每一部分中包含各自实现的各项功能,对每一项功能的实现,将按照窗体设计以及运行情况的顺序逐一进行设计。4.2利用数据库建立表如下:系统表单:学生信息表图书信息表图书管理员信息表图书借阅信息表图书赔偿信息表投诉管理信息表在数据库中建立表,并输入详细信息:部分学生详细信息表管理员详细信息表五、Visual Basic6.0的应用5.1开发工具简介(Visual Basic6.0)微软公司的Visual Basic 6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。利用VISUAL BASIC 程序设计语言,可以很方便地设计出在WINDOWS环境下运行的应用程序。故而,实现本系统VB是一个相对较好的选择。VB是微软公司出品的一个快速可视化程序开发工具软件,借助微软在操作系统和办公软件的垄断地位,VB在短短的几年内风靡全球。VB是极有和功能强大的软件,主要表现在:所见即所得的界面设计,基于对象的设计方法,极短的软件开发周期,较易维护的生成代码。VB程序语言具有许多优秀的特性,用其设计应用程序时有两个基本特点:可视化设计和事件驱动编程。5.2利用VB6.0进行系统功能设计该系统具有借阅图书,归还图书,查阅图书馆的藏书情况和自己的借阅情况,编辑帐号等功能。高级管理员可以对图书进行录入登记,删除陈旧的书籍;对帐号信息进行增加,删除,修改等操作。还可以来直接查阅自己的借阅情况及图书馆的藏书情况。具体功能如下:l 管理者登陆功能管理员通过自己的用户名和密码登陆该系统,同时在管理员离开本机的时候,退出该系统,达到其他人不可以进行操作的目的。l 借阅者的登陆功能这个功能的实现与管理人员登录功能实现的方法大致一样,并且还要简单。是从读者表中查到到账号与密码,看与用户输入的是否一致。如果一致,那么用户就可查看自已的借阅情况并维护自己的部分信息。l 图书的借阅功能在这个功能中,借阅者输入借阅者的读者编号和所要借阅的图书的图书编号,然后点击借阅按钮就可进行图书借阅。l 图书的归还功能在此功能中,借阅者根据借阅者的读者编号和归还的图书编号进行还书工作。l 图书的查询功能在这个功能中可以在文本框中输入图书编号,点查找按钮后就会在各个相应的组件中显示出信息。 l 高级管理员的帐号管理功能在此功能中高级管理员可以增加,或是修改借阅者的密码、权限。在此功能中如果选中中的记录,则在右边相应的组件中显示出信息,并且管理员还可对这些记录进行修改或删除已有的记录。并且也可以点增加按钮增加一条或多条新的记录。l 退出系统功能在系统主窗口中单击“退出”按纽,就退出图书馆管理系统。5.3图书管理系统的详细设计(1)图书管理登陆界面设计l 登陆界面截图l 主要实现源代码Private Sub Command1_Click()Dim sql As StringDim conn As New ADODB.ConnectionDim rs_login As New ADODB.RecordsetIf Trim(Text1.Text) = Then 检测用户名正确与否 MsgBox 用户名不能为空,请重新输入!, vbOKOnly + vbExclamation, 错误 Text1.SetFocusElse sql = select * from Test where test_info = & Text1.Text & rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_login.EOF = True Then MsgBox 用户名不存在,请重新输入!, vbOKOnly + vbExclamation, 错误 Text1 = Text1.SetFocus Else 检测密码正确与否 If Trim(rs_login.Fields(1) = Trim(Text2) Then rs_login.Close Unload Me Form2.Show Else MsgBox 密码错误,请重新输入!, vbOKOnly + vbExclamation, 错误 Text2.SetFocus End If End IfEnd IfEnd SubEnd SubPrivate Sub Command2_Click() MsgBox 您已成功退出!, vbOKOnly + vbExclamation, 提示 Unload MeEnd SubEnd SubPrivate Sub Form_Load()App.HelpFile = App.Path + WHELP.HLPOpenDatabase(DatabaseName, False,False, ;Pwd=密码)Set DB = OpenDatabase(App.Path + Access.mdb, False, False, ;pwd=ma)Set rd1 = DB.OpenRecordset(kkey, dbOpenSnapshot) If rd1.RecordCount = 0 Then Exit Sub pname = rd1(username) pkey = rd1(userkey)End SubPrivate Sub txtUserNameGetFocus()txtUserName.SetFocus txtUserName.SelStart = 0 txtUserName.SelLength = Len(txtUserName.Text)End SubPrivate Sub txtPasswordGetFocus()txtPassword.SetFocus txtPassword.SelStart = 0 txtPassword.SelLength = Len(txtPassword.Text)End SubPrivate Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)End Sub(2)登陆成功后进入界面l 界面截图l 主要实现源代码#图书借阅管理Private Sub BookBorrowManage_Click()Combo2.ListIndex = Combo1.ListIndexEnd SubPrivate Sub Combo2_Click() Combo1.ListIndex = Combo2.ListIndexEnd SubPrivate Sub Command1_Click() Dim rs_borrowbook As New ADODB.Recordset Dim sql As String Dim conn As New ADODB.Connection conn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdb sql = select * from 读者信息 where 读者编号= & Combo1.Text & rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic leibie = rs_borrowbook.Fields(3) shumu = rs_borrowbook.Fields(8) rs_borrowbook.Close sql = select * from 读者类别 where 种类名称= & leibie & rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic qixian = rs_borrowbook.Fields(2) maxnum = rs_borrowbook.Fields(1) rs_borrowbook.Close If shumu = maxnum Then MsgBox 该读者借书数额已满!, vbOKOnly + vbExclamation Exit Sub End If sql = select * from 借阅信息 rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic rs_borrowbook.AddNew rs_borrowbook.Fields(1) = Combo1.Text rs_borrowbook.Fields(2) = Combo2.Text rs_borrowbook.Fields(3) = Label8.Caption rs_borrowbook.Fields(4) = Label9.Caption rs_borrowbook.Fields(5) = Date rs_borrowbook.Fields(6) = Date + qixian rs_borrowbook.Update rs_borrowbook.Close sql = select * from 书籍信息 where 图书编号= & book_num & rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic rs_borrowbook.Fields(7) = 是 rs_borrowbook.Update rs_borrowbook.Close sql = select * from 读者信息 where 读者编号= & Combo1.Text & rs_borrowbook.Open sql, conn, adOpenKeyset, adLockPessimistic rs_borrowbook.Fields(8) = rs_borrowbook.Fields(8) + 1 rs_borrowbook.Update rs_borrowbook.Close MsgBox 本书借阅成功!, vbOKOnly + vbExclamation Unload MeEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load() Dim rs_borrow As New ADODB.Recordset Dim rs_reader As New ADODB.Recordset Dim conn As New ADODB.Connection Dim sql As String Dim sqlreader As String conn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdb sql = select * from 书籍信息 where 图书编号= & book_num & rs_borrow.Open sql, conn, adOpenKeyset, adLockPessimistic Label8.Caption = rs_borrow.Fields(0) Label9.Caption = rs_borrow.Fields(1) Label10.Caption = rs_borrow.Fields(3) Label11.Caption = rs_borrow.Fields(5) Label12.Caption = rs_borrow.Fields(2) Label13.Caption = rs_borrow.Fields(4) Label14.Caption = rs_borrow.Fields(6) sqlreader = select * from 读者信息 rs_reader.Open sqlreader, conn, adOpenKeyset, adLockPessimistic If Not rs_reader.EOF Then Do While Not rs_reader.EOF Combo1.AddItem rs_reader.Fields(1) Combo2.AddItem rs_reader.Fields(0) rs_reader.MoveNext Loop Else MsgBox 请先登记读者!, vbOKOnly + vbExclamation Exit Sub End If rs_borrow.Close rs_reader.CloseEnd SubPrivate Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)End Sub#图书管理Private Sub BookManage_Click()Dim rs_findbook As New ADODB.RecordsetDim conn As New ADODB.ConnectionDim sql As StringIf Check1.Value = vbChecked Then sql = 书名= & Trim(Text1.Text & ) & End IfIf Check2.Value = vbChecked Then If Trim(sql) = Then sql = 类别= & Trim(Combo1.Text & ) & Else sql = sql & and 类别= & Trim(Combo1.Text & ) & End IfEnd IfIf Check3.Value = vbChecked Then If Trim(sql) = Then sql = 作者= & Trim(Text2.Text & ) & Else sql = sql & and 作者= & Trim(Text2.Text & ) & End IfEnd IfIf Check4.Value = vbChecked Then If Trim(sql) = Then sql = 图书编号= & Trim(Text3.Text & ) & Else sql = sql & 图书编号= & Trim(Text3.Text & ) & End IfEnd IfIf Check5.Value = vbChecked Then If Trim(sql) = Then sql = 出版社= & Trim(Text4.Text & ) & Else sql = sql & and 出版社= & Trim(Text4.Text & ) & End IfEnd Ifconn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdbIf Trim(sql) = Then MsgBox 请选择查询方式!, vbOKOnly + vbExclamation Exit SubEnd Ifsql = select * from 书籍信息 where & sqlrs_findbook.CursorLocation = adUseClientrs_findbook.Open sql, conn, adOpenKeyset, adLockPessimisticDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseIf rs_findbook.RecordCount = 0 Then MsgBox 查询不到该图书信息!, vbOKOnly + vbExclamationElse Set DataGrid1.DataSource = rs_findbookEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Command3_Click() If Trim(book_num) = Then MsgBox 请选择要借阅的图书!, vbOKOnly + vbExclamation Exit Sub End If If panduan = 是 Then MsgBox 此书已被借出!, vbOKOnly + vbExclamation Exit Sub End If Unload Mefrmborrowbook.ShowEnd SubPrivate Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) book_num = DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark) panduan = DataGrid1.Columns(7).CellValue(DataGrid1.Bookmark)End SubPrivate Sub Form_Load() Dim rs_find As New ADODB.Recordset Dim conn As New ADODB.Connection Dim sql As String sql = select * from 图书类别 conn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdb rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic rs_find.MoveFirst If Not rs_find.EOF Then Do While Not rs_find.EOF Combo1.AddItem rs_find.Fields(0) rs_find.MoveNext Loop Combo1.ListIndex = 0 End If rs_find.CloseEnd SubPrivate Sub GetOut_Click()End SubPrivate Sub MDIForm_Load()End Sub#读者管理Private Sub ReaderManage_Click()Dim rs_findreader As New ADODB.RecordsetDim conn As New ADODB.ConnectionDim sql As StringIf Check1.Value = vbChecked Then sql = 读者编号= & Trim(Text1.Text & ) & End IfIf Check2.Value = vbChecked Then If Trim(sql) = Then sql = 读者姓名= & Trim(Text2.Text & ) & Else sql = sql & and 类别= & Trim(Text2.Text & ) & End IfEnd IfIf Check3.Value = vbChecked Then If Trim(sql) = Then sql = 读者类别= & Trim(Combo1.Text & ) & Else sql = sql & and 读者类别= & Trim(Combo1.Text & ) & End IfEnd Ifconn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdbIf Trim(sql) = Then MsgBox 请选择查询方式!, vbOKOnly + vbExclamation Exit SubEnd Ifsql = select * from 读者信息 where & sqlrs_findreader.CursorLocation = adUseClientrs_findreader.Open sql, conn, adOpenKeyset, adLockPessimisticDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseIf rs_findreader.RecordCount = 0 Then MsgBox 查询不到该图书信息!, vbOKOnly + vbExclamationElse Set DataGrid1.DataSource = rs_findreaderEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load() Dim rs_find As New ADODB.Recordset Dim conn As New ADODB.Connection Dim sql As String sql = select * from 读者类别 conn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdb rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic rs_find.MoveFirst If Not rs_find.EOF Then Do While Not rs_find.EOF Combo1.AddItem rs_find.Fields(0) rs_find.MoveNext Loop Combo1.ListIndex = 0 End If rs_find.CloseEnd Sub(3)其他功能模块设计A.读者信息管理功能截图然后单击添加读者信息,其窗口如下:本窗口实现读者信息的添加,通过本窗口把读者的详细信息添加到读者信息库中,方便对读者的管理。B.图书信息管理功能截图然后单击添加图书信息,其窗体如下:该窗口的功能是为用户添加图书信息而设计的,用户可以通过本窗口把图书的详细资料添加到图书信息库中。C.图书借阅管理功能截图然后单击还书管理,其窗体如下:六、源代码6.1使用ADODB Connection对象连接数据库、ADODB对象操作数据主要实现代码(1) 定义系统中的全局变量Public SqlConn As New ADODB.Connection ADO Connection对象用于创建一个连接Public SqlRS As New ADODB.Recordset ADO Command对象用于执行一次简单查询Public SqlCmd As New ADODB.Command ADO Recordset对象用于容纳一个记录集Sub main() Set conn = New ADODB.Connection conn.ConnectionString = Provider=SQLOLEDB.1;Persist Security Info=False; _ + User ID=sa;password=sa;Initial Catalog=您的数据库名;Data Source= conn.Openfrom1.Show 登录界面End Sub(2) 连接数据库Public Function DBConn() As Boolean ConnStr = Provider = SQLOLEDB.1;Data Source = .SQLEXPRESS;User IDsa;Password = 12345678;Initial Catalog = StudentDB If SqlConn.State adStateOpen Then SqlConn.ConnectionString = ConnStr SqlConn.Open SqlConn.Open ConnStr End If SqlCmd.ActiveConnection = SqlConn DBConn = TrueEnd Function(3) 执行SQL语句的函数ExecSQL,可返回结果集,也可适用于没有返回结果集的SQL命令语句。Public Function ExecSQL(ByVal sql As String) As ADODB.RecordsetIf SqlConn.State adStateOpen ThenDBConnEnd IfSqlCmd.CommandText = sqlSet ExecSQL = SqlCmd.ExecuteEnd Function6.2数据库程序源代码数据库创建各表源代码如下:1.学生信息表:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.学生信息表(学生学号 char(12) NOT NULL,班级编号 char(10) NOT NULL,借书证号 char(10) NOT NULL,学生姓名 char(20) NOT NULL,性别 char(5) NOT NULL,系别 char(20) NOT NULL) ON PRIMARYGOSET ANSI_PADDING OFF2. 用户信息表:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.用户信息表(用户名 varchar(50) NOT NULL,密码 varchar(50) NOT NULL,用户身份 char(10) NULL) ON PRIMARYGOSET ANSI_PADDING OFF3. 图书管理员信息表:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.图书管理员信息表(管理员编号 char(12) NOT NULL,姓名 char(20) NOT NULL,性别 char(5) NOT NULL,值班时间 datetime NOT NULL) ON PRIMARYGOSET ANSI_PADDING OFF4. 图书借阅信息表:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.图书借阅信息表(图书名称 char(20) NOT NULL,学生学号 char(12) NOT NULL,借书证号 char(10) NOT NULL,管理员编号 char(12) NOT NULL,借出数量 char(10) NOT NULL,剩余数量 char(10) NOT NULL) ON PRIMARYGOSET ANSI_PADDING OFF5. 图书信息表:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.图书信息表(图书编号 char(20) NOT NULL,类别编号 char(20) NOT NULL,类别名称 varchar(20) NOT NULL,图书名称 varchar(20) NOT NULL,作者姓名 char(20) NULL,出版社名称 varchar(50) NULL,图书简介 text NULL,能否借出 char(10) NOT NULL,封面 image NULL) ON PRIMARY TEXTIMAGE_ON PRIMARYGOSET ANSI_PADDING OFF6. 图书赔偿信息表:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.图书赔偿信息表(图书赔偿信息表 char(10) NOT N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论