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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

图书管理系统.docx

1、图书管理系统河 北 理 工 大 学数据库课程设计说明书设计题目:图书销售管理系统姓 名:李想专 业:地理信息系统指导教师:交通与测绘学院年 月 日目录1 概述 11.1 系统背景 12 需求分析 13 结构设计 14 行为设计 25 系统开发流程 35.1 数据库结构设计 35.2 创建“图书销售管理”工程 46 系统使用说明及主要代码 87 课程设计体会及心得 16参考文献 171 概述1.1 系统背景图书销售在我国古时已有,现已成为我国零售业的一种重要形态。随着图书销售的发展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,这样就迫切的需要引入新的思想技术和

2、管理技术进入到图书销售管理之中。在目前状态下,图书销售存在零售业、商业、企业所共有的落后的一面,如:不能有效地管理每一种图书,盘点效率低等,而且在图书销售日常管理中,图书进、销、存、决策以经验为主,缺乏实时分析功能,管理人员及时传递资料的要求始终得不到满足。随着图书销售的发展,其经营管理也变得越加复杂,日常所需处理的数据量也逐渐增大,原始的人工管理已无法应对复杂的市场。本图书销售管理系统,依靠现代化的计算机信息处理技术来管理图书销售,从而节省了大量的人力和物力,改善了员工的工作条件,减轻了劳动强度,并能快速反映出图书销售的各种信息,加强图书销售的管理。2 需求分析由于图书种类繁多,人工管理存在

3、诸多不方便因素。而使用计算机对图书销售进行管理,具有手工管理所无法比拟的优点。例如:查找方便、可靠性高、存储量大、保密性好、成本低等。本系统主要面向系统管理员,能满足用户的各种操作需求。其主要功能如下:系统用户管理:管理员数据管理和查找;图书信息管理:图书信息数据管理和查找;图书订单管理:图书订单管理和查找。3 结构设计按照软件开发的流程,进行完需求分析,就应该进行结构设计,主要解决实现本系统需求的程序的模块问题。本系统需要完成的功能有管理员信息管理、图书信息管理、订购信息管理三个部分,其E-R图如下: 图书销售管理系统E-R图4 行为设计根据需求分析和结构设计,得到如下图所示的图书销售管理系

4、统功能模块结构图。5 系统开发流程5.1 数据库结构设计按照前面分析的图书销售管理系统数据字典,设计出图书销售管理系统数据库中各个数据表,包括图书信息表、管理员数据表、图书订购数据表共3个数据表。本图书销售管理系统数据库命名为“图书销售”,数据库中的各个数据表名称和结构分别如下:管理员列名数据类型长度允许空说明admin_namevarchar20保存用户命令admin_pwdvarchar10保存口令其中,admin_name定义为主键。 图书信息列名数据类型长度允许空说明book_idint4保存图书编号book_namevarchar50保存图书书名book_writervarchar2

5、0保存图书作者姓名book_pressvarchar50保存图书出版社名称book_pdatesmalldatetime4保存图书出版日期book_briefvarchar1000保存图书内容简介book_pagesmallint2保存图书页数book_pricesmallmoney4保存图书单价其中,book_id定义为主键。 订购记录列名数据类型长度允许空说明rec_idint4保存记录编号book_idvarchar10保存图书编号book_sumvarchar18保存图书订购数量sale_datesmalldatetime50保存图书订购日期其中,rec_id定义为主键。使用 SQL

6、Server 2000创建数据库“图书销售”。5.2 创建“图书销售管理”工程使用Visual Basic 6.0创建“图书销售管理”工程,用于实现图书销售系统的基本数据管理。在“图书销售管理”工程下依此创建“图书信息管理”窗体(frmBooks)、“订单管理”窗体(frmSubscribe)、“图书信息”窗体(frmBookInfo)、“系统登录”窗体(frmLogon)、“系统用户管理”窗体(frmManagers)和“图书销售管理”窗体(frmMain)。其具体设计如下图所示:依此设置各窗体及窗体中控件的属性并为各窗体添加代码。打开工程属性对话框,在“通用”选项卡的“启动对象”下拉列表框

7、中选择frmLogon,将“系统登录”设置为启动窗体。6 系统使用说明及主要代码图书销售管理系统通过“系统登录”进入“图书销售”主窗体。点击系统管理子菜单可进入“图书信息管理”窗体、“系统用户管理”窗体和“订单管理”窗体,并执行相应功能。单击“订单管理”窗体中的“图书信息”按钮即可进入“图书信息”窗体显示当前选中的图书的图书信息。“系统登录”主窗体的代码如下:Const MaxLogTimes As Integer = 3 定义允许尝试登录的最大次数Private Sub Form_Load() 清空用户名和口令文本框 txtName = txtPwd = End SubPrivate Sub

8、 cmdCancel_Click() 请求用户确认是否真的退出系统登录 If MsgBox(你选择了退出系统登录,退出将不能启动管理系统! & vbCrLf _ & 是否真的退出?, vbYesNo + vbQuestion, 登录验证) = vbYes Then Unload Me 卸载登录窗体 End IfEnd SubPrivate Sub cmdOk_Click() Dim objCn As Connection, objRs As Recordset, strSql$ If Trim(txtName) = Then 检验是否输入用户名 MsgBox 请输入用户名!, vbExclam

9、ation, 登录验证 txtName = txtName.SetFocus Exit Sub End If If Trim(txtPwd) = Then 检验是否输入登录口令 MsgBox 请输入登录口令!, vbExclamation, 登录验证 txtPwd = txtPwd.SetFocus Exit Sub End If 静态常量intLogTimes用于保存用户请求验证的次数 Static intLogTimes As Integer intLogTimes = intLogTimes + 1 保存当前登录次数 If intLogTimes MaxLogTimes Then 超过允

10、许的登录次数,显示提示信息 MsgBox 你已经超过允许的登录验证次数! & vbCr _ & 将退出登录!, vbCritical, 登录验证 End 结束应用程序 End If 输入合法,进一步检验正确性 创建与数据库的联接 Set objCn = New Connection 实例化联接对象 With objCn 建立数据库联接 .Provider = SQLOLEDB .ConnectionString = Integrated Security=SSPI;Data Source=(local); & Initial Catalog=图书销售 .Open End With strSql

11、 = select admin_pwd from 管理员 where admin_name= & Trim(txtName) & 执行查询获得用户登陆密码 Set objRs = New Recordset With objRs Set .ActiveConnection = objCn .CursorLocation = adUseClient .CursorType = adOpenStatic .Open strSql If .RecordCount 1 Then MsgBox 用户名输入错误!, vbCritical, 登录验证 txtName.SetFocus txtName.Sel

12、Start = 0 txtName.SelLength = Len(txtName) Else If .Fields!admin_pwd Trim(txtPwd) Then MsgBox 口令错误,请重新输入!, vbCritical, 登录验证 txtPwd.SetFocus txtPwd = Else 显示登录成功信息 MsgBox 欢迎使用图书销售管理系统!, vbInformation, 登录成功 Unload Me 关闭登录窗体 frmMain.Show 显示系统主窗体 End If End If End With objCn.Close 关闭数据库连接 Set objCn = No

13、thing 释放数据库连接 Set objRs = NothingEnd Sub“图书销售”主窗体的代码如下:Private Sub mnuExit_Click() Unload Me 关闭系统主窗体End SubPrivate Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) If MsgBox(你选择了关闭图书销售管理系统,是否继续?, _ vbYesNo + vbQuestion, 图书销售管理系统) = vbYes Then 判断在所有子窗体关闭之后才能关闭系统主窗体 If Not Me.ActiveFo

14、rm Is Nothing Then MsgBox 请先关闭打开的子窗体!, vbCritical, 图书销售管理 Cancel = 1 End If Else Cancel = 1 End IfEnd SubPrivate Sub mnuAdmins_Click() frmManagers.Show: frmManagers.SetFocusEnd SubPrivate Sub mnuBooks_Click() frmBooks.Show: frmBooks.SetFocusEnd SubPrivate Sub mnuCascade_Click() Me.Arrange vbCascade

15、层叠排列子窗体End SubPrivate Sub mnuIcons_Click() Me.Arrange vbArrangeIcons 重新排列最小化的子窗体图标End SubPrivate Sub mnuSubscribe_Click() frmSubscribe.Show: frmSubscribe.SetFocusEnd SubPrivate Sub mnuTileH_Click() Me.Arrange vbTileHorizontal 水平平铺子窗体End SubPrivate Sub mnuTileV_Click() Me.Arrange vbTileVertical 垂直平铺子

16、窗体End Sub“订单管理”窗体的代码如下:Dim objCn As Connection, objRs As RecordsetPrivate Sub Form_Load() 建立数据库联接 Set objCn = New Connection 实例化联接对象 With objCn 建立数据库联接 .Provider = SQLOLEDB .ConnectionString = Integrated Security=SSPI;Data Source=(local); & Initial Catalog=图书销售 .Open End With 获取订购记录 Set objRs = New

17、Recordset 实例化objRs对象 With objRs Set .ActiveConnection = objCn .CursorLocation = adUseClient 指定使用客户端游标 .CursorType = adOpenStatic 指定使用静态游标 .LockType = adLockOptimistic .Open SELECT * FROM 订购记录 End With Set DataGrid1.DataSource = objRs If objRs.RecordCount = 0 Then MsgBox 无图书订购记录! cmdBookInfo.Enabled

18、= False cmdFilter.Enabled = False cmdDeleteAll.Enabled = False cmdDelete.Enabled = False End IfEnd SubPrivate Sub Form_Resize() DataGrid1.Width = Abs(Me.Width - 2 * DataGrid1.Left - 100) DataGrid1.Height = Abs(Me.Height - DataGrid1.Top - 800 - cmdExit.Height) cmdExit.Top = DataGrid1.Top + DataGrid1.

19、Height + 200 cmdBookInfo.Top = cmdExit.Top cmdFilter.Top = cmdExit.Top cmdDeleteAll.Top = cmdExit.Top cmdDelete.Top = cmdExit.TopEnd SubPrivate Sub cmdDelete_Click() If objRs.AbsolutePosition 0 Then If MsgBox(是否删除rec_id= & objRs!rec_id & 的订购记录?, vbQuestion + vbYesNo, 删除记录) = vbYes Then objRs.Delete

20、objRs.MoveNext If objRs.EOF Then objRs.MoveLast If objRs.RecordCount = 0 Then MsgBox 无图书订购记录! cmdBookInfo.Enabled = False cmdFilter.Enabled = False cmdDeleteAll.Enabled = False cmdDelete.Enabled = False End If End If End IfEnd SubPrivate Sub cmdDeleteAll_Click() If objRs.AbsolutePosition 0 Then If M

21、sgBox(是否删除全部的订购记录?, vbQuestion + vbYesNo, 删除记录) = vbYes Then objCn.Execute truncate table 订购记录 objRs.Requery cmdBookInfo.Enabled = False cmdFilter.Enabled = False cmdDeleteAll.Enabled = False cmdDelete.Enabled = False End If End IfEnd SubPrivate Sub cmdFilter_Click() Dim strFilter$ strFilter = Input

22、Box(请输入图书编号(book_id):, 按图书编号筛选) If strFilter = Then objRs.Filter = adFilterNone objRs.Requery Else objRs.Filter = book_id= & Val(strFilter) End IfEnd SubPrivate Sub cmdBookInfo_Click() Dim strSql$, objTem As Recordset, objStm As Stream Set objTem = New Recordset Set objStm = New Stream With objTem I

23、f objRs.AbsolutePosition 0 Then strSql = select * from 图书信息 where book_id= & objRs.Fields!book_id Set .ActiveConnection = objCn .CursorLocation = adUseClient 指定使用客户端游标 .CursorType = adOpenStatic 指定使用静态游标 .Open strSql End If If .RecordCount 0 Then 显示图书信息 frmBookInfo.txtID = .Fields!book_id frmBookInf

24、o.txtName = .Fields!book_name frmBookInfo.txtWriter = .Fields!book_writer frmBookInfo.txtPublish = .Fields!book_press frmBookInfo.txtDate = .Fields!book_pdate frmBookInfo.txtPage = .Fields!book_page frmBookInfo.txtPrice = .Fields!book_price frmBookInfo.txtBrief = .Fields!book_brief frmBookInfo.Show

25、vbModal Else MsgBox 图书信息记录已删除,请删除该订购记录! End If End With Set objTem = Nothing Set objStm = NothingEnd SubPrivate Sub DataGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then frmSubscribe.PopupMenu mnuOperateEnd SubPrivate Sub mnuDelete_Click()

26、执行“删除当前”按钮单击事件,删除当前记录 cmdDelete.Value = TrueEnd SubPrivate Sub mnuDeleteAll_Click() 执行“删除全部”按钮单击事件,删除全部记录 cmdDeleteAll.Value = TrueEnd SubPrivate Sub mnuFilter_Click() 执行“数据筛选”按钮单击事件,设置筛选条件 cmdFilter.Value = TrueEnd SubPrivate Sub mnuBook_Click() 执行“图书信息”按钮单击事件,显示当前订单记录图书信息 cmdBookInfo.Value = TrueE

27、nd SubPrivate Sub cmdExit_Click() Unload MeEnd SubPrivate Sub Form_Unload(Cancel As Integer) Set objRs = Nothing 释放记录集对象 objCn.Close 关闭数据联接 Set objCn = Nothing 释放数据库联接End Sub“图书信息管理”、“系统用户管理”和“图书数信息”窗体的代码在此不再列举。“图书销售”和“订单管理”窗体的执行效果如下图所示: 图书销售执行效果图 订单管理执行效果图7 课程设计体会及心得这次为期两周的数据库课程设计,使我紧张而又忙碌。两周来,每天忙于

28、创建窗体、添加代码、调试程序,检查错误。创建窗体、添加代码仅是占用时间,而调试程序,检查错误却使我十分焦虑。经过一遍又一遍的调试,当程序终于顺利执行时,我终于可以松一口气。调试程序占据了课程设计的大部分时间。尽管代码添加前已经过缜密考虑,但真正执行时依然错误不断。可见,要想做好程序开发的人不但要心思细腻,还要非常有耐心。本次课程设计结束了,我虽然只做出了一些简单的界面,执行了一些基本的功能,但我依然感觉受益匪浅。通过本次课程设计,不但温习了以前所学的关于Visual Basic 6.0的知识,而且更深入的学习了VB和SQL Server的功能,并加以运用。同时也让我意识到自己的不足,勉励我在今后的编程过程中努力弥补。本次课程设计对我们而言是一次很好的锻炼。我们于实践中发现问题,了解自己的优势和劣势,是对我们的一次小检查。在这次课程设计中,同学们互相请教,互帮互助,既使得彼此之间的关系更加融洽,也提升了大家解决问题的能力。通过本次课程设计,我感触颇深,也受益良多。参考文献1 SQL Server 数据库开发经典实例精解/夏邦贵,刘凡馨北京:机械工业出版社,2006.12 Visual Basic 程序设计教程/柴欣,李惠然主编-北京:海洋出版社,2001.83 数据库原理与应用教程第2版/何玉洁编著.-北京:机械工业出版社,2007.2

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

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