ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:220.73KB ,
资源ID:12774763      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12774763.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书管理论文.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图书管理论文.docx

1、图书管理论文数据库课程设计图书馆管理系统设计说明书目录一. 图书馆管理系统需求分析.31.1图书登记借阅功能31.2图书查询功能.3二. 结构设计.4三. 数据库设计43.1建立数据库.4四. 界面设计./.54.1创建主窗体.64.2创建个子窗体.74.3建立公共模块10五. .窗体代码.115.1主窗体代码.115.2图书登记子窗体代码.125.3增加用户子窗体代码.145.4修改密码子窗体代码.155.5图书资料管理子窗体代码.175.6查询子窗体代码.215.7用户登录子窗体代码.23六. 课程设计总结和感想.25一、需求分析现某图书馆需要管理其各种人员和图书信息,希望实现办公的信息化

2、,通过建立一个图书管理系统来管理图书。其完成的功能如下:(1) 可以实现图书的登记、借阅管理。(2) 可以实现对图书的各种信息的查询,包括逐个浏览,以及对图书信息的增加、删除和编辑操作。另外,可以根据输入的信息来检索某个图书的信息。系统的功能模块图如图1所示。图书登记实体E-R图如图2所示。图书借阅实体E-R图如图3所示。图1 系统的功能模块图图2 图书登记实体E-R图图3 图书借阅实体E-R图查询输出实体E-R图如图7所示。图7 查询输出实体E-R图二、结构设计根据上面的需求分析,可以设计下面的几个模块。图书管理模块:用来实现图书的登记、借阅、赔偿。图书资料模块:用来实现图书的查询输出。系统

3、管理模块:用来实现用户的增加、删除和修改等操作。三、数据库设计这里的数据库采用Access,用ADO作为连接数据对象。建立Access 数据库 启动Access,建立一个空的数据库book.mdb,如图8所示。 使用程序设计器建立系统需要的表格如下。 图8 建立数据库book.mdb 图9 图书登记表图书借阅表,如图10所示。 图书资料表,如图12所示。系统管理表,如图13所示。 四界面设计设计好的界面如图20所示。菜单应用程序中,有5个菜单选项,每个选项对应着E-R图的一个子项目。1、创建主窗体首先创建一个工程,命名为图书管理系统,选择“工程”“添加MDI窗体”命令,则在项目中添加了主窗体。

4、该窗体的一些属性如表1所示。 属 性值Caption图书管理系统NameMainMenuMainmenu1WindowstateMaxsize将“菜单”组件从“工具箱”拖到窗体上。创建一个 Text 属性设置为“文件”的顶级菜单项,且带有名为“关闭”的子菜单项。类似地创建一些菜单项,如表2所示。表2 菜 单 项 表菜 单 名 称Text属性功 能 描 述MenuItem1图书管理顶级菜单,包含子菜单MenuItem2图书登记调出图书登记窗体MenuItem3图书借阅调出图书借阅窗体MenuItem4图书赔偿调出图书赔偿窗体MenuItem5图书资料顶级菜单,包含子菜单MenuItem6查询输出

5、调出查询输出窗体MenuItem7值班管理顶级菜单,没有子菜单MenuItem8投诉管理顶级菜单,没有子菜单MenuItem9系统管理顶级菜单,包含子菜单MenuItem10增加用户调出用户窗体MenuItem11修改密码调出密码窗体MenuItem12退出系统退出2、创建各子窗体在这个项目中,要创建的子窗体如表3所示。表3 所有子窗体子 窗 体 名Text图书登记Frmdengji图书借阅Frmjieyue图书赔偿frmpeichang增加新用户frmadduser查询输出Frmfind登录系统Frmlogin修改密码frmchangepwd下面分别给出这些子窗体,以及它们所使用的控件。(1

6、) 图书登记子窗体如下图所示,其控件如表4所示。图22 图书登记子窗体表4 图书登记子窗体控件控 件 类 别控件Name控件TextLabelLabel1编号Label2书名Label3类型Label4购买日期Label5定价TextBoxText1(空)Text2(空)Text3(空)Text4(空)Text5(空)CommandButtonCommand1增加记录Command2删除记录Command3下一条Command4上一条Command5第一条Command6最后一条Command7退出ADO DataAdodc1(空)DataGridDataGrid1(空)图书借阅和图书赔偿子窗

7、体分别如图23和图24所示,因为它们的控件与图书登记子窗体的雷同,在此不作介绍。图23 图书借阅子窗体 (2) 增加用户子窗体如图25所示,其控件如表5所示。图25 增加用户子窗体表5 增加用户子窗体控件控 件 类 别控件Name控件TextLabelLabel1输入用户名Label2输入密码Label3确认密码Label4选择权限TextBoxText1(空)Text2(空)Text3(空)ComboBoxComb1(空)CommandButtonCommandl确定Command2取消(3) 修改密码子窗体如图26所示。图26 修改密码子窗体其控件如表6所示。控 件 类 别控件Name控件

8、TextTextBoxText1(空)ComboBoxCombo1MSFlexGridMSFlexGrid1(4) 查询子窗体如图28所示,其控件如表7所示。图28 查询子窗体表7 查询子窗体控件控 件 类 别控件Name控件TextOptionButtonOption1按编号查询Option2按购买日期查询LabelLabel1从Label2到Label3从Label4年Label5月Label6日Label7到Label8年Label9月Label10日Combo(0) ComboBoxCombo1(空)Combo(1) ComboBoxCombo1(空)Comboy(0) ComboBo

9、xComboy(空)Comboy(1) ComboBoxComboy(空)Combom(0) ComboBoxCombom(空)Combom(1) ComboBoxCombom(空)Combod(0) ComboBoxCombod(空)Combod(1) ComboBoxCombod(空)CommandButtonCommand1查询Command2取消(5) 用户登录子窗体如图29所示。 图29 用户登录子窗体 建立公共模块1、显示目录建立公共模块可以提高代码的效率,同时使得修改和维护代码都很方便。创建公共模块的步骤如下:(1) 在菜单中选择“工程”“添加模块”命令,则出现模块对话框,如图3

10、2所示。(2) 选择模块图标后,单击“打开”按钮,则模块已经添加到项目中了。默认情况下名为Module1。 (3) 在模块中定义整个项目的公共变量。Public conn As New ADODB.Connection 标记连接对象Public userID As String 标记当前用户IDPublic userpow As String 标记用户权限Public find As Boolean 标记查询Public sqlfind As String 查询语句Public rs_data1 As New ADODB.RecordsetPublic findok As BooleanPub

11、lic frmdata As BooleanPublic Const keyenter = 13 enter键的ASCII码在主窗体添加完菜单之后,就要为各个子菜单创建事件处理程序。五.窗体代码1.主窗体代码在本项目中,子菜单事件都是Click事件,其代码如下。下面是响应“增加用户”子菜单Click事件,调出增加用户窗体代码。Private Sub adduser_Click()frmadduser.ShowEnd Sub下面是响应“查询输出”子菜单Click事件,调出查询输出窗体代码。Private Sub chaxunshuchu_Click()frmfind.ShowEnd Sub下面是

12、响应“退出”子菜单Click事件,调出退出窗体代码。Private Sub exit_Click()Unload MeEnd Sub下面是响应“图书登记”子菜单Click事件,调出图书登记窗体代码。Private Sub checkin_Click()frmdengji.ShowEnd Sub下面是响应“修改密码”子菜单Click事件,调出修改密码窗体代码。Private Sub changepwd_Click()frmchangepwd.ShowEnd Sub下面是响应“图书借阅”子菜单Click事件,调出图书借阅窗体代码。Private Sub borrow_Click()frmjieyu

13、e.ShowEnd Sub2.各子窗体的代码在各个子窗体建立好后,就可以根据各个子窗体的功能给它们添加相应代码了。(1) 图书登记子窗体代码本窗体用来填写图书登记的信息,用ADO来连接数据库,是本窗体的重点。采用MDI的子程序,所以运行后,它出现在主程序的界面下,如图33所示。图33 图书登记子窗体按钮控件要求先填写基本信息,然后与数据库信息比较。Private Sub Command1_Click()On Error GoTo adderrText1.SetFocusAdodc1.Recordset.AddNewExit Subadderr:MsgBox Err.DescriptionEnd

14、 SubPrivate Sub Command2_Click()On Error GoTo deleteerrWith Adodc1.RecordsetIf Not .EOF And Not .BOF ThenIf MsgBox(删除当前记录吗?, vbYesNo + vbQuestion) = vbYes Then.Delete.MoveNextIf .EOF Then .MoveLastEnd IfEnd IfEnd WithExit Subdeleteerr:MsgBox Err.DescriptionEnd SubPrivate Sub Command3_Click()Adodc1.R

15、ecordset.MoveNextIf Adodc1.Recordset.EOF ThenMsgBox 这是最后一条记录, vbOKCancel + vbQuestionAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command4_Click()Adodc1.Recordset.MovePreviousIf Adodc1.Recordset.BOF ThenMsgBox 这是第一条记录, vbOKCancel + vbQuestionAdodc1.Recordset.MoveFirstEnd IfEnd SubPrivate Sub Co

16、mmand5_Click()If Adodc1.Recordset.EOF ThenMsgBox 记录空, vbOKCancel + vbQuestionEndElseAdodc1.Recordset.MoveFirstExit SubEnd SubPrivate Sub Command6_Click()If Adodc1.Recordset.RecordCount = 0 ThenMsgBox 空记录, vbOKCancel + vbQuestionEndElseAdodc1.Recordset.MoveLastEnd IfEnd SubPrivate Sub Command7_Click(

17、)MDIForm1.Showfrmdengji.HideEnd Sub图书借阅窗体运行后如图34所示, 图34 图书借阅子窗体运行效果(2) 增加用户子窗体代码增加用户子窗体是用来增加用户的用户名、密码和权限的。其运行效果如图36所示。单击“确定”按钮后,还要返回一个信息框,提示成功信息,如图37所示。 图36 增加用户子窗体运行效果 图37 成功信息框窗体代码的思路是,收集输入的表中的字符串,然后与数据库中的系统的用户数据比较,如果不存在,则允许添加。Private Sub Command1_Click()Dim sql As StringDim rs_add As New ADODB.Re

18、cordsetIf Trim(Text1.Text) = ThenMsgBox 用户名不能为空, vbOKOnly + vbExclamation, Exit SubText1.SetFocusElsesql = select * from 系统管理rs_add.Open sql, conn, adOpenKeyset, adLockPessimisticWhile (rs_add.EOF = False)If Trim(rs_add.Fields(0) = Trim(Text1.Text) ThenMsgBox 已有这个用户, vbOKOnly + vbExclamation, Text1.

19、SetFocusText1.Text = Text2.Text = Text3.Text = Combo1.Text = Exit SubElsers_add.MoveNextEnd IfWendIf Trim(Text2.Text) Trim(Text3.Text) ThenMsgBox 两次密码不一致, vbOKOnly + vbExclamation, Text2.SetFocusText2.Text = Text3.Text = Exit SubElseIf Trim(Combo1.Text) system And Trim(Combo1.Text) guest ThenMsgBox

20、请选择正确的用户权限, vbOKOnly + vbExclamation, Combo1.SetFocusCombo1.Text = Exit SubElsers_add.AddNewrs_add.Fields(0) = Text1.Textrs_add.Fields(1) = Text2.Textrs_add.Fields(2) = Combo1.Textrs_add.Updaters_add.Close下面是返回成功信息对话框的代码:MsgBox 添加用户成功, vbOKOnly + vbExclamation, Unload MeEnd IfEnd IfEnd Sub(3) 修改密码子窗

21、体代码修改密码子窗体是用来修改用户密码的。其运行效果如图38所示。图38 修改密码子窗体运行效果在“确定”按钮的Click事件中添加如下代码:Private Sub Command1_Click()Dim rs_chang As New ADODB.RecordsetDim sql As StringIf Trim(Text1.Text) Trim(Text2.Text) ThenMsgBox 密码不一致!, vbOKOnly + vbExclamation, Text1.SetFocusText1.Text = Text2.Text = Elsesql = select * from 系统管

22、理 where 用户名= & userID & rs_chang.Open sql, conn, adOpenKeyset, adLockPessimisticrs_chang.Fields(1) = Text1.Textrs_chang.Updaters_chang.CloseMsgBox 密码修改成功, vbOKOnly + vbExclamation, Unload MeEnd IfEnd Sub在上述代码中,首先比较两个表中的数据是否一致,然后用rs_chang.Fields(1) = Text1.Text语句把代码输入到数据库中。最后,用MsgBox 密码修改成功, vbOKOnly

23、 + vbExclamation,语句弹出一个信息框,告诉修改成功,如图39所示。显示目录(4) 图书资料管理子窗体代码该子窗体是用来管理图书资料的。其运行效果如图40所示。图40 库房管理子窗体实际上,设计库房管理子窗体的程序代码与增加用户子窗体的代码在思路上是完全相同的。就是在DataGrid的文本框中显示图书进出的清单,最后把填写的明细存储到数据库中。检查代码如下:Option ExplicitDim rs_data2 As New ADODB.RecordsetDim select_row As StringDim showgrid2 As BooleanDim rs_custom A

24、s New ADODB.RecordsetDim jinchu As String 进出库标志Dim modify As Boolean 修改状态标志Private Sub cmdexit_Click()Unload MeEnd SubPrivate Sub Form_Load()On Error GoTo loaderrorDim sql As Stringsql = select * from 图书资料rs_custom.CursorLocation = adUseClientrs_custom.Open sql, conn, adOpenKeyset, adLockPessimistic

25、While Not rs_custom.EOFCombo1.AddItem rs_custom.Fields(0)rs_custom.MoveNextWendfindok = Truemodify = False 非修改状态showgrid2 = Falsedisplaygrid1 调用显示Datagrid1子程序loaderror:If Err.Number 0 ThenMsgBox Err.DescriptionEnd IfEnd Sub显示msflexgrid1子程序Public Sub displaygrid1()Dim i As IntegerOn Error GoTo displayerrorsetgridsetgridheadMSFlexGrid1.Row = 0If Not rs_data1.EOF Thenrs_data1.MoveFirstDo While Not rs_data1.EOFMSFlexGrid1.Row = MSFlexGrid1.Row + 1MSFlexGrid1.Col = 0If Not IsNull(rs_data1.Fields(0) Th

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1