图书管理系统设计方案.doc_第1页
图书管理系统设计方案.doc_第2页
图书管理系统设计方案.doc_第3页
图书管理系统设计方案.doc_第4页
图书管理系统设计方案.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

图书管理系统设计方案目录1、 引言.12、 需求分析.13、系统设计.23.1、设计图书管理系统的功能结构.23.2、图书管理系统的用户管理实体关系.23.3、图书管理系统的借阅管理实体关系.23.4、图书管理系统的读者管理实体关系.33.5、图书管理系统的图书库管理实体关系.34、系统详细设计.4 4.1、数据库的设计.44.2、管理模块的具体设计.64.3、数据库和管理模块的连接.115、 软件调试.12 5.1、管理员权限操作.12 5.2、普通用户操作.176、 设计总结及分析.187、 课程设计体会.188、设计中所用到的程序代码汇总.19一、引言随着人们对物质需求的逐步满足,精神文明的追求日益增加,大大小小的书店,图书馆到处可见,特别是一些规模较大的学校,图书馆的数量以及规模都在增大。随着各图书馆的图书的数量不断增多和图书馆规模的不断扩大,管理这些庞大的体系非常困难的,因为图书的情况是随时改变的,因此必需对图书进行动态的管理,而这对于一个管理人员来说是一件比较复杂的事情,存储、查询、借阅是必不可少的业务。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;基于这一点,开发了这个图书管理系统,它将图书借还这一传统方式进行信息化。我们这一系统满足了对日常的图书管理;图书的出租与归还的管理;图书的总量;图书是否借出查询一数据库系统基本实现了对图书的数据库管理,大大的提高了工作效率和图书的遗失率。二、需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后的具体设计打下基础。针对一般图书馆管理信息系统的需求,通过对图书馆管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:1.读者信息,包括的数据项有:读者编号、读者姓名、联系电话、所属部门。2.书库,包括的数据项有:书号、书名、作者、出版社、单价、类别、在库状态。3.借阅记录,包括的数据项有:序号、书号、书名、借出时间、归还时间、读者姓名。4.系统设置,包括的数据项有:用户名、密码、权限。 本系统具有的功能:1、实现读者的新增、编辑和删除功能。2、实现图书的新增、编辑和删除功能。3、实现图书的查询功能。4、实现图书借出和归还管理功能。5、实现借阅历史信息的查询功能。6、实现两种不同权限用户的登录功能:普通用户和管理级用户。7、实现用户管理功能,可以通过管理级用户添加新用户,具有权限级别及密码修改功能。有了上面的数据结构、数据项和数据流程,就可以进行下面的数据库设计了。 三、系统设计 3.1、设计图书管理系统的功能结构:读者管理图书查询图书借出借阅管理图书管理系统库图书库管理系统管理 用户 管理员 节约查询图书归还图书删除图书编辑图书新增读者删除读者编辑读者新增退出系统软件信息2用户管理 图书管理系统的功能结构3.2、图书管理系统的用户管理实体关系:用户管理实体关系3.3、图书管理系统的借阅管理实体关系:借阅管理实体-关系 3.4、图书管理系统的读者管理实体关系:读者管理实体关系 3.5、图书管理系统的图书库管理实体关系:图示管理实体关系如上的实体关系图,设计出功能模块以及说明:1. 系统管理模块:用于登录、增加用户、修改用户密码等操作。2. 读者管理模块:用于新增读者、编辑读者和删除读者的操作。3. 图书库管理模块:用于新增图书、编辑图书和删除图书操作。4. 图书查询管理模块:用于库中图书的查询操作。5. 图书借阅管理模块:用于图书借出、图书归还和图书借阅记录查询操作。6. 系统信息模块:用于显示软件信息和退出操作。四、系统详细设计4.1、数据库的设计 数据表的设计。本系统的数据表共有四张,分别是“系统设置”数据表、“读者库”数据表、“书库”数据表和“借阅记录”数据表。 数据库表 4.1.1、“系统设置”数据表主要用于存储用户信息,包括用户名、密码、权限三个字段。 4.1.2、“读者库”数据表主要是用于存储读者信息,只有等级的读者才具有借阅资格。包括:读者编号、读者姓名、联系电话、所属部门,四个字段。 4.1.3、“书库”数据表主要是用于存储图书信息,包括:书号、书名、作者、出版社、单价、类别、在库状态,七个字段。 4.1.4、“借阅记录”数据表用于存储读者借出归还的历史记录,包括:序号、书号、书名、借出时间、归还时间、读者编号、读者姓名,七个字段。 4.2、管理模块的具体设计 4.2.1主窗体模块设计主窗体模块指的是所以模块的操作界面,在本系统中使用多文档窗体及菜单方式来实现,创建主窗体的步骤:1、在工程中创建MDI窗体,然后在选定的MDI窗体的前提下,从菜单栏中选择,从而进行菜单编辑。 2、在菜单编辑器中依次创建系统管理、新增用户、修改密码、分割线、关于软件、分割线、退出系统、读者管理、读者新增、读者编辑、读者删除、图书库管理、图书新增、图书编辑、图书删除、图书查询、借阅管理、图书接触、图书归还、借阅查询等菜单。 3、菜单设计完成后,返回MDI窗体,显示如下图。4.2.2、系统管理模块设计 系统管理模块包括登陆模块窗体、新增用户窗体模块和密码修改模块窗体。用户登录模块的功能是防止不合法用户的登录;增加用户窗体模块用于实现新增用户功能;密码修改模块用于实现合法用户修改密码的功能。具体设计如下: 1、在空白的窗体上,添加标签控件、文本框控件、命令按钮等并调整大小及位置然后设置其各自的属性,显示如下。 2、对下列事件编程,为登录窗体调价启动事件,为定时器添加timer事件,为登陆窗体添加启动事件,为登录窗体添加“登录”按钮事件,为在登录窗体中实现权限设置在公共模块添加代码。具体代码见附件3、创建新增用户窗体,添加标签控件、文本框控件、文本框控件以及组合框控件以及命令按钮控件,调整大小以及位置显示如下。4、 在窗体中将新用户、密码和权限添加到数据库中。代码见附件。5、 创建修改密码窗体模块,即只要知道用户名和正确密码前提下,修改登录密码。在窗体上添加各控件并设置相应属性后显示如下。6、设置“提交”按钮功能,实现修改密码的目的,代码见附件4.2.3、读者管理模块设计1、在创建读者新增窗体模块,即在一个空白的窗体上添加Frame控件、标签控件、文本框控件以及命令控件,调整窗体大小以及其他控件的属性,显示如下。2、 设置窗体启动事件,主要实现连接数据库并初始化读者编号等功能,代码见附件3、 设置“确定”按钮,用于实现登录新的图纸信息的目的,具体代码见附件。4、同上创建读者编辑窗体以及读者删除窗体。显示如下。(代码见附件)4.2.3、图书库管理模块设计如上述的步骤建立图书库管理模块,显示如下(代码见附件)4.2.4、图书查询模块以及图书借阅管理模块设计如上述的步骤建立,显示如下(代码见附件)4.3数据库和管理模块的连接4.3.1、准备工作主要包括ADO库文件的导入以及模块中Sub Main的设置,具体操作步骤如下:第一步:新建EXE标准工程,并保存为“图书管理系统”工程。从菜单栏中选择【工程】【引用】命令,弹出【引用】对话框。第二步:在【引用】对话框中的列表框内选中Microsoft ActiveX Data Objects 2.8Library复选框。第三步:单击【确定】按钮返回集成开发环境,即完成ADO库文件的导入工作。接着在模块中设置 Sub Main,即在工程资源管理窗口中完成模块的添加操作后,接着便为模块添加代码,即在工程资源管理窗口中双击新建的模块图标,进入模块的代码编辑窗口,在其中输入如下代码:Sub Main() On Error GoTo Err 使用错误处理语句 Cn.Open “Provider=Microsoft.Jet.oledb.4.0;Data Source=”& App.Path&”JXC.mdb” frmLogin.Show Exit SubErr: MsgBox”数据库连接错误!”,vbCritical,”警告” EndEnd Sub第四步:在工程属性中设置启动对象,即从菜单栏中选择【工程】【属性】命令,在弹出的【工程属性】对话框中的【通用】选项下,将“启动对象”设置为Sub Main,单击【确定】按钮,即可完成进图书系统的数据库连接准备工作。4.3.2、用户的权限及实现方法定义权限,即普通用户权限不能增加新用户、不能使用图书管理模块和借阅管理模块,而管理级用户可以使用全部功能。第一步 在公共模块中定义一个布尔变量并声明一个函数,代码编写如下:Public Function QuanXian(blnDJ As Boolean) If blnDJ = True Then 当为True时,即管理级用户 MDIForm1.mnuAddNew = True MDIForm1.mnuIn = True MDIForm1.mnuOut = True Else 否则为普通用户 MDIForm1.mnuAddNew = False 响应的菜单呈无用状态 MDIForm1.mnuIn = False MDIForm1.mnuOut = False End IfEnd Function第二步 在登录窗体中添加获取登录时用户的应有权限。rs2.Open Select 权限 From 系统 Where 用户名= & Combo1.Text & , _ cn, adOpenKeyset, adLockOptimistic If rs2.Fields(0) = System Then blnDJ = True If rs2.Fields(0) = Guest Then blnDJ = False rs2.Close 第三步 在主窗体(MDI)窗体下响应登录窗体中用户权限的选择,即在主窗体的启动事件中添加如下代码即可。Call Quanxian(blnDJ)5、 软件的调试分为两个部分进行,一是管理员,二是用户。5.1、管理员权限登录操作5.1.1新增用户5.1.2、修改密码5.1.3、读者新增5.1.4、读者编辑5.1.5、图书新增5.1.6、图书编辑5.1.7、图书删除5.1.8、图书搜索5.1.9、图书借出5.1.10、图书归还5.1.11、借阅查询5.2、普通用户权限登录5.2.1修改密码5.2.2、搜索6、 设计总结及分析6.1.1、功能 :软件基本完成上述所分析要求的功能。6.1.2、界面设计1.界面友好:本系统的界面很大众化,功能不复杂,管理人员和用户可以较好的把握各自对应权限所有的功能。2.界面美观:本系统界面比较粗糙,设计一些大方得体的图片,图表等使得界面更加的美丽,给人感觉更亲近。 七、课程设计体会图书管理系统的使用,大大增加了图书管理员的效率,这次我们设计的系统虽然完成,但依然存在一定问题:1.功能还比较简单;2.没有经过大量用户的实践检验,无法保证完全满足用户各方面的要求;3.功能有待在使用过程中完善提高。在程序的设计过程中,通过各种资料的阅读,更深一步的了解了图书馆管理信息系统、数据库系统的的概念,为今后开发和设计信息系统和数据库系统打下了深厚的基础。在开发软件的过程中,对编程工具 Visual Basic从一无所知到能够简单的应用,不仅新学会了一种功能强大的编程语言,而且提高了独立自学的能力。在学习过程中,遇到了许多的问题,经过努力,我终于冲破了这些难点。由于每个软件的自身设计思路是不一样的,在各种功能的实现上多存在着差异,这使我走了许多的弯路。但同时使我了解了一种新的思路,使我获益匪浅。学到的知识是有限的,面对的实践应用是多种多样的,所学很可能无法满足所用,必须在实践中、在应用中不断学习不断提高,这次完成毕业设计的过程中我学到了许多从前闻所未闻的知识和技能。八、设计中所用到的程序代码汇总Option ExplicitPrivate Sub cmdOk_Click() Unload MeEnd SubPrivate Sub Form_Load() frmAbout.Icon = LoadPicture(App.Path & SX.ico) Image1.Picture = LoadPicture(App.Path & PIC1.jpg)End Sub /背景图片Private Sub Label1_Click()End SubOption ExplicitDim rs As New ADODB.RecordsetPrivate Sub cmdNo_Click() Unload MeEnd 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 IfEnd Sub /注册Private Sub Form_Load() Combo1.AddItem System Combo1.AddItem Guest cn.Open Provider=Microsoft.Jet.oledb.4.0;Data Source= & App.Path & Library.mdb Icon = LoadPicture(App.Path & SX.ico)End Sub /权限Private Sub Form_Unload(Cancel As Integer) cn.CloseEnd SubOption ExplicitPrivate Sub cmdCancel_Click() Unload MeEnd SubPrivate 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 IfEnd SubPrivate Sub Form_Load() cn.Open Provider=Microsoft.Jet.oledb.4.0;Data Source= & App.Path & Library.mdb rs1.Open 读者库, cn, adOpenKeyset, adLockOptimistic If rs1.RecordCount = 0 Then txt(0).Text = 1 Else rs1.MoveLast txt(0).Text = rs1.Fields(0) + 1 自动设置读者编号 避免读者编号重复 End If rs1.Close txt(0).Enabled = False Icon = LoadPicture(App.Path & SX.ico)End SubPrivate Sub Form_Unload(Cancel As Integer) cn.CloseEnd SubOption ExplicitPrivate Sub cmdAdd_Click() Dim i As Integer If txt(0).Text = Or txt(1).Text = Or txt(2).Text = Or txt(3).Text = Or txt(4).Text = Or Combo1.Text = Then MsgBox 请输入完整的信息!, vbCritical, 警告 Exit Sub Else rs1.AddNew For i = 0 To 4 rs1.Fields(i) = txt(i).Text Next i rs1.Fields(5) = Combo1.Text rs1.Fields(6) = Yes rs1.UpdateBatch adAffectCurrent End If MsgBox 图书新增成功!, , 提示 txt(0).Text = ISBN- & Right(rs1.Fields(0), 1) + 1 For i = 1 To 4 txt(i).Text = Next i Combo1.ListIndex = -1End SubPrivate Sub cmdCancel_Click() Unload MeEnd SubPrivate Sub Form_Load() cn.Open Provider=Microsoft.Jet.oledb.4.0;Data Source= & App.Path & Library.mdb rs1.Open 书库, cn, adOpenKeyset, adLockOptimistic rs1.MoveLast txt(0).Text = ISBN- & Right(rs1.Fields(0), 1) + 1 txt(0).Enabled = False Combo1.AddItem 技术类 Combo1.AddItem 非技术类 Icon = LoadPicture(App.Path & SX.ico)End SubPrivate Sub Form_Unload(Cancel As Integer) rs1.Close cn.CloseEnd SubOption ExplicitPrivate Sub cmdB_Click() If Text1(0).Text = Or Text2(0).Text = Or Text3.Text = Then MsgBox 请输入完整的数据!, vbCritical, 警告 Exit Sub Else rs1.Open Select * From 书库 Where 书号= & Text1(0).Text & , cn, adOpenKeyset, adLockOptimistic If rs1.Fields(6) = Yes Then rs1.Close Dim temp1 As String, temp2 As String rs1.Open Select * From 书库 Where 书号= & Text1(0).Text & , cn, adOpenKeyset, adLockOptimistic temp1 = rs1.Fields(1) rs1.Close rs1.Open Select * From 读者库 Where 读者编号= & Text2(0).Text & , cn, adOpenKeyset, adLockOptimistic temp2 = rs1.Fields(1) rs1.Close rs1.Open 借阅记录, cn, adOpenKeyset, adLockOptimistic rs1.AddNew rs1.Fields(1) = Text1(0).Text rs1.Fields(2) = temp1 rs1.Fields(3) = Text3.Text rs1.Fields(5) = Text2(0).Text rs1.Fields(6) = temp2 rs1.UpdateBatch adAffectCurrent rs1.Close rs1.Open Select * From 书库 Where 书号= & Text1(0).Text & , cn, adOpenKeyset, adLockOptimistic rs1.Fields(6) = No rs1.UpdateBatch adAffectCurrent rs1.Close MsgBox 已办理好借阅手续!, , 提示 Else MsgBox 该书已经被借出, vbCritical, 提示 rs1.Close End If End IfEnd SubPrivate Sub cmdCancel_Click() Unload MeEnd SubPrivate Sub Form_Load() cn.Open Provider=Microsoft.Jet.oledb.4.0;Data Source= & App.Path & Library.mdb Text3.Text = Date Text3.Enabled = False Icon = LoadPicture(App.Path & SX.ico)End SubPrivate Sub Form_Unload(Cancel As Integer) cn.CloseEnd SubOption ExplicitPrivate Sub cmdCancel_Click() Unload MeEnd SubPrivate Sub cmdDelete_Click()If txt(0).Text = Or txt(1) = Or txt(2) = Or txt(3) = Or txt(4) = Or Combo1.Text = Then MsgBox 请单击行标选择需要修改的图书行, vbCritical, 提示 Exit SubElse If txt(0) rs1.Fields(0) Then MsgBox 请单击行标选择需要修改的图书行, vbCritical, 提示 Else If MsgBox(确认删除读者么?, vbYesNo, 提示) = vbYes Then rs1.Delete adAffectCurrent rs1.UpdateBatch adAffectCurrent rs1.MoveLast Dim i As Integer For i = 0 To 4 txt(i) = Next i Combo1.ListIndex = -1 End If MsgBox 删除成功!, , 提示 End IfEnd IfEnd SubPrivate Sub DataGrid1_Click() Dim i As Integer For i = 0 To 4 txt(i).Text = rs1.Fields(i) Next i Combo1.Text = rs1.Fields(5)End SubPrivate Sub Form_Load() cn.Open Provider=Microsoft.Jet.oledb.4.0;Data Source= & App.Path & Library.mdb rs1.CursorLocation = adUseClient rs1.Open 书库, cn, adOpenKeyset, adLockOptimistic Set DataGrid1.DataSource = rs1 txt(0).Enabled = False Icon = LoadPicture(App.Path & SX.ico)End SubPrivate Sub Form_Unload(Cancel As Integer) rs1.Close cn.CloseEnd SubOption ExplicitPrivate Sub cmdCancel_Click() Unload MeEnd SubPrivate 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 SubElse 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 IfEnd IfEnd SubPrivate Sub DataGrid1_Click() Dim i As Integer For i = 0 To 4 txt(i).Text = rs1.Fields(i) Next i Combo1.Text = rs1.Fields(5)End SubPrivate Sub Form_Load() cn.Open Provider=Microsoft.Jet.oledb.4.0;Data Source= & App.Path & Library.mdb rs1.CursorLocation = adUseClient rs1.Open 书库, cn, adOpenKeyset, adLockOptimistic Set DataGrid1.DataSource = rs1 txt(0).Enabled = False Icon = LoadPicture(App.Path & SX.ico)End SubPrivate Sub Form_Unload(Cancel As Integer) rs1.Close cn.CloseEnd SubOption ExplicitPrivate 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 SubPrivate Sub Form_Load() cn.Open Provider=Microsoft.Jet.oledb.4.0;Data Source= & App.Path & Library.mdb Combo1.AddItem 书号 Combo1.AddItem 书名 Combo1.AddItem 作者 Combo1.AddItem 出版社 Combo1.AddItem 类别 Icon = LoadPicture(App.Path & SX.ico)End SubPrivate Sub Form_Unload(Cancel As Integer) cn.Clos

温馨提示

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

评论

0/150

提交评论