资源描述
1课程设计题目
图书销售管理系统
2功能描述
图书销售管理系统是为了对书店销售实行计算机化的管理,以提高工作效率,方便用户。主要功能有对店内藏书、图书查询、数据管理、销售统计等进行管理和基本资料管理以及对系统自身的用户权限管理。处理过程。系统管理主要任务是提高系统安全性和对系统提供良好的维护,如用户权限可以为用户提供权限服务。
本系统图书销售管理系统是以利用现代计算机及存储于服务器的数据库来实现管理信息的增加、删除、保存、统计等功能,以满足书店销售管理部门的实际要求为目标。本设计追求的是简洁、易操作的用户界面和功能完善、稳定的操作系统。
3概要设计
3.1编写目的和背景
图书销售管理在手工操作时代,工作非常繁琐,需要大量的人力、物力和财力,极大的浪费了书店的资源,对于书店的管理人员来说,书店管理包括图书进货管理、图书查询管理、图书销售管理等等。而这些项目在过去手工操作时代,需要手工记录这些事情,不但麻烦,还经常出错,给广大用户带来很多不便。为了更好的为广大住户服务,我们决定开发一套图书销售管理系统,帮助书店管理人员从复杂的图书销售管理之中解放出来。使之更加方便、快捷以提高工作效率。
3.2系统主要功能结构
图书销售管理系统主要有三个功能模块:图书信息管理、图书销售管理、退出系统。
其中推出系统有退出一个窗体用于退出系统。点击确定的时候询问用户是否真的退出系统,点击是退出,点击否则返回系统。
图书信息管理中能修改、查询、添加、删除等,用来管理书籍的书名,作业,出版社,出版时间,价格等信息。
购买图书中可以购买书籍查看订单等。
图书销售管理系统模块如图1所示。
图书销售管理系统
图书信息管理
图书销售管理
添加图书信息
查询图书信息
删除图书信息
购买书籍
查看订单
退出系统
修改图书信息
图1 顶层数据流图
3.2.1系统功能模块分析
(1)登陆模块
包括系统登录窗体,用户可通过登录窗体进入系统。
(2)系统主窗体模块
设计系统主窗体。系统主窗体使用MDI窗体,在窗体中通过菜单来,执行各项系统功能。包括信息管理、查询、密码修改和窗口等主要功能,在接下来设计的窗体中,将它们的MDIChild属性设置为True。
(3)数据管理模块
在主窗体点击数据管理菜单时,则进入数据理界面,可以对书籍基本信息进行添加、删除、修改、查询等功能。
(4) 图书销售模块
主要设计图书的销售以及图书编号、类型、图书名称、状态、作者、价格、出版社、入库时间等基本资料。以及对上述基本资料的上一条信息、购买、查询、下一条信息、查看定单、取消等操作。方便用户了解图书的基本资料和库存情况。
3.3数据库设计
针对一般图书销售管理系统的需求,通过对销售管理工作过程的内容和数据流程的分析,设计数据项和数据结构。本实例根据具体情况设计规划出学生个人信息实体、家长情况实体、用户实体等。
这里的数据库采用Access,用ADODC作为链接数据对象。
书籍个人信息实体属性图如图2所示。
书籍信息实体
书编号
书名
作者
出版社
时间
类型
状态
价格
图书2实体属性图
3.3.1建立Access数据库
启动Access,建立一个空的数据库:图书系统.mdb,使用程序设计器建立系统需要的表格如下。购书统计表,如图3所示;图书资料表,如图4所示。
图3 购书统计表
图4 图书资料
3.3.2连接数据库
在Visual Basic环境下,在程序设计的公共模块中,先定义ADO链接对象。
语句如下:
Public cn As ADODB.Connection '连接的定义
Public rs As ADODB.Recordset '记录集的定义
Sub main()
Set cn = New ADODB.Connection '实例化连接对象
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\personinfo.mdb;Persist Security Info=False" '给连接赋字符串
cn.Open '打开连接
Set rs = New ADODB.Recordset
frmdl.Show
End Sub
4详细设计
4.1登录窗体
4.1.1界面设计
设计好的登录界面如图5所示。
窗体上有二个Label、两个TextBox、一个按钮。
图5 登录窗体
4.1.2相关属性设置
创建一个窗体,并添加相关控件设置其属性,如下表所示。
表1登录窗体的属性
控件名称
属性
值
Label1
Caption
用户名
Label2
Caption
密码
TextBox2
PasswordChar
*
TextBox1
Text
123
Button1
Caption
确定
4.2界面设计
设计好的界面如图6所示。
图6图书销售管理系统界面
这是一个多文档界面(MDI)应用程序,可以同时显示多个文档,每个文档显示在各自的窗体中。菜单应用程序中,有3个菜单项分别实现相应的功能。
4.2.1创建主窗体
首先创建一个工程,命名为图书销售管理系统,选择“工程”→“添加MDI窗体”命令,则在项目中添加了主窗体,并设置相关属性。
下面主要介绍窗体上菜单的实现。如表2所示。
表2菜单项表
菜单名称
Text属性
功能描述
Shujvguanli
数据管理
顶级菜单,调出数据管理窗体
Qinggoumaitushu
请购选图书
顶级菜单,调出购买窗体
Gongjv
工具
顶级菜单,退出系统
4.3子窗体模块
4.3.1数据管理子窗体
新建窗体,将其属性MDIChild设成True,Name属性为数据管理,则这个窗体成为MDI窗体的子窗体。并添加相控件设置其相关属性。可以参看所有书籍资料,并可以管理数据库,添加,修改,删除书籍的类型、价格、书名、作者等,界面如图7所示。
图7 数据管理窗口
4.3.2请选购图书子窗体
(1)新建窗体,将其属性MDIChild设置成True,Name属性设为qinggouxuantushu,则这个窗体成为MDI窗体的子窗体。并添加相控件设置其相关属性,界面如图8所示。
图8 购买图书窗体
数据环境设计器为数据访问提供了一个交互式的设计环境。在设计时,首先是建立Connection对象并指定连接的数据库,然后创建Command对象来连接指定的数据表,从而获得对数据表的连接操作,最后把它们绑定到数据报表设计器上。之后建立DataReport,设置其DataSource与DataMember属性来确定数据来源。点击购买按钮后向数据库提交购买的数据,并可以查看订单显示购买的书籍,合计价格操作,如图9所示。
图9 查看订单窗口
4.3.3退出系统窗体
新建窗体,将其属性MDIChild设置成True,Name属性设为gongjv,则这个窗体成为MDI窗体的子窗体。并添加相控件设置其相关属性,界面如图10所示。
图10 退出系统
5效果及存在问题
在设计本管理系统的过程中,从界面设计到代码的编写都曾遇到诸多的问题,但本着循序渐进稳扎稳打的原则,逐步去解决问题,程序慢慢变得功能强大,知道最后能够正常运行,为此付出了一定的时间和经历。体统可以实现书籍信息的管理,图书销售的管理。但是不足的地方是在书籍信息管理中添加书籍时,不能重复添加相同的书籍,导致程序有瑕疵。
6心得体会
通过近一周的程序设计,假日酒店管理系统设计完毕。但是由于是初次使用Visual Basic 6.0软件设计,所以该系统还有许多不尽如人意的地方,用户界面不够美观,出错处理不够多等方面问题,功能不够齐全。这些都有待进一步改善。
通过这学期的学习和该系统的设计,学到了很多东西,对Visual Basic 6.0编程语言和技术有了一定的了解。总的来说,该系统的功能稳定性和操作的灵活性都有着不小的差距。因此在日后,我会通过学习和练习不断地完善该系统,使它能应用到实际中,在现实生活中得到充分应用。我充分的感觉到此次课程设计的锻炼对我以后的课程设计来说,是一次难得的积累知识和经验的机会,它对我编程技巧的提高起了十分重要的作用
在本次课程设计中通过学生信息管理系统实例介绍用Visual Basic 6.0开发数据库应用程序的过程,介绍了开发应用系统时的系统分析,功能设计,数据库设计以及数据库的实现,具体描述了实例中各种Visual Basic 6.0对象的设计方法,较为系统、综合、全面地总结了Visual Basic 6.0的应用。
7参考文献
[1] 刘天惠. Visual Basic程序设计教程[M].北京:清华大学出版社,2010.2:210-221.
[2] 余芳.中文access2003应用实例教程[M].北京:冶金工业出版社,2009.3:213-246.
[3] 陈鹏.VB访问数据库方法简介[J].南京海南大学.2009,12(03):10-13.
[4] 启明工作室.Visual Basic+Access数据库应用系统开发与实例[M].北京:人民邮电出版社,2009.11: 41-46.
[5] 王新民,张彦玲. Visual Basic程序设计与数据库应用[M].北京:电子工业出版社,2008.2: 163-175.
[6] 许军,亚卫忠.VB结合Access快速开发数据库管理系统[J].华南金融电脑.2009,4(09): 5-7.
[7] 柴明建. Visual Basic数据库访问技术漫谈[J].计算机应用.2010,3(06):2-5.
8附录:各功能模块的主要代码
8.1登录窗体代码
Command1的点击事件。
Private Sub Command1_Click()
If Text1.Text = "123" And Text2.Text = "123" Then
Unload Me
主窗体.Show
Else
MsgBox "登录失败,重新登录!"
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
End If
8.2主窗体代码
本项目中,子菜单事件都是Click事件,这里先给出主窗体部分的代码。
Private Sub qinggouxuantushu_Click()
请购选图书.Show
End Sub
Private Sub Adodc1_WillMove(ByVal adReason As ADODB.EventReasonEnum, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
End Sub
Private Sub MDIForm_Load()
End Sub
Private Sub qinggouxuan_Click()
请购选图书.Show
End Sub
Private Sub shujvguanli_Click()
数据管理.Show
End Sub
Private Sub tuichu_Click()
退出.Show
End Sub
8.3各子窗体代码
8.3.1数据管理子窗体
本窗体具有添加(cmd_add)、修改(cmd_update)、查询(cmd_find)、删除(cmd_del)等按钮。代码如下:
Private Sub Command1_Click()
Adodc1.Recordset.UpdateBatch
End Sub
Private Sub Command2_Click()
Adodc1.Recordset.AddNew
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Private Sub Command5_Click()
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then
Adodc1.Recordset.MovePrevious
End If
End Sub
Private Sub Form_Load()
End Sub
8.3.2购书子窗体代码
Private Sub Command1_Click()
Adodc2.Refresh
Adodc2.Recordset.AddNew
Adodc2.Recordset.Fields("编号") = CStr(Text1.Text)
Adodc2.Recordset.Fields("所购书籍") = CStr(Text2.Text)
Adodc2.Recordset.Fields("价格合计") = CInt(Text9.Text)
Adodc2.Recordset.Update
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then
Adodc1.Recordset.MovePrevious
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Command4_Click()
所购图书.Show
End Sub
Private Sub Command5_Click()
Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF = True Then
Adodc1.Recordset.MoveNext
MsgBox "这是第一条记录", vbOKOnly, "消息"
End If
End Sub
Private Sub Command6_Click()
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then
Adodc1.Recordset.MovePrevious
MsgBox "已是最后一条记录", vbOKOnly, "消息"
End If
End Sub
Private Sub Form_Load()
End Sub
8.3.3查看订单子窗体代码
Private Sub Command1_Click()
Dim b
Adodc1.Recordset.MoveFirst
Do While Adodc1.Recordset.EOF <> True
b = b + Adodc1.Recordset.Fields(2)
Adodc1.Recordset.MoveNext
Loop
MsgBox "金额总计 " & b & " 元 ", vbOKOnly, "统计"
Unload Me
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Activate()
Adodc1.Refresh
Adodc1.Recordset.MoveFirst
Do While Adodc1.Recordset.EOF <> True
List1.AddItem Adodc1.Recordset.Fields(1)
Adodc1.Recordset.MoveNext
Loop
End Sub
8.3.4退出窗体代码
Private Sub Command1_Click()
Unload Me
Unload 主窗体
Unload 所购图书
Unload 数据管理
'Unload 请选购图书
End Sub
Private Sub Command2_Click()
Unload Me
主窗体.Show
End Sub
Private Sub Form_Load()
End Sub
展开阅读全文