资源描述
I 超市信息管理系统 摘 要 超市信息管理系统是典型的信息管理系统。 ,该系统主要包括后台数据 库的建立和维护以及前端应用程序的开发两个方面。对于后台数据库建立 和维护,建成了数据一致性和完整性强、数据安全性好的库。而对于前端 应用程序的开发则提供了强大的数据操作功能,界面友好、使用简单方便 等特点,我们使用了 SQL Server 2000 数据库为开发工具,VB 编程语言作 为开发平台,并利用 ADO 数据接口技术,实现超市的管理、收银等功能。 关键词: 超市信息管理系统; SQL Server; ADO 目 录 摘摘 要要.I 第第 1 章章 系统分析系统分析.1 1.1 系统开发目的1 1.2 系统开发背景1 1.2.1应用范围1 1.2.2 开发工具.1 1.3 项目确立2 第第 2 章章 需求分析需求分析.2 2.1 功能需求2 2.1.1 基本功能划分.2 2.1.3基本功能实现3 2.1.4.报表需求4 2.1.5用户界面需求4 2.2 性能需求4 2.2.1 系统安全性.4 2.2.2 系统的完整性.4 第第 3 章章 系统概要设计系统概要设计.5 3.1 基本设计概念5 3.2 结构6 3.3 数据库设计7 第第 4 章章 系统详细设计系统详细设计.7 4.1 数据表详细设计7 4.2 系统功能详细设计.11 4.2.1 管理员端.11 第第 5 章章 结结 论论.19 致致 谢谢.20 附录附录 A: 附加图附加图22 附录附录 B: 主要源程序主要源程序23 1 第 1 章 系统分析 在系统开发之前,我们要对整个系统进行简单的分析。 1.1 系统开发目的 (1)大大提高超市的运作效率; (2)通过全面的信息采集和处理,辅助提高超市的决策水平; (3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。 (4)可在应用范围较广的 WINDOWS 系列操作系统上使用。除此以 外,系统还应可通过访问权限控制以及数据备份功能,确保数据的安全性。 1.2 系统开发背景 21 世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规 模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管 理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态: 超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在 激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业 者努力追求的目标。 1.2.1 应用范围 本系统适用于各种小型超市,可以方便的进行管理。 1.2.2 开发工具 本系统是以 Windows 系统为操作平台,用 VB 编程语言和 SQLServer,数据库来实现超市信息管理系统所需功能的。 2 ADO 接口技术用来连接数据库和前段应用程序。 1.3 项目确立 针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超 市的竞争力,我们将开发以下系统:前台销售系统、后台管理系统,其中 这两个子系统又包含其它一些子功能。 第 2 章 需求分析 目前,我们城市的许多大型超市或者是小型超市,由于货品日益增多, 顾客群体越来越大,他们的管理产生了许多的不便。面对这样的情况我们 设计了这样一个系统。 2.1 功能需求 本课题主要实现的是超市信息管理系统设计系统时应进可能的方便 员工操作,贴近客户。系统在实现上应具有以下功能。 2.1.1 基本功能划分 主要分为两个功能端,收银端和管理员端。 2.1.2 功能描述 首先是管理员端,管理员是后台的运行者和使用者。因此管理员端 有很多功能,登陆只允许管理员自己才能进入,商品管理主要对已有商品 进行查询、修改,商品入货查询对入货商品进行一些必要的查询,库存量 分析 和售货管理主要是针对报表,人事管理是对售货员和管理员一些本 身的信息进行管理,商品配置是对商品具体的添加、删除等管理。 接下来是售货员端,售货员不需要管理太多信息,只需要销售、结 3 帐、保存信息就行了。先登陆,然后有收费界面为了调出商品信息,结帐 后把信息进行保存,同时售货员自己也可以对自己的密码进行修改,这样 是为了是系统的安全性提高。 2.1.3 基本功能实现 1、管理员端 主要实现功能: 登录(按管理员号登录) 商品管理(商品的入库信息,商品修改(商品入库 修改和商品单价修改) ) 商品入货查询(可以按具体商品和商品类别进行出 入货查询) 库存量分析(显示当前所有商品的库存量) 售货员管理(录入,修改,删除) 人事管理(管理员以及售货员的添加,删除,修改) 系统配置(商品类别配置:配置商品的大类) (具体商品配置:配置新的商品) 售货查询(售货商品信息的查询及报表的打印预览) 退出系统 2、收银台端 主要实现功能: 登录(按售货员号登录系统) 4 收费(输入货号,输入数量,显示金额) 结账 (输入钱数,显示找零) 修改密码(售货员修改密码) 退出系统 2.1.4.报表需求 超市信息管理系统的某些信息应当能够以报表形式打印出来。能够 实现库存量的报表和日售货的报表。对于随时进行调阅、打印非常方便的 功能实现。 2.1.5 用户界面需求 超市信息管理系统应提供简单、层次关系明了、清晰的操作界面, 使用户一目了然。尽可能的为用户的登陆、查询等功能操作提供方便。 2.2 性能需求 超市信息管理系统是一个综合性的管理系统,它对此系统的要求也很 高的,要具有很好的销售管理,库存管理,职工信息管理,厂商信息管理 2.2.1 系统安全性 超市信息管理系统是一个需要较强安全性的系统,因为系统里有很 多关于货物数量,销售额和营业额的管理,因为与金钱有着密切的关系, 所以系统的安全使每个开发商和应用上的都关注的事,因此对于系统的安 全性要进行重要管理。 5 2.2.2 系统的完整性 本系统在使用方面要快速、界面简洁,各个功能的实现要完整,不能 有遗漏的功能。 第 3 章 系统概要设计 本系统除具有进、销、存等基本功能外,还解决了一物多名,多产地、 按批号管理、自定义打印报表等用户关心的问题。 1、保密的进货价格、方便的拆包、打包功能、灵活的价格管理、便 捷的结款管理等功能极大的方便且改善了用户的管理。 2.完善的权限管理机制保证了各部门权限的独立性和一致性,确保系 统的安全性和可靠性。 3、清晰的报表、图形分析使您更方使的统计和分析进销情况、利润 等问题。 3.1 基本设计概念 超市信息管理系 统 登 陆管理员主界面售货员主界面 1. 登录 与其他系统登录一样需要输入用户名和密码,但不同的是,我们根据 超市的特殊性,可以设置成两种权限,即管理员和售货员,如果为管理员 则到管理员界面登录,反之就到售货员界面登录,售货员只管前台销售, 对商品的管理不得插手,而管理员不仅能够管理商品二届能够到前台进行 销售,能够对售货员进行管理! 2.售货员主界面 3.管理员主界面 6 3.2 结构 三管 理 员 商 品 管 理 商品 入货 查询 系 统 配 置 人 事 管 理 售 货 查 询 库存量 分析 具体商 品查询 商品类 别查询 商品 入库 信息 商 品 修 改 售货员 管理 管理员 管理 商品类 别配 置 具体商 品配置 入 库 修 改 单 价 修 改 其中商品管理要能够管理商品入库信息,能够对商品修改。商品入货 查询能对具体商品和商品类别查询,人事管理分为管理员管理和售货员管 理,系统配置对商品类别配置和具体商品配置。 售货员 系统登陆 收费 修改密码 结 帐 7 3.3 数据库设计 数据库使用 SQL Server2000 要建立货物表、货物日志表(定期备份) (统计) 、 售货表(定期备份) 临时表、入货日志表、售货员日志表、售货员表、管理员表、 货物类别 配置表、货物配置表。只有建立好完整的这些表,才能实现系统的正确运 行,因为表是一个系统的关键之中的关键,所以要保证表与表之间不能出 现互斥的现象。 其次建立关系,货物表,入货日志表,货物类别配置表。 还要建立视图,分别是售货员视图,管理员视图,和库存量视图。建 立好这么多的表、视图等,就可以对系统进行详细的设计了。 第 4 章 系统详细设计 对于整个系统,详细设计几乎是要设计出系统所实现的所有功能, 每个方面都要想到,不能有没有想到的功能,包括届面的完整性和系统操 作的简用简单性,还要包括功能的实现,其中要实现整个业务的计算机管 理,管理中的各种情况要用计算机进行实施,售货中的程序和流程要在计 算机使用的情况下,不能出现任何错误,而且保证其系统运行安全性,其 次各报表的编制和打印也由计算机完成。 4.1 数据表详细设计 表 4.1 货物表 8 表 4.2 货物类别配置表 字段名数据类型大小 货物类别号nvarchar255 货物类别名varchar50 表 4.3 货物配置表 字段名数据类型大小 货物类别号nvarchar255 货物号nvarchar255 货物名nvarchar255 表 4.4 售货员表 字段名数据类型大小 售货员号nvarchar50 密码nvarchar50 售货员名nvarchar50 表 4.5 管理员表 字段名数据类型大小 字段名数据类型长度 货物号nvachar125 货物类别号nvachar255 单价money8 库存量float8 货物名nvachar 255 9 管理员号varchar50 密码varchar50 管理员名varchar50 表 4.6 入货日志表 字段名数据类型大小 数量float8 入货价float8 入货时间smalldat4 管理员号nvarchar255 货物来源nvarchar255 编号float8 货物名nvarchar255 货物号nvarchar25 单价money8 货物类别号nvarchar255 表 4.7 售货员日志表 字段名数据类型大小 售货员号varchar50 登陆时间datetime8 注销时间datetimr8 前余额numeric9 营业额numeric9 现余额numeric9 标记char4 10 表 4.8 货物部分信息表 字段名数据类型大小 货物类别名nvarchar50 货物名nvarchar255 货物号nvarchar255 单价money8 表 4.9 临时表 字段名数据类型大小 货物号char10 货物名char10 单价money8 货物类别号char10 数量int4 出货时间smalldat4 表 4.10 售货表 字段名数据类型大小 货物号nvarchar25 货物类别号varchar50 单价numeric9 数量int4 出货时间datetime8 货物名char10 11 货物类别配置表,货物表,货物部分信息表都是对货物进行管理时用的表, 售货表、临时表、入货日志表都是和库存量有关系的表,管理员表和售货 员表都是和人事管理有重要联系的表。 4.2 系统功能详细设计 对于整个系统,我们只须对前台售货员端和后台管理员端进行详细设 计,要确保功能的实现。 首先是登陆界面,点击管理员或售货员出现各自登陆界面,分别输入 管理员号和密码或者售货员号和密码进入两个主要功能端。 4.2.1 管理员端 1.商品管理 商品管理分为商品入库信息和商品修改,其中商品入库信息是当你输 入商品号,就会自动显示出商品入货价、单价、数量、货物来源、商品名 和商品类别号。Adodc 连接的是数据库中入货日志表。商品修改包括入库 修改和单价修改,入库修改是对入库的商品添加、修改、删除,Adodc 连 接的是入货日志表。单价修改只对商品的单价修改,Adodc 连接的是货物 部分信息表。 2.商品入货查询 商品入货查询分为商品类别查询和具体商品查询。商品类别查询时通 过下拉列表框中选择货物类别名和时间段对这一类货物查询,Adodc 连接 的是视图 1。具体商品查询是同样在下拉列表框选择货物类别名和货物名, 选中一个时间段,进行某个物品的查询,结果还能显示当前单价和库存量, Adodc 连接的是视图 1。主要实现查询功能代码如下: 12 Dim s As String s = Format(Combo3.ItemData(Combo3.ListIndex), “000“) Adodc2.CommandType = adCmdText Dim strsql As String strsql = “select * from view1 where 货物类别号=“ Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=超市信息管理;Data Source=USER085“ End Sub Public Sub AddSpecItem(cboX As ComboBox, sd As String) Dim rs As New ADODB.Recordset If pubcnn.State = adStateClosed Then Call CreatConnection rs.Open “select * from 货物配置表 where 货物类别号=“ Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=超市信息管理;Data Source=USER085“ End Sub 填充货物名组合框 Public Sub AddSpecItem(cboX As ComboBox, sd As String) Dim rs As New ADODB.Recordset If pubcnn.State = adStateClosed Then Call CreatConnection rs.Open “select * from 货物配置表 where 货物类别号=“ & sd & “, pubcnn, adOpenDynamic, adLockBatchOptimistic If rs.RecordCount = 0 Then 24 cboX.Clear Exit Sub End If cboX.Clear Do Until rs.EOF cboX.AddItem rs(“货物名“).Value cboX.ItemData(cboX.NewIndex) = rs(“货物号“).Value rs.MoveNext Loop cboX.ListIndex = 0 Set rs = Nothing End Sub 管理员登录 If txtUserName.Text = “ Then MsgBox “管理员号不能为空“, vbExclamation txtUserName.SetFocus Exit Sub End If If txtPassword.Text = “ Then MsgBox “密码不能为空“, vbExclamation txtPassword.SetFocus Exit Sub End If Static inerr As Integer Dim struser As String, strpass As String, strsql As String struser = Trim$(txtUserName.Text) strpass = Trim$(txtPassword.Text) strsql = “select * from 管理员表 where 管理员号 =“ & struser & “and 密码=“ & strpass & “ With Adodc1 .CommandType = adCmdText .RecordSource = strsql .Refresh If .Recordset.EOF And .Recordset.BOF Then inerr = inerr + 1 25 If inerr = 3 Then MsgBox “对不起,您无权使用本系统。“, vbExclamation, “提示“ End Else MsgBox “用户名或密码错误,请重新输入!“, vbExclamation, “提示“ End If Else 数据处理.Show Unload Me End If End With End Sub 人事管理界面 添加功能 If Option1.Value = True Then If Trim$(Text1.Text) = “ Then MsgBox “请输入管理员号!“, vbExclamation Text1.SetFocus Exit Sub End If If Trim$(Text2.Text) = “ Then MsgBox “请输入管理员名!“, vbExclamation Text2.SetFocus Exit Sub End If If Trim$(Text3.Text) = “ Then MsgBox “请输入密码!“, vbExclamation Text3.SetFocus Exit Sub End If If Trim$(Text4.Text) = “ Then MsgBox “请确认密码!“, vbExclamation Text4.SetFocus Exit Sub 26 End If Dim glyh As String, glym As String, mm As String, qrmm As String glyh = Text1.Text glym = Text2.Text mm = Text3.Text qrmm = Text4.Text If mm 0 Then .MoveFirst .find “管理员号=“ & Text1.Text & “ If .EOF = True Then 检查是否有同名用户,若无,添加,若有,重新输 入 .AddNew .Fields(“管理员号“).Value = glyh .Fields(“管理员名“).Value = glym .Fields(“密码“).Value = mm .UpdateBatch MsgBox “此用户添加成功!“, vbExclamation Adodc1.Refresh Adodc2.CommandType = adCmdText Adodc2.CursorLocation = adUseClient Adodc2.RecordSource = “ Adodc2.RecordSource = “select * from 管理员“ Adodc2.Refresh Else MsgBox “此用户已存在!“, vbExclamation End If 27 End If End With Text1.Text = “ Text2.Text = “ Text3.Text = “ Text4.Text = “ Text1.SetFocus End If End If 删除功能 If Option2.Value = True Then If Adodc2.Recordset.RecordCount 0 Then Adodc2.CommandType = adCmdText Adodc2.Recordset.Delete Adodc2.Recordset.MoveNext If Adodc2.Recordset.EOF And Adodc1.Recordset.RecordCount 0 Then Adodc2.Recordset.MoveLast End If Adodc2.Recordset.UpdateBatch Adodc1.Refresh Else MsgBox “没有记录! “ End If End If 修改功能 If Option3.Value = True Then Dim pass As String If Adodc1.Recordset.RecordCount 0 Then Adodc1.Recordset.MoveFirst Adodc1.Recordset.find “管理员号=“ & Text1.Text & “ If Adodc1.Recordset.EOF = True Then MsgBox “未查到该管理员!“ Else pass = InputBox(“请输入密码:“, “确认是否本人“) If pass = Adodc1.Recordset.Fields(“密码“).Value Then 28 Command2.Enabled = True MsgBox “你有权修改密码!“, vbExclamation Text1.Enabled = False Text2.Enabled = False Text3.Enabled = True Text4.Enabled = True Label1.Enabled = False Label2.Enabled = False Label3.Enabled = True Label4.Enabled = True Command1.Enabled = False Text3.SetFocus Label3.Caption = “新密码“ Label4.Caption = “确认新密码“ Else Command2.Enabled = False MsgBox “你无权修改密码!“, vbExclamation Label1.Enabled = True Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Label2.Enabled = False Label3.Enabled = False Label4.Enabled = False Text1.Enabled = True Text1.Text = “ Command1.Enabled = True End If End If End If End If 商品入货查询界面 填充货物类别名代码 Dim sNo As String sNo = Format(Combo1.ItemData(Combo1.ListIndex), “000“) 29 Call AddSpecItem(Combo2, sNo) 填充货物名代码 Dim s As String s = Format(Combo3.ItemData(Combo3.ListIndex), “000“) Adodc2.CommandType = adCmdText Dim strsql As String strsql = “select * from view1 where 货物类别号=“ & s & “ and 入货时间=“ & DTPicker1.Value & “ and 入货时间=“ & DTPicker3.Value & “ and 入货时间 0 Then Adodc2.Recordset.MoveFirst End If Do Until Adodc2.Recordset.EOF If Adodc1.Recordset.Fields(“货物号“).Value = Adodc2.Recordset.Fields(“货物号“). Value Then Adodc1.Recordset.Fields(“库存量“).Value = Adodc1.Recordset.Fields(“库存量“). 31 Value - Adodc2.Recordset.Fields(“数量“).Value Adodc1.Recordset.UpdateBatch Adodc2.Recordset.MoveNext Else Adodc2.Recordset.MoveNext End If Loop Adodc1.Recordset.MoveNext Adodc2.Recordset.MoveNext Loop Adodc1.Recordset.UpdateBatch 实现清零功能 pubcnn.Execute “delete from 临时表“ Adodc2.Refresh pubcnn.Close Text3.Text = 0 Text1.Text = “ Text2.Text = “ Set DataGrid1.DataSource = Nothing Command4.SetFocus
展开阅读全文