文档库 最新最全的文档下载
当前位置:文档库 › VB图书销售管理系统

VB图书销售管理系统

VB图书销售管理系统
VB图书销售管理系统

XXXXX

《 VB 程序设计》课程设计报告题目:图书销售管理系统

所在院系:信息技术学院

学生: XX

指导老师:XX

日期:二 XXXXXXX

摘要:

图书作为一种关系到人们工作、学习及生活等各个方面的特殊商品,在人们的生活水平日益提高的同时,它的地位也越来越重要, 然而图书品种繁多,销售模式特殊,随着信息化

的快速发展和业务量的不断增大,传统的手工管理手段已经无法适应图书销售业的发展,如

今,图书销售业需要实现销售业务的计算机管理,迫切需要开发出相应的销售管理软件,从

而加强对图书销售的管理,通过计算机来完成大量本来由工作人员手工完成的工作,真正达到合理和充分利用现有资源,减轻工作压力的效果。因此,开发一个图书销售管理系统是很有必

要的 ,除此之外,图书销售管理系统也有着广泛的市场前景和实际的应用价值。

经过分析,使用微软公司的Visual Basic6.0 开发工具及Access 数据库 ,设计了图书销售管理系统。

关键字:图书销售管理系统,数据库 ,Visual Basic6.0

Abstract :

As a particular commodity,books affect people ’s work , study and life and so on.At the same time , people ’s living standards are rising quickly, now , it plays a more and more important role, however, a wide variety of books and special sales mode, With the rapid development of information technology and the growing volume of business, the traditional management tools have not adapted the development of the bookselling industry, today, industry sales of books need

to achieve sales of computer management. it is urgent to develop relevant sales management software , so that people can strengthen the Book sales management, using computers to finish the large amount of work which was finished by hand before ,people can really make full use of existing resources and alleviate the pressure of work..As a result, it is very necessary to develop a Book Selling Management System.,in addition,the book sales management systems also have broad market prospects and practical application.

After analysis, using Microsoft's V isual Basic6.0 and Access database development tool to design the book sales management system..

Key words:Book Selling Management System, database, V isual Basic6.0

一:开发环境介绍:

1.1 Visual Basic简介

Visual Basic 简称 VB, 是 Microsoft 公司推出的一种 Windows 应用程序开发工具。是当今世界上使用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。

早在 1991 年,为了简化Windows 应用程序的开发,微软公司推出了Visual Basic1.0,如今的最新版本是 Visual Basic 6.0 。Visual Basic 6.0 集成开发环境包含标题栏、菜单栏、工具栏、窗体设计器窗口、工程资源管理器窗口、工程窗口、窗体布局窗口和属性窗口。

Visual Basic 6.0的特点有:可视化的设计平台、面向对象的设计方法、事件驱动的编程机制、结构化的设计语言、充分利用Windows 资源、开放的数据库功能与网络支持。

二:系统需求分析与功能模块

2.1系统需求分析

一般的图书销售管理系统包括,进货管理,销售管理,库存管理,退货管理,销售统计 ,信息维护等功能。以下介绍一下销售管理系统的一些必备功能,每个功能由若干

相关的子模块构成。

⑴ 进货管理

包括进书录入及查询

⑵ 销售管理

主要对销售的情况进行记录及浏览销售情况

⑶ 库存管理

主要对库存量进行录入与查询。

⑷ 退货管理

对顾客退回来的书籍进行管理,包括退货录入及查询

⑸ 销售统计

主要是对销售业绩进行统计,以报表的形式显示销售业绩

⑹ 信息维护

主要包括图书信息维护,人员信息维护及用户信息维护,其中只有管理员可以对人员信息

进行维护,管理员可以更改所有用户的信息,用户只能修改个人信息。

2.2系统的功能可用如图2-1 所示框图表示。

系统登陆

图书销售管理系统

进销库退销信

货售存货售息

管管管管统维

理理理理计护

2.3数据库设计

本系统的数据库采用Microsoft Access 2003

2.3.1 建立A ccess 数据库

启动A ccess 2003,选择文件,新建,空数据库(books_sale.mdb) ,如图 2-2 所示

图2-2

2.3.2 创建表

在上面的基础上,选择主菜单中的插入->表格,根据要求设计相应的表格,本系统中设计的表格如下所示:

⑴ tb_login ( 用户登录信息表)

⑵ tb_buybooks(图书进货录入表)

⑶ tb_personnelinfo(人员信息维护表)

⑷tb_sale ( 图书销售表 )

⑸tb_store (图书库存表)

⑹ tb_withdraw(图书退货表)

三:系统具体实现

3.1欢迎界面

⑴.在此界面中引用了一个第三方控件(ccrpprg6 ),它是一个进度条控件。

首先要加载此控件,具体方法是把压缩包ccrpprg6.zip解压缩,然后在工具箱的空白

处单击鼠标右键,从弹出的快捷菜单中启动" 部件 " 窗口,如图3-1 所示。

图3-1

点击 " 浏览 " 按钮,从存放 ccrpProgressBar控件的文件夹中找到ccrpprg.ocx文件。

点击 " 应用 " 后 ccrpProgressBar控件就添加到工具箱中了。

⑵.向窗体中添加一个ccrpProgressBar控件和一个Timer 控件

Timer 控件的 Interval值设置为100,与ccrpProgressBar控件的默认值一致。

⑶.在 timer1的timer事件中添加如下代码

If i = 100 Then

Frm_before.Hide

Timer1.Enabled = False'定时器停止工作

Frm_login.Show

Else’i不为100则进度条向前进

ccrpProgressBar1.Value = i

i = i + 2

End If

⑷.使本窗体透明, 新建一个模块Module1,添加如下代码

Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As

Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As

Long

’ AnimateWindow是一个窗口打开和关闭时产生动画效果的新函数,因为是一个新的函数, 所以在

此定义

Public Const GWL_EXSTYLE = (-20)

Public Const LWA_ALPHA = &H2’表示把窗体设置成半透明样式

Public Const LWA_COLORKEY = &H1’不显示窗体中的透明色

Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA"

(ByVal hwnd As Long, ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA"

(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

在 form 的 load事件中加入如下代码

Timer1.Enabled = True

Timer1.Interval= 100'定时器开始工作Frm_before.Visible = True

rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE)'取窗口的原先样式

rtn = rtn Or WS_EX_LAYERED

' 使窗体添加上新的样式WS_EX_LAYERED

SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn '把新的样式赋给窗体

SetLayeredWindowAttributes Me.hwnd, 0, 150, LWA_ALPHA

' 把窗体设置成半透明样式, 第二个参数表示透明程度取值范围0 --255,为0时就是一个全透明的窗体了

3.2系统登录

⑴.在窗体上加个adodc1 控件 , 登录的主要代码为

Dim i As Integer

Adodc1.Refresh

Adodc1.Recordset.MoveLast

Adodc1.Recordset.MoveFirst

For i = 1 To Adodc1.Recordset.RecordCount

If 控件名 .Text = "" Then’如果控件中的内容为空,则显示提示MsgBox "请选择用户类型!", vbOKOnly + vbInformation, "注意"

ElseIf(Combo1.Text=Adodc1.Recordset.Fields("userkind"))And (Trim(Text1.Text)

=Adodc1.Recordset.Fields("name"))And(Trim(Text2.Text)=Adodc1.Recordset.Fie

lds("password")) Then’判断用户名与密码是否相符

Frm_main.Show

Unload Me

Exit Sub

Else

MsgBox "无效的密码,请重试!", "登陆"

Exit Sub

End If

Next

⑵.若当前用户是新用户,则可以单击新用户注册进行注册, 主要代码如下 :

①. 在 Module1 中加入如下代码 :

Option Explicit

Public con As ADODB.Connection

Public rst As ADODB.Recordset

Public Sub OpenDataBase()

Set con = New ADODB.Connection

con.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=books_sa

le.mdb;Persist Security Info=False"

Set rst = New ADODB.Recordset

con.Open

End Sub

②.在 caption属性为”新用户注册”的按纽的click事件中添加如下形式的代码Call

OpenDataBase

rst.Open "tb_login", con, adOpenStatic, adLockOptimistic, -1

If Text1.Text = "" Then

,,,,提示不能为空

ElseIf Text2.Text = "" Then

,,,,提示不能为空

Else

For i = 1 To rst.RecordCount

If Text1.Text = rst.Fields("name").Value Then

MsgBox "该用户已存在,请重新输入用户名!", vbOKOnly + vbExclamation, "用户"

Exit Sub

Else

rst.MoveNext

End If

Next I’判断新的用户名是否与已存在的用户重名

rst.AddNew

rst.Fields("字段名 ") = Text.Text

rst.Update

rst.Requery

rst.Close

MsgBox "新用户添加成功!", vbOKOnly + vbInformation, "提示"

Unload Me

End If

3.3主界面

⑴.选择 VB IDE 中的菜单栏中的工具->菜单编辑器,进行如下(图3-2 )设置

图3-2

⑵.加T oolbar控件,单击如图3-3 中的添加6个按纽,并分别设置其标

题及关键字 , 对应的与中的数值要一致。

图3-3

在 toolbar1的buttonclick事件中加入如下形式代码

Select Case Button.Key

Case " 关键字 "

语句

End Select

⑶.加 ImageList控件,然后右击打开如图3-4 的属性页,选择图像,单击

,添加6个图片

图 3-4

⑷.在图3-3 中选择通用,然后设置其图像列表为ImageList1

⑸.添加StatusBar,timer控件

在 statusbar的属性页中,选择窗格,然后单击,插入相应的窗格

在timer1 的 timer 事件中加入语句

StatusBar1.Panels(3).Text = Time’显示当前系统时间

在 form 的 load 事件中的主要代码如下

StatusBar1.Panels(1).Text = "欢迎使用图书销售管理系统!"

StatusBar1.Panels(2).Text = Format(Date, "dddddd")

’以完整日期表示法显示当前系统中的日期

If Frm_https://www.wendangku.net/doc/8a14282069.html,bo1.Text = "0" Then

Me.personnelim.Enabled = False

‘如果登录的用户为一般用户则该用户不能对人员信息进行维护

3.4进货管理

⑴.进书录入

①.在确定按纽的click事件中加入如下形式代码

Call OpenDataBase

rst.Open "表名", con, adOpenStatic, adLockOptimistic, -1

rst.AddNew

rst.Fields("表中字段名 ") = Text1.Text

rst.Update

rst.Requery

rst.Close

MsgBox "新书添加成功!", vbOKOnly + vbInformation, "提示”

②.在 form的load事件中加入如下语句

DTPicker1.Value = Date’使Dtpicker1的当前值为系统日期

⑵.进书查询

在“查询“按纽的click事件中添加如下代码

Dim sql As String

sql = "select * from tb_buybooks where"

If Combo1.Text = "" Then

MsgBox " 请选择图书进货日期! ", vbOKOnly + vbExclamation

Combo1.SetFocus

Exit Sub

Else

sql = sql & "ISBN = '" & Trim(Combo1.Text) & "'"

End If

Adodc1.RecordSource = sql

Adodc1.Refresh

’查询指定日期的进书情况

3.5销售管理

⑴.图书销售录入(代码同进书录入的代码)

⑵.图书销售浏览

① .在from的load事件中添加如下代码

Call OpenDataBase

rst.Open "tb_sale", con, adOpenStatic, adLockOptimistic, -1

② . 在通用代码段中添加如下形式代码

Public Sub viewdatas()

On Error Resume Next

Text.Text = rst.Fields("字段名” )Value’把数据库中的字段值赋给相应的控件End Sub

③ . 在”第一本”按纽的click事件中加入如下代码

rst.MoveFirst’移到表中的第一条记录

Call viewdatas

④ .在”上一本”按纽的click事件中加入如下代码

If rst.BOF Then’判断是否是第一条记录

MsgBox " 已经是第一条记录! ", vbOKOnly + vbInformation

Else

rst.MovePrevious’向前移一条记录

Call viewdatas

End If

⑤ .在”下一本”按纽的click事件中加入如下代码

If rst.EOF Then’判断是否是最后一条记录

MsgBox " 已经是最后一条记录! ", vbOKOnly + vbInformation

Else

rst.MoveNext’向后移一条记录

Call viewdatas

End If

⑥ .在”最末本”按纽的click事件中加入如下代码

rst.MoveLast’移到最后一条记录

Call viewdatas

3.6库存管理

⑴.库存录入(代码同进书录入的代码)

⑵.库存查询

①.在“查询“按纽的click事件中添加如下代码

Dim txtSQL As String

txtSQL = "select * from tb_store "

If Text7.Text = "" Then

sMeg = "请输入图书编号!"

MsgBox sMeg, vbOKOnly + vbExclamation, "警告"

Text7.SetFocus

Exit Sub

Else

txtSQL = txtSQL & " where ISBN = '" & Trim(Text7.Text) & "'"

End If

Adodc1.RecordSource = txtSQL’重新给数据源赋值’

Adodc1.Refresh

②. Adodc1 的记录源设置如图3-5 所示 :

图3-5

3.7 退货管理

⑴.退货录入(代码同进书录入的代码)

⑵.退货查询(同库存查询)

3.8销售统计

⑴.图书销售业绩报表

① . 选择 VB IDE 的菜单栏中的工程-> 添加 Data report, 添加一个数据报表,名称使用默认的

Datareport1 。

②. 设定 Datareport 对象的 DataSource 属性为 Environment1 。

③ . 设定 Datareport 对象的 DataMember 属性为 Command1。

④ . 右击设计器,在弹出的快捷菜单中单击“检索结构”选项。

⑤ . 向相应的节添加相应的控件。

报表 Datareport1的设计界面如图3-6 所示。

图3-6

在主窗体的菜单栏中选择销售统计-> 图书销售业绩报表,加入语句DataReport1.Show

3.9 信息维护

⑴.图书信息维护( 同图书销售浏览)

⑵.人员信息维护

添加一些常用按纽之后,然后在人员信息维护中加一个(CommonDialog)按纽,在“浏览图片”的click事件中添加如下代码

With https://www.wendangku.net/doc/8a14282069.html,monDialog1

.DialogTitle = "选择要导入的图片"

.Filter = "选择图片类型|*.jpg|*.bmp|*.bmp|*.gif|*.*|*.jpg"

.ShowOpen

.InitDir = App.Path

Me.Picture1.Picture = LoadPicture(https://www.wendangku.net/doc/8a14282069.html,monDialog1.FileName)

End With

⑶.用户信息维护

在 Form 的 load事件中加入如下代码

If Frm_https://www.wendangku.net/doc/8a14282069.html,bo1.Text = "0" Then’判断当前使用者是管理员还是一般用户

https://www.wendangku.net/doc/8a14282069.html,bo1.Text = Frm_login.Text1.Text

’若为一般用户则该用户名赋值给Combo1.Text ,否则,则把所有用户名都加到Combo1中

Else

Set s = New ADODB.Connection

Dim str As String

str = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\books_sale.mdb;persist security info=false"

s.Open str

Set c = New ADODB.Recordset

c.Open "select * from tb_login", str, 1, 1

c.MoveFirst

While Not c.EOF

Combo1.AddItem (c.Fields("name").V alue)

c.MoveNext

Wend

End If

在“确定”按纽的click 事件中加入如下代码

Call OpenDataBase

rst.Open "tb_login", con, adOpenStatic, adLockOptimistic, -1

Adodc1.RecordSource = "select password from tb_login where name = combo1.text"

If Text1.Text <> rst.Fields("password").V alue Then

’判断输入的原密码是否与数据库中的相同

MsgBox " 您输入的原密码不正确,请重新输入!", vbOKOnly + vbInformation, "提示"

Else

rst.Fields("password") = Text2.Text

rst.Update

rst.Requery

rst.Close

MsgBox " 密码修改成功!", vbOKOnly + vbInformation, "提示"

Unload Me

End If

四:调试过程

⑴. 系统运行时的第一个界面如图4-1 所示

图4-1

⑵.然后进入登录界面 , 如图 4-2 所示

图 4-2

⑶. 用户正确登录之后则可以进入主界面,主界面如图4-3 所示

图 4-3

4-4 所示⑷.若该用户第一次使用本系统,则可以选择“新用户注册“来进行注册,如图

图4-4

⑸.新注册用户的用户名不能与数据库中已经存在的用户重名,运行效果如图4-5 所示

图 4-5

⑹.运行时单击主界面中的Toolbar 中的“进货”按纽或菜单栏中的进货管理-> 进书录入则

运行界面如图4-6 所示

图4-6

图 4-7

⑻.单击主界面的菜单栏中的销售管理-> 图书销售浏览 , 则运行界面如图4-8 所示

图 4-8

图4-9

⑽.单击主界面的菜单栏中的销售统计图书销售报表,则运行界面如图4-10 所示

图 4-10

⑾.单击主界面的菜单栏中的信息维护-> 人员信息维护 , 则运行界面如图4-11 所示

图 4-11

⑿.单击主界面的菜单栏中的信息维护-> 用户信息维护 , 则运行界面如图4-12 所示

图4-12

⒀.单击主界面的菜单栏中的帮助-> 关于 , 则运行界面如图4-13 所示

图4-13

五:总结

通过本次实验,了解了做一个系统的大概步骤。首先,应该确定该系统要实现的功

能,以功能为目标,逐步细化;其次,在做的过程中也应该考虑到界面设计的问题,界面是

软件直接与人打交道的主要途径,因此,应根据实际情况设计相应的界面,当系统中有多个模块时,应尽量使各个模块的界面风格保持一致;最后,添加代码,不断地对程序进行调试,达到最终目标。在设计时也会存在一些细节上的问题,例如,在用户登录界面中,首先要用鼠标把光标移到用户名后对应的编辑框中,然后在键盘上输入用户名,接着再次重复以上操作输入密码,这样让用户频繁的在鼠标与键盘之间来回变换,会使用户感觉到疲劳,对系统产生反感,因此,在设计的过程中应尽量避免出现此现象。

在自己认为系统做好了之后,然后换位思考一下(把自己当成各种阶层的用户),会发现很多问题,比如说,提示信息不足,导致用户不知道某些事情是否已经完成了等等。

六:参考文献

[1]刘瑞新,汪远征, Visual Basic程序设计教程,北京:机械工业出版社,2000.10

[2]张翼英, Visual Basic课程设计,北京:清华大学出版社,2008.1

[3]龙马工作室 , 新编 Visual Basic 6.0程序设计从入门到精通, 北京 : 人民邮电出版

社,2008.4

相关文档