《超市信息管理系统毕业论文.doc》由会员分享,可在线阅读,更多相关《超市信息管理系统毕业论文.doc(34页珍藏版)》请在三一办公上搜索。
1、超市信息管理系统摘 要超市信息管理系统是典型的信息管理系统。,该系统主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于后台数据库建立和维护,建成了数据一致性和完整性强、数据安全性好的库。而对于前端应用程序的开发则提供了强大的数据操作功能,界面友好、使用简单方便等特点,我们使用了SQL Server 2000数据库为开发工具,VB编程语言作为开发平台,并利用ADO数据接口技术,实现超市的管理、收银等功能。关键词: 超市信息管理系统; SQL Server; ADO 目 录摘 要I第1章 系统分析11.1 系统开发目的11.2 系统开发背景11.2.1应用范围11.2.2 开发工具
2、11.3 项目确立2第2章 需求分析22.1 功能需求22.1.1 基本功能划分22.1.3基本功能实现32.1.4.报表需求42.1.5用户界面需求42.2 性能需求42.2.1 系统安全性42.2.2 系统的完整性4第3章 系统概要设计53.1 基本设计概念53.2 结构63.3 数据库设计7第4章 系统详细设计74.1 数据表详细设计74.2 系统功能详细设计114.2.1 管理员端11第5章 结 论19致 谢20附录A: 附加图22附录B: 主要源程序23第1章 系统分析在系统开发之前,我们要对整个系统进行简单的分析。1.1 系统开发目的(1)大大提高超市的运作效率;(2)通过全面的信
3、息采集和处理,辅助提高超市的决策水平;(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张力, 提供有效的技术保障。(4)可在应用范围较广的WINDOWS系列操作系统上使用。除此以外,系统还应可通过访问权限控制以及数据备份功能,确保数据的安全性。1.2 系统开发背景 21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经
4、营规模,成为超市营业者努力追求的目标。1.2.1应用范围本系统适用于各种小型超市,可以方便的进行管理。1.2.2 开发工具 本系统是以Windows系统为操作平台,用VB编程语言和SQLServer,数据库来实现超市信息管理系统所需功能的。ADO接口技术用来连接数据库和前段应用程序。1.3 项目确立 针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。第2章 需求分析 目前,我们城市的许多大型超市或者是小型超市,由于货品日益增多,顾客群体越来越大,他们的管理产生了许多的不便。面对这样的情况我
5、们设计了这样一个系统。2.1 功能需求 本课题主要实现的是超市信息管理系统设计系统时应进可能的方便员工操作,贴近客户。系统在实现上应具有以下功能。2.1.1 基本功能划分 主要分为两个功能端,收银端和管理员端。2.1.2 功能描述 首先是管理员端,管理员是后台的运行者和使用者。因此管理员端有很多功能,登陆只允许管理员自己才能进入,商品管理主要对已有商品进行查询、修改,商品入货查询对入货商品进行一些必要的查询,库存量分析 和售货管理主要是针对报表,人事管理是对售货员和管理员一些本身的信息进行管理,商品配置是对商品具体的添加、删除等管理。 接下来是售货员端,售货员不需要管理太多信息,只需要销售、结
6、帐、保存信息就行了。先登陆,然后有收费界面为了调出商品信息,结帐后把信息进行保存,同时售货员自己也可以对自己的密码进行修改,这样是为了是系统的安全性提高。2.1.3基本功能实现1、管理员端 主要实现功能: 登录(按管理员号登录) 商品管理(商品的入库信息,商品修改(商品入库修改和商品单价修改) 商品入货查询(可以按具体商品和商品类别进行出入货查询) 库存量分析(显示当前所有商品的库存量) 售货员管理(录入,修改,删除) 人事管理(管理员以及售货员的添加,删除,修改)系统配置(商品类别配置:配置商品的大类) (具体商品配置:配置新的商品) 售货查询(售货商品信息的查询及报表的打印预览) 退出系统
7、2、收银台端 主要实现功能: 登录(按售货员号登录系统) 收费(输入货号,输入数量,显示金额) 结账 (输入钱数,显示找零) 修改密码(售货员修改密码) 退出系统2.1.4.报表需求 超市信息管理系统的某些信息应当能够以报表形式打印出来。能够实现库存量的报表和日售货的报表。对于随时进行调阅、打印非常方便的功能实现。2.1.5用户界面需求 超市信息管理系统应提供简单、层次关系明了、清晰的操作界面,使用户一目了然。尽可能的为用户的登陆、查询等功能操作提供方便。2.2 性能需求 超市信息管理系统是一个综合性的管理系统,它对此系统的要求也很高的,要具有很好的销售管理,库存管理,职工信息管理,厂商信息管
8、理2.2.1 系统安全性 超市信息管理系统是一个需要较强安全性的系统,因为系统里有很多关于货物数量,销售额和营业额的管理,因为与金钱有着密切的关系,所以系统的安全使每个开发商和应用上的都关注的事,因此对于系统的安全性要进行重要管理。2.2.2 系统的完整性 本系统在使用方面要快速、界面简洁,各个功能的实现要完整,不能有遗漏的功能。第3章 系统概要设计本系统除具有进、销、存等基本功能外,还解决了一物多名,多产地、按批号管理、自定义打印报表等用户关心的问题。1、保密的进货价格、方便的拆包、打包功能、灵活的价格管理、便捷的结款管理等功能极大的方便且改善了用户的管理。2.完善的权限管理机制保证了各部门
9、权限的独立性和一致性,确保系统的安全性和可靠性。3、清晰的报表、图形分析使您更方使的统计和分析进销情况、利润等问题。3.1 基本设计概念超市信息管理系统登 陆管理员主界面售货员主界面1. 登录与其他系统登录一样需要输入用户名和密码,但不同的是,我们根据超市的特殊性,可以设置成两种权限,即管理员和售货员,如果为管理员则到管理员界面登录,反之就到售货员界面登录,售货员只管前台销售,对商品的管理不得插手,而管理员不仅能够管理商品二届能够到前台进行销售,能够对售货员进行管理!2.售货员主界面3.管理员主界面3.2 结构 三管理员商品管理商品入货查询系统配置人事管理售货查询库存量分析具体商品查询商品类别
10、查询商品入库信息商品修改售货员管理管理员管理商品类别配 置具体商品配置入库修改单价修改其中商品管理要能够管理商品入库信息,能够对商品修改。商品入货查询能对具体商品和商品类别查询,人事管理分为管理员管理和售货员管理,系统配置对商品类别配置和具体商品配置。售货员系统登陆收费修改密码结 帐3.3 数据库设计数据库使用SQL Server2000要建立货物表、货物日志表(定期备份)(统计)、 售货表(定期备份)临时表、入货日志表、售货员日志表、售货员表、管理员表、 货物类别配置表、货物配置表。只有建立好完整的这些表,才能实现系统的正确运行,因为表是一个系统的关键之中的关键,所以要保证表与表之间不能出现
11、互斥的现象。 其次建立关系,货物表,入货日志表,货物类别配置表。还要建立视图,分别是售货员视图,管理员视图,和库存量视图。建立好这么多的表、视图等,就可以对系统进行详细的设计了。第4章 系统详细设计 对于整个系统,详细设计几乎是要设计出系统所实现的所有功能,每个方面都要想到,不能有没有想到的功能,包括届面的完整性和系统操作的简用简单性,还要包括功能的实现,其中要实现整个业务的计算机管理,管理中的各种情况要用计算机进行实施,售货中的程序和流程要在计算机使用的情况下,不能出现任何错误,而且保证其系统运行安全性,其次各报表的编制和打印也由计算机完成。4.1 数据表详细设计表4.1货物表字段名数据类型
12、长度货物号nvachar125货物类别号nvachar255单价money8库存量float8货物名nvachar 255表4.2货物类别配置表字段名数据类型大小货物类别号nvarchar255货物类别名varchar50表4.3货物配置表字段名数据类型大小货物类别号nvarchar255货物号nvarchar255货物名nvarchar255表4.4售货员表字段名数据类型大小售货员号nvarchar50密码nvarchar50售货员名nvarchar50表4.5管理员表字段名数据类型大小管理员号varchar50密码varchar50管理员名varchar50表4.6入货日志表字段名数据类型
13、大小数量float8入货价float8入货时间smalldat4管理员号nvarchar255货物来源nvarchar255编号float8货物名nvarchar255货物号nvarchar25单价money8货物类别号nvarchar255表4.7售货员日志表字段名数据类型大小售货员号varchar50登陆时间datetime8注销时间datetimr8前余额numeric9营业额numeric9现余额numeric9标记char4表4.8货物部分信息表字段名数据类型大小货物类别名nvarchar50货物名nvarchar255货物号nvarchar255单价money8表4.9临时表字段名
14、数据类型大小货物号char10货物名char10单价money8货物类别号char10数量int4出货时间smalldat4表4.10售货表字段名数据类型大小货物号nvarchar25货物类别号varchar50单价numeric9数量int4出货时间datetime8货物名char10货物类别配置表,货物表,货物部分信息表都是对货物进行管理时用的表,售货表、临时表、入货日志表都是和库存量有关系的表,管理员表和售货员表都是和人事管理有重要联系的表。4.2 系统功能详细设计对于整个系统,我们只须对前台售货员端和后台管理员端进行详细设计,要确保功能的实现。首先是登陆界面,点击管理员或售货员出现各自
15、登陆界面,分别输入管理员号和密码或者售货员号和密码进入两个主要功能端。4.2.1 管理员端1.商品管理商品管理分为商品入库信息和商品修改,其中商品入库信息是当你输入商品号,就会自动显示出商品入货价、单价、数量、货物来源、商品名和商品类别号。Adodc连接的是数据库中入货日志表。商品修改包括入库修改和单价修改,入库修改是对入库的商品添加、修改、删除,Adodc连接的是入货日志表。单价修改只对商品的单价修改,Adodc连接的是货物部分信息表。2.商品入货查询商品入货查询分为商品类别查询和具体商品查询。商品类别查询时通过下拉列表框中选择货物类别名和时间段对这一类货物查询,Adodc连接的是视图1。具
16、体商品查询是同样在下拉列表框选择货物类别名和货物名,选中一个时间段,进行某个物品的查询,结果还能显示当前单价和库存量,Adodc连接的是视图1。主要实现查询功能代码如下:Dim s As String s = Format(Combo3.ItemData(Combo3.ListIndex), 000)Adodc2.CommandType = adCmdTextDim strsql As Stringstrsql = select * from view1 where 货物类别号= & s & and 入货时间= & DTPicker1.Value & and 入货时间 0 Then Adodc
17、2.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修改功能If Adodc1.Recordset.RecordCount 0 Then Adodc1.Recordset
18、.MoveFirst Adodc1.Recordset.find 管理员号= & Text1.Text & If Adodc1.Recordset.EOF = True Then MsgBox 未查到该管理员! Else pass = InputBox(请输入密码:, 确认是否本人) If pass = Adodc1.Recordset.Fields(密码).Value Then Command2.Enabled = True MsgBox 你有权修改密码!, vbExclamation 5.系统配置系统配置包括货物类别配置和具体货物配置。货物类别配置通过输入货物类别号和货物名,实现功能包括添
19、加新的货物类别,删除原有货物类别、修改货物类别名称。Adodc1连接的货物类别配置表。具体货物配置时通过在下拉列表框中选择货物类别号,输入货物号和货物名称,实现包括添加新的货物、删除原有货物、修改货物信息的功能。Adodc2连接的是货物配置表。两个窗体都要显示配置后的情况和之前的情况。6.售货查询售货查询主要是售货日至表的打印预览,便于让其他高层领导查看每日售货情况,所以还要连接一个数据报表2。Adodc1连接的是售货表。7.退出退出只需单击,就会卸载管理员端的主窗体,重新回到登陆界面。4.2.2 售货员端1.收费收费界面需要输入货物号和数量,确认后出现该货物的信息同时出现总价及要收的金额。此
20、时点击结帐按钮,出现结帐界面,界面显示应收金额,输入现收金额后,单击确定显示找零及应找余额,退出及卸载结帐窗体。最后清零,清零时把这类货物信息与货物表的库存量中该物品相减,在售货日志表中增加该类信息。收费界面中Adodc1连接的货物表,Adodc2连接的是临时表。连接货物表主要是为了实现与临时标的连接。主要代码如下:If pubcnn.State = adStateClosed Then Call CreatConnection pubcnn.Execute insert into 临时表 select 货物号 ,货物名 ,单价, 货物类别号,数量,入货时间 from 入货日志表 where
21、货物号= & Trim$(Text1.Text) & pubcnn.Execute update 临时表 set 数量= & Text2.Text & where 货物号= & Trim$(Text1.Text) & pubcnn.Execute update 临时表 set 出货时间= & Date & where 货物号= & Trim$(Text1.Text) & Adodc2.Refresh pubcnn.Close2.修改密码修改密码是售货员可以随时修改自己的密码,以保证系统安全性。首先输入原密码,输入新密码,确认新密码后单击确认,即可修改自己的密码。Adodc连接的是售货员表。3.
22、退出本系统单击退出系统时,卸载前台管理员界面,回到出登陆主界面。4.2.3公共模块建立一个公共模块,整个系统都能引用,这个模块主要用于商品入货查询和收费两个窗体。Public pubcnn As New ADODB.ConnectionPublic Sub AddBusItem(cboX As ComboBox) Dim rs As New ADODB.RecordsetIf pubcnn.State = adStateClosed Then Call CreatConnection rs.Open select * from 货物类别配置表, pubcnn, adOpenDynamic, a
23、dLockBatchOptimisticIf rs.RecordCount = 0 Then Exit SubDo Until rs.EOF cboX.AddItem rs(货物类别名).ValuecboX.ItemData(cboX.NewIndex) = rs(货物类别号).Valuers.MoveNext Adodc2.CommandType = adCmdText LoopcboX.ListIndex = 0 Set rs = NothingEnd SubPublic Sub CreatConnection()pubcnn.CursorLocation = adUseClient pu
24、bcnn.Open Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=超市信息管理;Data Source=USER085End SubPublic Sub AddSpecItem(cboX As ComboBox, sd As String)Dim rs As New ADODB.RecordsetIf pubcnn.State = adStateClosed Then Call CreatConnectionrs.Open select * from 货物配置表
25、where 货物类别号= & sd & , pubcnn, adOpenDynamic, adLockBatchOptimisticIf rs.RecordCount = 0 ThencboX.ClearExit SubEnd IfcboX.ClearDo Until rs.EOFcboX.AddItem rs(货物名).ValuecboX.ItemData(cboX.NewIndex) = rs(货物号).Value rs.MoveNextLoop cboX.ListIndex = 0 Set rs = Nothing End Sub 第5章 结 论在经过3个星期的努力后,我们的系统终于完成
26、了。看着我们一起努力的结果,心里也有一些感慨想要说出来,这些做系统中的点点滴滴,都历历在目。当我们小组做超市信息管理系统时,都不同程度的遇到了各种问题,在开始时我们因为表的建立遇到了一些困难,一些表现在看,建的也不是太好,主要是有些字段的属性建立的不对应,字段大小也不完整,或太大或太小,因为系统功能不是太强,所以表的毛病并没有引起大的错误。在编写窗体的代码时,下拉列表框,是我们遇到另一个较大的问题,在苦苦思考一段时间后,建立了公共模块,解决了这一问题。后来还有收费清零时,要把产生的记录追加到两个表中,在老师的提醒下建立了临时表,又根据课本上的代码的提示,终于完成。还有一些每个窗体贬值时都会遇到
27、一些问题,大家在一起讨论或查资料,或问同学、老师,都让问题得到了最后的解决。从这次做课题的过程中,我意识到了团队的重要性,团队中各成员之间的信任是很重要的。同时也发现我掌握的知识是多么的有限,只有在以后的时间里多积累知识,才能做好自己的工作。参考文献1 亓来滨 编 Visual Basic 程序设计(清华大学出版社)2005.12 史济民 顾春华 李昌武 苑荣 编 软件工程原理、方法与应用3 刘勇 周学军编著 SQL Server2000基础教程附录A: 附加图管理员密码管理员号货物货物日志表单价货物号姓名入货价货物类别号入货时间货物来源管理员号数量 售货员上班下班售货员名 密码售货员号管理包
28、含销售登录换班货物类别号货物名 货物号库存量单价附图1.1 E-R图 附录B: 主要源程序超市信息管理系统的主要程序公共模块 Pubcnn 为公共变量Public pubcnn As New ADODB.Connection填充货物类别名的组合框Public Sub AddBusItem(cboX As ComboBox) Dim rs As New ADODB.Recordset If pubcnn.State = adStateClosed Then Call CreatConnection rs.Open select * from 货物类别配置表, pubcnn, adOpenDyna
29、mic, adLockBatchOptimistic If rs.RecordCount = 0 Then Exit Sub Do Until rs.EOF cboX.AddItem rs(货物类别名).Value cboX.ItemData(cboX.NewIndex) = rs(货物类别号).Value rs.MoveNext Loop cboX.ListIndex = 0 Set rs = NothingEnd Sub建立连接Public Sub CreatConnection() pubcnn.CursorLocation = adUseClient pubcnn.Open Provi
30、der=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=超市信息管理;Data Source=USER085End 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 货物配置表 wher
31、e 货物类别号= & sd & , pubcnn, adOpenDynamic, adLockBatchOptimistic If rs.RecordCount = 0 Then 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 = NothingEnd Sub管理员登录If txtUserName.Text
32、= 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$
33、(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 If inerr = 3 Then MsgBox 对不起,您无权使用本系统。, vbExclamation, 提示 End Else MsgBox 用户名或密
34、码错误,请重新输入!, 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 En
35、d 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 End If Dim glyh As String, glym As String, mm As String, qrmm As String glyh = Text1.Text glym = Text2.Text mm = Text3.Text qr
36、mm = Text4.Text If mm qrmm Then MsgBox 密码不一致,请核对后再输入!, vbExclamation, 提示 Text4.SetFocus Else Adodc2.CommandType = adCmdText adodc1.RecordSource = select * from 管理员表 where 管理员名= & Text2.Text & adodc1.Refresh With Adodc1.Recordset If .RecordCount 0 Then .MoveFirst .find 管理员号= & Text1.Text & If .EOF =
37、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 管理员