SQL数据库论文设计超市收银管理系统数据库设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

——超市收银管理系统数据库设计与实现
指导教师:X X
班级:XXXXXXX
姓名:XXXXX
学号:XXXXXX
完成日期:XXXXXXX
目录
摘要 (4)
第一章绪论 (5)
第二章需求分析 (6)
2.1、数据库基本信息 (6)
2.2 系统的功能 (6)
第三章数据分析与建模 (7)
3.1、数据分析 (7)
3.2、数据模型 (7)
第四章数据库建立 (8)
4.1、数据库表的建立 (8)
4.2、数据库E-R图和关系图的建立 (8)
第五章数据库应用开发 (12)
5.1、数据库实时数据 (12)
5.2、数据库存储过程 (13)
5.3、数据库触发器 (14)
5.4、VB前台程序设计 (14)
5.5、功能操作说明 (25)
第六章结论与体会 (27)
致谢 (28)
参考文献………………………………………………
28
摘要
【摘要】
选课系统是针对社会中一些小型超市使用,从消费者的角度来说,结账时应该准确和快速,毕竟时间就金钱。

由于传统的超市收银管理给顾客和店主带来很多不便,针对这方面的缺陷,团队开发这个系统可以方便快捷查出顾客结账情况,商品信息情况,每天的售货情况。

方便了对超市商品管理、人员管理。

大大提高了超市销售速度。

进而加速了社会的发展速度,提高了人民的生活水平。

本系统还可以给顾客和超市节约更多时间,加快了超市的运转速度。

关键词:VB;小型超市收银管理系统;SQL Server 2000
Abstract
Shop-sale- system is aims at in the school student and the teacher uses, said from student's angle, as a result of the school teaching system reform, now the majority of institutions of higher learning started to implement is the student independently chooses the class pattern, the traditional educational model (student to attend class according to curriculum which school arranged) already cannot adapt the new teaching method, if still chose the class through the paper on way, on the one hand wasted massive manpower, physical resource resources, on the other hand wasted the time as well as situation and so on mistake which inevitably appeared in the artificial statistical process. Along with universities population increasing, this kind of malpractice can more and more many expositions. Therefore, student so long as inputs own in front of the computer candidate class information then to complete the original several time of work requirements. Said from teacher's angle that, similarly has saved the massive work loads, because the teacher proposed served as a substitute teacher the application to complete the work which the curriculum issued to compare the student to choose the class to say even more complex, therefore through on-line carried on the curriculum to send the Puneng nationality large scale reduction teacher's work load, reduced the wrong occurrence probability. As teacher, also so long as operates through own computer then, does not need to rush about again between the school administration office and the office.
【关键词】小型超市收银管理系统
一、绪论
本系统编写目的在于研究城乡式的小型超市销售管理系统软件的可行途径和使用方法。

21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。

技术的提升和管理的升级是超市业的竞争核心。

零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。

如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。

为了提高物资管理的水平和工作效率,尽可能杜绝商品流通中各环节中可能出现的资金流失不明现象,商品进销存领域迫切需要引入信息系统来加以管理。

而商品销售管理系统是当前应用于超市或者公司管理系统的典型代表。

本组设计的超市销售管理系统主要完成的功能有:商品基本信息维护、人员管理信息维护、销售管理等,以及这一系列过程中涉及商品的数据修改、查询统计、删除等多种操作。

此外,ADO具有很多的优点,其中包括易于使用,熟悉的界面,高严谨及较低的内存空间战胜。

本系统的开发使用的是ADO方式来开发数据库。

要使用这种访问方式,必须在VB工程里面引用Microsoft ActiveX Data Objects库。

使用本系统大大提高超市的运作效率;通过全面的信息采集和处理,辅助提高超市的决策水平;还可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。

二、需求分析
2.1、数据库基本信息
(1)销售员工表
(2)商品表
(3)销售表
(4)登录表
2.2、系统的功能
(1)添加员工、商品等基本信息如可添加每个员工的职工号、姓名、性别、用户类型;
(2)查询员工、商品的信息和查询商品销售情况,查询的原理是首先在系统库内销售员工表、商品表、销售表都有自己的主码信息,若没有,则必须通过添加功能模块来给系统添加它们信息。

然后根据此唯一特性来查出它们的所有信息。

例如在商品表界面中,只要我们输入商品号,然后单击查询按钮,就可以出此商品的商品名称、商品类型、库存量和厂商即产地。

(3)删除员工、商品表、销售表的基本信息,根据其主码,查询出此商品的信息,然后删除它们所包含的所有信息。

(4)修改员工、商品表、销售表的基本信息,通过根据它们的主码号,查出它们的基本信息,然后根据需要对其作出相应的信息进行修改。

(5)对于登录表,其有三个功能:注册、登陆、退出;有两个字段:用户名、密码。

注册实质上就是向登录表内插入用户信息。

如:
在登陆界面的用户名窗口中输入“罗春”,在密码窗口内输入“123”,
再点击“注册”按钮,此时,系统会告诉:“注册成功”。

这时,你就
可以看见登录表中有一条信息:用户名:罗春,密码123。

这就是注册
的效果。

然后通过登录按钮进入系统。

三、数据分析与建模
3.1、数据分析
小型超市收银管理系统是一个针对超市收银员管理的一个简单系统。

数据库中主要含有四张表,登陆表中字段有用户名,密码。

销售表中字段有销售号、职工号、商品号、销售时间、销售数量。

销售员工表:职工号、姓名、性别、用户类型。

商品表:商品号、商品名称、商品类型、单价、库存量、厂商。

3.2、数据建模
四、数据库建立
4.1、数据库中表的建立
通过对数据库德数据分析阐述出系统中表的信息如下:
登陆表:用户名、密码
销售表:销售号、职工号、商品号、销
售时间、销售数量
小型超市收银管理系统
销售员工表:职工号、姓名、性别、用户类型
商品表:商品号、商品名称、商品类型、
单价、库存量、厂商
(登录表)
(商品表)
(销售人员表)
(销售表)4.2、数据库中E-R图和关系图的建立
由上述表的信息得出E-R图如下
(1)登陆表
(2)销售员工表
登陆表
用户名
密码
(3)销售表
(4)商品表
(5)各实体E-R图
(6)关系图
五、数据库应用和开发
5.1、数据库中实时数据
(1)商品表中的实时数据
(2)销售表中的实时数据
(3)登陆表中的实时数据
(4)销售员工表中的实时数据
5.2、数据库中存储过程源码
(1)商品表删除
CREATE PROCEDURE spb_delete
@sph varchar(50),@flag int output
as
if exists(select *from 商品表where 商品号=@sph and 库存量=0) begin
delete from 商品表where 商品号=@sph and 库存量=0
set @flag=0
end
else set @flag=1
GO
(2)商品表插入
CREATE PROCEDURE spb_insert
@sph varchar(50),@spmc varchar(50),@splx varchar(50),@dj float,@kcl char(10),@cs varchar(50)
as
insert into 商品表(商品号,商品名称,库存量,商品类型,厂商,单价)
values (@sph,@spmc,@kcl,@splx,@cs,@dj)
GO
(3)商品表修改
CREATE PROCEDURE spb_update
@sph varchar(50),@spmc varchar(50),@kcl char(50),@dj float ,@splx varchar(50),@cs varchar (50)
as
delete xs where 商品号=@sph
insert into 商品表(商品号,商品名称,库存量,单价,商品类型,厂商)
values (@sph,@spmc,@kcl,@dj,@splx,@cs)
GO
(4)销售表插入
CREATE PROCEDURE xsb_insert
@xsh varchar(50),@zgh varchar(50),@sph varchar(50),@xssl float,@xssj datetime, @flag int output
as
set @flag=(select 库存量from 商品表where 商品号=@sph)
if @flag>0
begin
insert into 销售表(销售号,职工号,商品号,销售数量,销售时间)
values (@xsh,@zgh,@sph,@xssl,@xssj)
end
else
set @flag=0
GO
(5)员工表插入
CREATE PROCEDURE ygb_insert
@zgh varchar(50),@xm char(8),@xb char(8),@yhlx varchar(50)
as
insert into 销售人员表(职工号,姓名,性别,用户类型)
values (@zgh,@xm,@xb,@yhlx)
GO
5.3、数据库中触发器源码
(1)销售表添加触发器
CREATE TRIGGER xsb1_insert ON 销售表
FOR INSERT
as
begin
update 销售表
set 销售数量=销售数量+1
where 销售表.销售号in (select inserted.销售号from inserted) update 商品表
set 库存量=库存量-1
where 商品表.商品号in (select inserted.商品号from inserted)
end
(2)销售表删除触发器
(3)CREATE TRIGGER xsb1_delete ON 销售表
(4)FOR DELETE
(5)AS
(6)begin
(7)update 销售表set 销售数量=销售数量-1
(8)where 销售表.销售号in (select 销售表.销售号from deleted )
(9)update 商品表set 库存量=库存量+1
(10)w here 商品表.商品号in (select 商品表.销售号from deleted )
(11)e nd
5.4、VB前台程序设计源码
(1)登陆界面源码
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Command1_Click()
strsql = "select * from 登录表 where 用户名='" & Text1.Text & "'" & "and 密码='" & Text2.Text & "'"
rs.Open strsql, cn, 1, 3
If rs.EOF Then
MsgBox "用户名或密码错了", 32, "警告"
Else
Form5.Show
Unload Me
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Image1_Click()
End Sub
Private Sub 注册_Click()
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "用户名和密码不能为空", 16 + 4, "警告"
Else
Dim rs As New ADODB.Recordset
str1 = "select * from 登录表 where 用户名='" & Text1.Text & "'"
rs.Open str1, cn, 1, 3
rs.AddNew
rs("用户名") = Text1.Text
rs("密码") = Text2.Text
rs.Update
MsgBox "注册成功", 64, "信息提示"
End If
End Sub
Private Sub Form_Load()
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=超市管理" cn.Open
End Sub
(2)商品表界面源代码
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Private Sub Command1_Click()
str1 = "select * from 商品表 where 商品号='" & Text1.Text & "'"
If rs.State = 1 Then
rs.Close
End If
rs.Open str1, cn, 1, 3
If rs.EOF Then
MsgBox "该商品不存在"
mandType = adCmdText
Adodc1.RecordSource = str1
Adodc1.Refresh
Else
Text1.Text = rs("商品号")
Text2.Text = rs("商品名称")
Text3.Text = rs("库存量")
Text4.Text = rs("商品类型")
Text5.Text = rs("厂商")
Text6.Text = rs("单价")
End If
End Sub
Private Sub Command2_Click()
str1 = "select * from 商品表 where 商品号='" & Text1.Text & "'" If rs.State = 1 Then
rs.Close
End If
rs.Open str1, cn, 1, 3
If rs.EOF Then
rs.AddNew
rs("商品号") = Text1.Text
rs("商品名称") = Text2.Text
rs("库存量") = Text3.Text
rs("商品类型") = Text4.Text
rs("厂商") = Text5.Text
rs("单价") = Text6.Text
rs.Update
MsgBox "数据添加成功", 64, "信息提示"
mandType = adCmdText
Adodc1.RecordSource = "select * from 商品表"
Adodc1.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Else
MsgBox "该商品已经存在了", 16, "警告"
End If
End Sub
Private Sub Command3_Click()
Form5.Show
Unload Me
End Sub
Private Sub Command4_Click()
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
If rs.State = 1 Then
rs.Close
End If
If rs1.State = 1 Then
rs1.Close
End If
rs1.Open "select * from 商品表 where 商品号='" & Text1.Text & "'and 商品名称='" & Text2.Text & "'", cn, 1, 3
If rs1.EOF Then
MsgBox "没有此种商品不能删除!"
Else
rs.Open "delete 商品表 where 商品号='" & Text1.Text & "' and 商品名称='" & Text2.Text & "'", cn, 1, 3
MsgBox "确定删除吗", 32 + 4, "警告"
mandType = adCmdText
Adodc1.RecordSource = "select * from 商品表"
Adodc1.Refresh
End If
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
End Sub
Private Sub DataGrid1_Click()
If Adodc1.Recordset.RecordCount <= 0 Then
MsgBox "当前表是空表", 16, "信息提示"
Else
Text1.Text = Adodc1.Recordset.Fields(0)
Text2.Text = Adodc1.Recordset.Fields(1)
End If
End Sub
Private Sub Form_Load()
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=超市管理" cn.Open
End Sub
Private Sub Image1_Click()
End Sub
(3)销售商品信息表界面源代码
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Private Sub Command1_Click()
str1 = "select * from 销售表 where 销售号='" & Text1.Text & "'" If rs.State = 1 Then
rs.Close
End If
rs.Open str1, cn, 1, 3
If rs.EOF Then
MsgBox "该销售商品不存在"
mandType = adCmdText
Adodc1.RecordSource = str1
Adodc1.Refresh
Else
Text1.Text = rs("销售号")
Text2.Text = rs("职工号")
Text3.Text = rs("商品号")
Text4.Text = rs("销售数量")
Text6.Text = rs("销售时间")
End If
End Sub
Private Sub Command2_Click()
str1 = "select * from 销售表 where 销售号='" & Text1.Text & "'" If rs.State = 1 Then
rs.Close
End If
rs.Open str1, cn, 1, 3
If rs.EOF Then
rs.AddNew
rs("销售号") = Text1.Text
rs("职工号") = Text2.Text
rs("商品号") = Text3.Text
rs("销售数量") = Text4.Text
rs("销售时间") = Text6.Text
rs.Update
MsgBox "数据添加成功", 64, "信息提示"
mandType = adCmdText
Adodc1.RecordSource = "select * from 销售表"
Adodc1.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text6.Text = ""
Else
MsgBox "该种销售商品已经存在了", 16, "警告"
End If
End Sub
Private Sub Command3_Click()
If Adodc1.Recordset.EOF = False Then
c = MsgBox("您确认要删除该记录吗?", 32 + 4, "特别提示") X = Adodc1.Recordset.Fields(0)
If c = vbYes Then
str1 = "select * from 销售表 where 销售号='x" & "'"
If rs.State = 1 Then
rs.Close
End If
rs.Open str1, cn, 1, 3
'Adodc1.Recordset.Delete
mandType = adCmdText
Adodc1.RecordSource = "select * from 销售表"
Adodc1.Refresh
MsgBox "销售商品的所有信息成功删除", 64, "信息提示"
Adodc1.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text6.Text = ""
End If
Else
MsgBox "当前数据库中已经没有可删除的记录", 64, "警告"
End If
End Sub
Private Sub Command4_Click()
Form5.Show
Unload Me
End Sub
Private Sub DataGrid1_Click()
If Adodc1.Recordset.RecordCount <= 0 Then
MsgBox "当前表是空表", 16, "信息提示"
Else
Text1.Text = Adodc1.Recordset.Fields(0)
Text2.Text = Adodc1.Recordset.Fields(1)
End If
End Sub
Private Sub Form_Load()
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=超市管理" cn.Open
End Sub
Private Sub Image1_Click()
End
Sub
(4)销售员工信息表
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Private Sub Command1_Click()
str1 = "select * from 销售人员表 where 职工号='" & Text1.Text & "'" If rs.State = 1 Then
rs.Close
End If
rs.Open str1, cn, 1, 3
If rs.EOF Then
rs.AddNew
rs("职工号") = Text1.Text
rs("姓名") = Text2.Text
rs("性别") = Text3.Text
rs("用户类型") = Text4.Text
rs.Update
MsgBox "用户添加成功", 64, "信息提示"
mandType = adCmdText
Adodc1.RecordSource = "select * from 销售人员表"
Adodc1.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Else
MsgBox "该职工已经存在了", 16, "警告"
End If
End Sub
Private Sub Command2_Click()
str1 = "select * from 销售人员表 where 职工号='" & Text1.Text & "'" If rs.State = 1 Then
rs.Close
End If
rs.Open str1, cn, 1, 3
If rs.EOF Then
MsgBox "这个职工不存在"
mandType = adCmdText
Adodc1.RecordSource = str1
Adodc1.Refresh
Else
Text1.Text = rs("职工号")
Text2.Text = rs("姓名")
Text3.Text = rs("性别")
Text4.Text = rs("用户类型")
mandType = adCmdText
Adodc1.RecordSource = str1
Adodc1.Refresh
End If
End Sub
Private Sub Command3_Click()
Form5.Show
Unload Me
End Sub
Private Sub Command4_Click()
If Adodc1.Recordset.EOF = False Then
c = MsgBox("您确认要删除该记录吗?", 32 + 4, "特别提示") X = Adodc1.Recordset.Fields(0)
If c = vbYes Then
str1 = "select * from 销售人员表 where 职工号='x" & "'"
If rs.State = 1 Then
rs.Close
End If
rs.Open str1, cn, 1, 3
Adodc1.Recordset.Delete
mandType = adCmdText
Adodc1.RecordSource = "select * from 销售人员表"
Adodc1.Refresh
MsgBox "职工信息成功删除", 64, "信息提示"
Adodc1.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End If
Else
MsgBox "当前数据库中已经没有可删除的记录", 64, "警告"
End If
End Sub
Private Sub DataGrid1_Click()
If Adodc1.Recordset.RecordCount <= 0 Then
MsgBox "当前表是空表", 16, "信息提示"
Else
Text1.Text = Adodc1.Recordset.Fields(0)
Text2.Text = Adodc1.Recordset.Fields(1)
End If
End Sub
Private Sub Form_Load()
cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=超市管理"
cn.Open
End Sub
Private Sub Image1_Click()
End Sub
5.5、功能操作说明
1.打开廖小龙SQL课程设计文件夹
2.打开SQL Server 2000
3.附加数据库,打开主文件夹里的数据库子文件夹,然后把里面的两个数据库文件附加到数据库里。

4.打开VB6.0
5.打开SQL课程设计—工程—小型超市收银管理系统.vbp,然后双击工程1
里面的窗体进行一些设置,然后保存。

6.再到SQL课程设计文件夹里面的exe文件,双击打开即可。

7.第一次登录需注册,然后再登陆,进入界面可以对各个表进行删除,查询,添加和退出操作。

六、结论与体会
通过这次的课程设计,使我们了解了一个简单的学生选课系统的设计过程,并且基本掌握了MS SQL server 2000的基本用法,Visual Basic 6.0的基本用法,掌握数据库的基本知识及其应用情况,加深对该课程的理解,在这次设计过程中使我们对编程和数据库的开发建立了浓厚的兴趣。

在设计过程中遇到了很多的问题,但是最后通过自己的努力、老师的解答和在网上寻找最后都得到了解决,虽然这次的设计是一个很小的程序但是设计这样的程序真的不简单呀,首先要想好设计的界面,以及这些界面是怎样连接起来的。

然后要考虑数据库怎么样和应用程序连接起来。

在设计中我深知自己掌握的知识还远远不够,掌握的一些理论知识应用到实践中去,总会出现这样或那样的问题,不是理论没有掌握好,而是光知道书本上的知识是远远不够的,一定要把理论知识和实践结合起来。

把学到的知识应用到时间中去,多做多练,才可以把理论的精华发挥出来。

知识不是知道,了解就好,一定要去应用它,发展它,让它在现实生活中得到充分的应用,从而解决一些问题,这才是学习的根本目的。

而且知识又不是单一的,它是互相联系的,学科与学科之间都有着内在的联系。

计算机是一门非常复杂且庞大的学科,一项课题往往需要多项技术才可以完成的。

在设计阶段,通过对课题的深入分析与研究,迫使我对技术有了一定的了解。

在遇到问题时,得到了指导老师与同学的悉心帮助,使我感受到集体的力量是无穷的。

通过这次设计,我学会了和别人配合工作,因为一个人所学的知识不可能面面俱到的,只有通过合作,发挥自己的优点,体现团队精神,才能使工作做得更为出色。

通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力。

即将毕业我十分珍惜这次锻炼的机会,我按部就班的完成了自己的设计任务,但由于自己的知识水平有限,仍然存在很多的不足之处,恳请老师多多指教!计算机技术的高速发展,使我深深地认识到只有不断的加强学习,才能在计算机技术方面不至于被淘汰,今后,我们还要加强学习,努力使自己成为一位专业的计算机人员,为我们自己所从事的工作服务。

致谢
在设计程序的时候遇到了一些问题,首先要感谢我的老师,是他给了我们创作思想和灵感还帮助我改正了不少错误,还有同学的帮助。

我才能顺利的完成这次的大作业。

参考文献
1.康博工作室,张红军,王红等缟著《Visual Basic 6.0中文版高级应用与开发指南》,人民邮电出版社,2001年4月第一版
2.Visual Basic工程应用与项目实践机械工业出版社高春艳、李俊民等2005年1月
3.SQL SERVER系列教程清华大学出版社郑阿奇主编,刘启芬,顾韵华编著。

相关文档
最新文档