




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 目 录1 系统背景资料(1)组织结构.1(2)业务功能.1(3)管理功能.1(4)业务功能与组合结构的关系.1(5)前台销售处理流程.1(6)后台进货、库存、销售管理流程.22目标系统需求分析.2(1)系统目标.2(2)系统输入、输出信息分析.2(3)进销存数据处理流程.2(4)数据类需求分析.33目标系统设计4(1)系统功能结构设计4(2)系统数据库设计.4(3)系统主要功能模块设计.64系统实施.7(1)系统运行环境说明.7(2)系统主要功能模块界面和代码75系统操作说明23(1)系统运行环境23(2)系统安装文件23(3)系统功能说明23附录:课程设计分工说明.24快乐超市门店进销存管
2、理系统设计1系统背景资料本系统应用背景为一家中小超市门店。(1)组织结构该门店规模较小,其组织结构关系如图:店长销售部门店长助理图1 组织结构关系图(2)业务功能业务功能主要包括:进货、销售和库存/盘点管理。(3)管理功能门店管理进货销售库存管理前台后台图2 管理功能结构图(4)业务功能与组合结构的关系业务功能与组织结构的关系如表所示。 进货销售库存/盘点店长店长助理销售部门表1 业务功能与组织结构的关系表注:表中“”表示该项业务是对应组织的主要业务;“”表示该组织是参加协调该项业务的。(5)前台销售处理流程图3 POS前台销售处理流程(6)后台进货、库存、销售管理流程图4 后台进货、库存、销
3、售管理流程2目标系统需求分析(1)系统目标本仿真系统的设计目标是: 能通过键盘录入当前的销售商品和实收金额、采购清单、验货单; 自动结算应收金额和找零金额; 打印购物小票并更新库存; 能查询商品销售信息、采购清单、库存信息、验货单; 能根据验货单确认采购清单并更新库存。(2)系统输入、输出信息分析输入信息有:当前销售商品信息、实收金额、入库商品信息。输出信息有:购物小票、销售情况表和库存情况表。(3)进销存数据处理流程图5 进销存数据处理流程图(顶层)图6 进销存数据处理流程图(第二层)(4)数据类需求分析数据类需求分析步骤如下:第一,依据系统实体确定基本数据类;第二,依据新系统数据处理流程补
4、充数据类。系统包括的主要实体有:顾客、收款员、POS机、小票、商店、商品、购物篮、仓库。实体联系图(E-R图)如图所示:图7 POS系统实体联系图得到系统的关系结构如下:当前销售商品信息表(商品代号,商品名称,单价,数量,金额,总计,实收,找零,时间,收款员代号,单据号);基本信息表(商店号,机号,礼貌语1,礼貌语2,提示语1,提示语2);历史销售商品信息表(商品代号,商品名称,单价,数量,金额,总计,实收,找零,时间,收款员代号,单据号);商品词典表(商品代号,商品名称,单价);收款员表(收款员代号,收款员姓名,口令);运行参数表(单据号);出库表(出库单编号,商品编号,数量,录入,审核,客
5、户,出库时间);历史出库表(出库单编号,商品编号,数量,录入,审核,客户,出库时间);入库表(入库单编号,商品编号,供应商,数量,单价,录入,审核,入库时间);历史入库表(入库单编号,商品编号,供应商,数量,单价,录入,审核,入库时间);库存表(商品编号,商品名称,分类,单位,数量,库存底线,备注)。3目标系统设计(1)系统功能结构设计图8 系统功能结构设计(2)系统数据库设计根据E-R图得到系统基本关系如下:顾客(顾客代号);收款员(收款员代号,收款员姓名,口令);POS机(机号,品名,厂家)小票(单句号,日期,时间,收款员代号,机号,商店名称,购物信息,礼貌语,提示语);商店(商店号,商店
6、名称);商品(商品代号,商品名称,单价);购物篮(顾客代号,商品代号,数量,金额);付款结算(顾客代号,实收,应收,找零);仓库(仓库代号,仓库名称)。根据数据处理流程得到补充关系:销售情况表(历史购物信息)。系统需要构建的数据表主要有出库表、入库表、库存表、基本信息表、商品词典表、收款员表、运行参数表、销售商品表(历史商品、当前商品)具体参数设置如下:字段名类型宽度小数位数索引说明入库单号字符型10有商品编号字符型13采用标准型EAN代码供应商字符型8数量数值整型单价货币8自动录入字符型8审核字符型8入库时间日期/时间8表2入库表的数据结构字段名类型宽度小数位数收款员代号字符型3收款员姓名字
7、符型8口令字符型6表3 收款员表的数据结构字段名类型宽度小数位数单据号字符型8表4 运行参数表的数据结构字段名类型宽度小数位数索引说明出库单编号字符型10有商品编号字符型13采用标准型EAN代码数量数值整型录入字符型8审核字符型8客户字符型8出库时间日期/时间8表5出库表的数据结构字段名类型宽度小数位数商品代号字符型10商品名称字符型20单价数值型122表6 商品词典表的数据结构字段名类型宽度小数位数商品代号字符型10商品名称字符型20单价数值型122数量整型4金额数值型122总计数值型122实收数值型122找零数值型122时间日期时间型8收款员代号字符型3单据号字符型8表7 当前销售商品信息
8、表的数据结构字段名类型宽度小数位数商品号字符型4商店名称字符型30机号字符型2礼貌语1字符型30礼貌语2字符型30提示语1字符型30提示语2字符型30表8 基本信息表的数据结构字段名类型宽度小数位数索引说明商品编号字符型13有采用标准型EAN代码商品名称字符型50分类字符型1ABC分类单位单位8计量单位数量数值整型库存底线数值整型备注文本50表9 库存表的数据结构(3) 系统主要功能模块设计² 总控模块程序结构图9 总控模块程序结构图图10 系统菜单结构图² 商品销售模块程序结构图11 商品销售模块程序结构图² 小票样式图12 小票样式² 库存管理模块程
9、序结构图13 验收到货模块程序结构图4系统实施(1)系统运行环境说明操作系统:Windows 2000/XP/Vista数据管理系统:ACCESS 2000编程语言:VB 6.0(2)系统主要功能模块界面和代码1. 总控制模块程序设计² 系统总控模块程序1)窗体对象 FrmInit属性:Name: FrmInitBorderstyle:0-ZonePicture:D:Pos System享受大自然风景宽屏壁纸StarUpPosition:2-屏幕中心代码:Public COVER As BooleanPrivate Sub Form_Initialize() Me.Label1.To
10、p = Me.Height - 400 Me.Label1.Left = (Me.Width - Me.Label1.Width) / 2 Me.Label2.Top = (Me.Height + 800) Me.Label2.Left = (Me.Width - Me.Label2.Width) / 2 Me.Label1.Visible = False Me.Label2.Visible = FalseEnd SubPrivate Sub Form_Load()Dim nobtime As Integer nobtime = 0End Sub2)计时器对象Timer1属性:Interval
11、:60代码:Private Sub Timer1_Timer()If nobtime = 0 Then nobtime = 1 Me.Label1.Visible = True Me.Label2.Visible = TrueEnd IfIf Me.Label1.Top - 1500 > 0 Then Me.Label1.Top = Me.Label1.Top - 20 Me.Label2.Top = Me.Label2.Top - 20Else Unload Me COVER = TrueEnd IfEnd Sub² 系统封面表单设计系统封面表单界面,如图所示,运行时字幕由下
12、向上慢慢上升。图14 系统封面² 系统登录表单设计系统登录表单界面,如图所示:图15 系统登录界面代码:Option Explicit '强制变量声明Public OK As BooleanDim txtSQL As StringDim mrc As ADODB.RecordsetDim MsgText As StringPrivate Sub Form_Load() Dim i As Integer i = 0 txtSQL = "select * from 收款员表" Set mrc = ExecuteSQL(txtSQL, MsgText) With
13、 txtUserName Do While Not mrc.EOF i = i + 1 .AddItem Trim(mrc.Fields("收款员姓名") mrc.MoveNext Loop .ListIndex = 0 End With mrc.Close OK = FalseEnd SubPrivate Sub cmdCancel_Click() OK = False Me.HideEnd SubPrivate Sub cmdOK_Click() txtSQL = "select * from 收款员表 where 收款员姓名 = '" &a
14、mp; txtUserName.Text & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.EOF = True Then MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告" txtUserName.SetFocus Else If Trim(mrc.Fields("口令") = Trim(txtPassword.Text) Then OK = True Me.Hide UserNam
15、e = Trim(txtUserName.Text) UserOrder = mrc.Fields("收款员代号") mrc.Close Else MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告" txtPassword.SetFocus txtPassword.Text = "" End If End IfEnd SubPrivate Sub txtPassword_Change()End SubPrivate Sub txtUserName_Clic
16、k() txtPassword.Text = ""End Sub² 系统菜单设计系统菜单采用菜单编辑器来完成:图16-1 系统菜单编辑器图16-2 系统菜单代码:Private Sub MDIForm_Load()StatusBar1.Panels.Item(1) = "正在运行中"End SubPrivate Sub munbasic_Click()基本信息库.ShowEnd SubPrivate Sub munbillquery_Click()按单据号查询.ShowEnd SubPrivate Sub muncodequery_Click(
17、)按商品代号查询.ShowEnd SubPrivate Sub mundictionary_Click()商品词典.ShowEnd SubPrivate Sub munparameter_Click()运行参数.ShowEnd SubPrivate Sub munpos_Click()收款员库.ShowEnd SubPrivate Sub munquit_Click()EndEnd SubPrivate Sub munsale_Click()商品销售.ShowEnd SubPrivate Sub 出库表_Click()frm出库表.ShowEnd SubPrivate Sub 库存查询_Cli
18、ck()Form1.ShowEnd SubPrivate Sub 入库表_Click()frm入库表.ShowEnd Sub2. 初始化模块设计² 基本信息表单运行界面,如图所示:图17 基本信息表² 收款员表单运行界面如图所示:图18 收款员表² 商品词典表单运行界面如图所示:图19 商品词典表² 运行参数表单运行界面如图20所示:图20 运行参数表3. 商品销售模块设计² 商品销售表单商品销售表单如图21所示:图21 商品销售代码:Dim txtSQL As StringDim mrc As ADODB.RecordsetDim rec A
19、s ADODB.RecordsetDim MsgText As StringPrivate Sub Combo1_Click() txtSQL = "select * from 商品词典表 where 商品代号 = '" & Combo1.Text & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) '执行查询语句 With MSHFlexGrid1 '将查询内容显示在表格控件中 .Rows = .Rows + 1 .TextMatrix(.Rows - 1, 0) =
20、mrc.Fields(0) & "" .TextMatrix(.Rows - 1, 1) = mrc.Fields(1) & "" .TextMatrix(.Rows - 1, 2) = mrc.Fields(2) & "" End With Text3.Text = mrc.Fields(2) mrc.Close '关闭数据集End SubPrivate Sub Command1_Click() Dim Order As Integer If Text5 = "" Then Msg
21、Box "实收不能为空!", vbOKOnly, "提示" Text5.SetFocus Exit Sub End If If Text1 = "" Then MsgBox "总计不能为空!", vbOKOnly, "提示" Exit Sub End If txtSQL = "select 单据号 from 运行参数表" Set mrc = ExecuteSQL(txtSQL, MsgText) mrc.MoveLast Order = mrc.Fields("单据
22、号") mrc.AddNew mrc.Fields(0) = Order + 1 Order = mrc.Fields(0) mrc.Update mrc.Close txtSQL = "select 商品代号,商品名称,单价,数量,金额,总计,实收,找零,时间,收款员代号,单据号 from 当前销售商品信息表" Set mrc = ExecuteSQL(txtSQL, MsgText) With MSHFlexGrid1 For i = 2 To .Rows - 1 mrc.AddNew mrc.Fields(0) = .TextMatrix(i, 0) mrc
23、.Fields(1) = .TextMatrix(i, 1) mrc.Fields(2) = .TextMatrix(i, 2) mrc.Fields(3) = .TextMatrix(i, 3) mrc.Fields(4) = .TextMatrix(i, 4) mrc.Fields(5) = Text1.Text mrc.Fields(6) = Text5.Text mrc.Fields(7) = Text6.Text mrc.Fields(8) = Date mrc.Fields(9) = UserOrder mrc.Fields(10) = Order mrc.Update '
24、将当前销售商品信息表复制到历史销售商品信息表 txtSQL = "select 商品代号,商品名称,单价,数量,金额,总计,实收,找零,时间,收款员代号,单据号 from 历史销售商品信息表" Set rec = ExecuteSQL(txtSQL, MsgText) rec.AddNew For j = 0 To 10 rec.Fields(j) = mrc.Fields(j) Next j rec.Update Next i rec.Close mrc.Close MSHFlexGrid1.Clear Text1 = "" Text3 = "
25、;" Text4 = "" Text5 = "" Text6 = "" End WithEnd SubPrivate Sub Command2_Click() '打印单据报表 DataReport1.Show '清空当前销售商品信息表 txtSQL = "select 商品代号,商品名称,单价,数量,金额,总计,实收,找零,时间,收款员代号,单据号 from 当前销售商品信息表" Set mrc = ExecuteSQL(txtSQL, MsgText) Do While Not mrc.
26、EOF mrc.Delete mrc.MoveNext Loop mrc.CloseEnd SubPrivate Sub Command3_Click()Unload MeEnd SubPrivate Sub Form_Load() Dim i As Integer i = 0 txtSQL = "select * from 商品词典表" Set mrc = ExecuteSQL(txtSQL, MsgText) With Combo1 Do While Not mrc.EOF i = i + 1 .AddItem Trim(mrc.Fields("商品代号&qu
27、ot;) mrc.MoveNext Loop End With mrc.Close With MSHFlexGrid1 .Rows = 2 .CellAlignment = 5 .ColWidth(0) = 1500 .ColWidth(1) = 2000 .ColWidth(2) = 1200 .ColWidth(3) = 1200 .ColWidth(4) = 1500 .TextMatrix(1, 0) = "商品代号" .TextMatrix(1, 1) = "商品名称" .TextMatrix(1, 2) = "单价" .T
28、extMatrix(1, 3) = "数量" .TextMatrix(1, 4) = "金额" End With Text1.Enabled = False Text3.Enabled = False Text6.Enabled = False End SubPrivate Sub Text4_Change()If Text4 <> "" ThenWith MSHFlexGrid1 .TextMatrix(.Rows - 1, 3) = Text4.Text .TextMatrix(.Rows - 1, 4) = Text
29、3.Text * Text4.Text Text1.Text = Val(Text1.Text) + Val(.TextMatrix(.Rows - 1, 4)End WithEnd IfEnd SubPrivate Sub Text5_Change() If Text5 <> "" Then Text6.Text = Text5.Text - Text1.Text End IfEnd Sub² 单据表单小票样式,如图所示:图22 单据表单4. 销售商品信息查询模块设计² 按商品代号查询表单如图所示:图23 按商品代号查询表单代码:Dim t
30、xtSQL As StringDim mrc As ADODB.RecordsetDim MsgText As StringPrivate Sub Command1_Click()Unload MeEnd SubPrivate Sub Form_Load() With MSHFlexGrid1 .Rows = 2 .CellAlignment = 7 .ColWidth(0) = 1500 .ColWidth(1) = 2000 .ColWidth(2) = 1200 .ColWidth(3) = 1200 .ColWidth(4) = 1500 .ColWidth(5) = 2500 .Co
31、lWidth(6) = 1200 End WithEnd SubPrivate Sub Text1_Change() MSHFlexGrid1.Clear txtSQL = "select 商品代号,商品名称,单价,数量,金额,时间,收款员代号 from 历史销售商品信息表" Set mrc = ExecuteSQL(txtSQL, MsgText) Do While Not mrc.EOF If mrc.Fields("商品代号") = Text1.Text Then With MSHFlexGrid1 '将查询内容显示在表格控件中 .Rows
32、 = .Rows + 1 .TextMatrix(.Rows - 1, 0) = mrc.Fields(0) & "" .TextMatrix(.Rows - 1, 1) = mrc.Fields(1) & "" .TextMatrix(.Rows - 1, 2) = mrc.Fields(2) & "" .TextMatrix(.Rows - 1, 3) = mrc.Fields(3) & "" .TextMatrix(.Rows - 1, 4) = mrc.Fields(4) &
33、amp; "" .TextMatrix(.Rows - 1, 5) = mrc.Fields(5) & "" .TextMatrix(.Rows - 1, 6) = mrc.Fields(6) & "" .TextMatrix(1, 0) = "商品代号" .TextMatrix(1, 1) = "商品名称" .TextMatrix(1, 2) = "单价" .TextMatrix(1, 3) = "数量" .TextMatrix(1, 4
34、) = "金额" .TextMatrix(1, 5) = "时间" .TextMatrix(1, 6) = "收款员代号" End With End If mrc.MoveNext Loop mrc.Close End Sub² 按单据号查询表单如图所示:图24 按单据号查询表单代码:Private Sub Text1_Change() MSHFlexGrid1.Clear txtSQL = "select 商品代号,商品名称,单价,数量,金额,时间,单据号 from 历史销售商品信息表" Set mrc
35、 = ExecuteSQL(txtSQL, MsgText) Do While Not mrc.EOF If mrc.Fields("单据号") = Text1.Text Then With MSHFlexGrid1 '将查询内容显示在表格控件中 .Rows = .Rows + 1 .TextMatrix(.Rows - 1, 0) = mrc.Fields(0) & "" .TextMatrix(.Rows - 1, 1) = mrc.Fields(1) & "" .TextMatrix(.Rows - 1,
36、 2) = mrc.Fields(2) & "" .TextMatrix(.Rows - 1, 3) = mrc.Fields(3) & "" .TextMatrix(.Rows - 1, 4) = mrc.Fields(4) & "" .TextMatrix(.Rows - 1, 5) = mrc.Fields(5) & "" .TextMatrix(.Rows - 1, 6) = mrc.Fields(6) & "" .TextMatrix(1, 0)
37、 = "商品代号" .TextMatrix(1, 1) = "商品名称" .TextMatrix(1, 2) = "单价" .TextMatrix(1, 3) = "数量" .TextMatrix(1, 4) = "金额" .TextMatrix(1, 5) = "时间" .TextMatrix(1, 6) = "单据号" End With End If mrc.MoveNext Loop mrc.Close End Sub5. 库存管理模块设计²
38、; 商品入库图25 商品入库代码:Private Sub cmdAdd_Click() Data1.Recordset.AddNewEnd SubPrivate Sub cmdDelete_Click() '如果删除记录集的最后一条记录 '记录或记录集中唯一的记录 Data1.Recordset.Delete Data1.Recordset.MoveNextEnd SubPrivate Sub cmdRefresh_Click() '这仅对多用户应用程序才是需要的 Data1.RefreshEnd SubPrivate Sub cmdUpdate_Click() Dat
39、a1.UpdateRecord Data1.Recordset.Bookmark = Data1.Recordset.LastModifiedEnd SubPrivate Sub cmdClose_Click() Unload MeEnd SubPrivate Sub Data1_Error(DataErr As Integer, Response As Integer) '这就是放置错误处理代码的地方 '如果想忽略错误,注释掉下一行代码 '如果想捕捉错误,在这里添加错误处理代码 MsgBox "数据错误事件命中错误:" & Error$(D
40、ataErr) Response = 0 '忽略错误End SubPrivate Sub Data1_Reposition() Screen.MousePointer = vbDefault On Error Resume Next '这将显示当前记录位置 '为动态集和快照 Data1.Caption = "记录:" & (Data1.Recordset.AbsolutePosition + 1) '对于 Table 对象,当记录集创建后并使用下面的行时, '必须设置 Index 属性 'Data1.Caption =
41、 "记录:" & (Data1.Recordset.RecordCount * (Data1.Recordset.PercentPosition * 0.01) + 1End SubPrivate Sub Data1_Validate(Action As Integer, Save As Integer) '这是放置验证代码的地方 '当下面的动作发生时,调用这个事件 Select Case Action Case vbDataActionMoveFirst Case vbDataActionMovePrevious Case vbDataAction
42、MoveNext Case vbDataActionMoveLast Case vbDataActionAddNew Case vbDataActionUpdate Case vbDataActionDelete Case vbDataActionFind Case vbDataActionBookmark Case vbDataActionClose End Select Screen.MousePointer = vbHourglassEnd Sub² 商品出库图26 商品出库代码:Private Sub cmdAdd_Click() Data1.Recordset.AddNew
43、End SubPrivate Sub cmdDelete_Click() '如果删除记录集的最后一条记录 '记录或记录集中唯一的记录 Data1.Recordset.Delete Data1.Recordset.MoveNextEnd SubPrivate Sub cmdRefresh_Click() '这仅对多用户应用程序才是需要的 Data1.RefreshEnd SubPrivate Sub cmdUpdate_Click() Data1.UpdateRecord Data1.Recordset.Bookmark = Data1.Recordset.LastModifiedEnd SubPrivate Sub cmdClose_Click() Unload MeEnd SubPrivate Sub Data1_Error(DataErr As Integer, Response As Integer) '这就是放置错误处理代码的地方 '如果想忽略错误,注释掉下一行代码 '如果想捕捉错误,在这里添加错误处理代码 MsgBox "数据错误事件命中错误:" & Error$(DataErr) Response = 0 '忽略错误End SubPrivate Sub Data1_R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年自考专业(会计)高频难、易错点题附答案详解【满分必刷】
- 医疗护理员管理体系建设的策略及实施路径
- 重难点解析人教版7年级数学上册期中试卷附答案详解【B卷】
- 网络安全行业2025年针对网络安全意识提升的策略报告
- 网络安全行业2025年针对供应链攻击的策略与市场机遇
- 自考专业(建筑工程)全真模拟模拟题及答案详解【易错题】
- 化妆品生产线项目投资计划书
- 2024-2025学年环保局考试经典例题附参考答案详解(夺分金卷)
- 法院司法辅助人员通关题库附完整答案详解【典优】
- 2023年度玉溪农业职业技术学院单招《职业适应性测试》考前冲刺练习题A4版附答案详解
- 双重上市公司“管理层讨论与分析”披露差异:剖析与弥合
- 集装箱货物高效清关代理服务合同范本
- 2025年结构上岗试题及答案
- 2025年中国电信招聘考试行政职业能力测试预测题集
- 静脉治疗知识培训课件
- 教科版小学五年级上册科学实验报告20篇
- 2025-2026学年人教版(五线谱)(2024)小学音乐三年级上册教学计划及进度表
- 学风建设科研诚信宣教课件
- 江西省宜春市2025年上半年事业单位公开遴选试题含答案分析
- 2025繁轩科技发展(天津)有限公司公开招聘工作人员35人备考题库及答案解析
- 2025年度水电项目工程结算与审计服务协议
评论
0/150
提交评论