当前位置:文档之家› 小型超市管理系统的设计与实现毕业论文

小型超市管理系统的设计与实现毕业论文

小型超市管理系统的设计与实现毕业论文
小型超市管理系统的设计与实现毕业论文

目录

摘要: (2)

前言 (3)

1 系统概述 (4)

1.1 系统解决的主要问题 (4)

1.2 开发环境介绍 (4)

2 系统分析 (5)

2.1可行性分析 (5)

2.1.1技术可行性分析 (5)

2.1.2市场可行性分析 (5)

2.2系统需求分析 (5)

2.2.1需求获取模式 (6)

2.2.2性能要求 (6)

2.2.3数据要求 (6)

3 系统概要设计 (8)

3.1系统整体设计 (8)

3.1.1系统结构设计 (8)

3.1.2系统模块结构 (8)

3.2 数据库概念设计 (11)

3.3 数据库逻辑设计 (12)

3.4 数据库结构设计 (13)

4 系统详细设计 (15)

4.1登录验证模块 (15)

4.2后台管理员模块 (16)

4.3前台售货员模块 (23)

5 系统测试 (30)

6 总结与展望 (31)

参考文献 (32)

致谢 (33)

小型超市管理系统的设计与实现

摘要:超市管理系统现在已是超市管理必不可少的一部分,它提供的信息对于超市的决策者和管理者来说都是至关重要的。本文简要分析了系统开发的背景、超市管理系统的发展现状,描述了系统需要解决的主要问题和系统的整体情况,该系统由基础信息管理、采购信息管理、库存信息管理、柜存信息管理、销售管理和数据库维护等六大模块组成。同时,对系统的需求分析和架构设计进行了详细描述,并对部分有代表性的模块的详细设计和实现进行了描述。系统设计的目标是简化商品销售及商品管理的工作量,提高超市工作效率、降低成本,方便超市人员的管理,满足与用户及时沟通需要。

关键词:超市管理;采购;库存;柜存;销售

前言

21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是原有意义上的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。比如具有相同的基本业务流程:超市是核心,通过从制造商或批发商处取得商品,通过商场流转,再销售给顾客,从中赚取商品进销差价的利润,这也是商业生存的本质。

随着超市商品数量急剧增加,有关商品的各种信息量也成倍增长。销售人员不可能准确的记住每一种商品的价格,管理人员也很难做到每天将每种商品库存进行清点,超市时时刻刻需要对商品各种信息进行统计分析,还要做每天的报表、月报表、年报表,从而分析当月当年财务状况,与此同时,尽管商品需求量加大,种类也随之增多了,但是针对服务对象的特点,有些商品成为畅销品,有些商品成为滞销品,而且随着时间的,各种商品的销售状况也不同,比如春季学习用品类商品会增多,夏季零卖水果冷饮类会增多等等,超市管理员需要根据不同销售状况来决定商品采购计划,并且要对库存较多的商品采取一定措施,以此来做到仓库优化。以往的手动人工的模式在超市业务管理和人员管理上造成了很多不便,随着信息化水平的提高,传统的管理方法必然被以计算机为基础的信息管理所取代。

随着管理信息化进程的进步,市场上出现了很多超市管理系统,但大型的超市管理系统,功能过于强大而造成操作繁琐降低了小超市的工作效率,而且很多超市的实际情况也不允许它像大型超市那样投入大量资金进行信息化建设。

基于这些问题,有必要建立一个超市管理信息系统,使超市商品购、销、存的处理工作规范化、系统化、程序化,避免超市商品管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的对各种商品的购、销、存进行统计和整理。因此,开发一款小型超市管理系统就具有了现实意义。

1.1 系统解决的主要问题

通过该系统的设计,主要解决以下问题:

第一是能够处理超市的日常业务,包括进、销、存管理,商品采购、供销商厂商的管理、销售情况统计报表、员工信息管理的情况统计等。

第二是能够模拟实现前台营业员的pos机扫描收银与手工收银同时进行,在输入商品号时随即显示商品全部信息,时时更新数据库信息。

第三是能满足超市管理对信息的需求,及时准确地收集处理与经营有关的各种信息,并能将其分类整理。

第四是提高集中管理水平,充分利用计算机系统处理大量数据的能力,将各个供销商供给的同类商品集中管理起来,使管理工作规范化,以提高其应变能力。

第五是为了提高管理工作效率,本系统要具有信息传递快捷,海量记忆能力和高速处理能力,可以大大提高业务管理中的工作效率。

第六是解决超市库存管理现阶段的问题,使库存成本降低,提高利润。有效地控制库存成本是超市经营业绩提高的关键。

第七是满足超市人事管理的个性化需要。

第八是信息化进程接轨,方便各级管理者查看到超市的整体情况,超市员工可以通过该系统查询和提交相关信息,提高超市管理的综合性,服务性。

第九是整体系统按结构化设计,每个模块可以独立运行使用,某些模块可以选择已商品化的部分软件产品,在硬件配置时,配置要合理,要尽量降低系统成本。

1.2 开发环境介绍

本系统数据库使用Access,程序采用Visual https://www.doczj.com/doc/1c15450056.html,开发环境。它继承了以往Visual Studio的风格,成为.NET平台下最为优秀的高度集成的可视化开发环境。

2.1可行性分析

2.1.1技术可行性分析

随着计算机使用的频繁,软件编程技术的不断增加,功能的不断加强,信息管理技术的不断成熟,信息安全的不断完善以及开发工具的日益进步,采用计算机系统来管理超市信息,其要求数据的采集、更新能够完整、准确和及时。所以开发通用的超市管理系统已经完全可以做到。

2.1.2市场可行性分析

超市形态具有种种优点,但目前仍存在零售业共有的落后的一面,比如:

⑴不能有效的管理每种商品;

⑵收款结算速度慢;

⑶容易出现营业差错;

⑷不宜进行商品调价;

⑸缺乏时时分析功能等。

随着经济高速发展,超市的经营管理也愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,新的管理技术随之产生。

2.2系统需求分析

根据对用户需求的调查,为满足用户的基本需要本系统共需设计基础信息管理、采购信息管理、库存信息管理、柜存信息管理、销售管理和数据库维护等六大模块,各模块联系密切,在新商品进入超市前是先把商品收录在商品目录表中,然后管理员从商品目录表中选择本超市需要的商品,以便下订单订货,在商品根据订单要求到货后,管理员进行入库和上柜,在入库时只有管理员下过订单的货物方可入库,而在上柜中分为新货上柜和原有货物上柜两种,待商品上柜完成后进行销售,在顾客对购买的商品不满意时也可进行退货,除此定期管理员可以对后台数据库进行备份和还原。

2.2.1需求获取模式

l.用户需求从提出到实现,是一个从无到有、从抽象到具体的过程。在这个过程中,系统完成何种业务功能,系统包含哪些用户,分别为其提供哪些功能,在很大程度取决于用户能否系统的、完整的提出需求,这是需求获取阶段的一个重要问题。

2.需求获取的过程需要深入用户业务流程,体会用户业务实现的过程,整个过程需要用户的积极配合和参与,用户能否积极进行配合和参与,也是需求获取阶段的重要问题。

3.克服需求的二义性。需求二义性问题在以往的需求获取中经常发生,二义性可能会导致如下结果:用户认为是A,需求获取人员认为是B,设计人员设计完成后变成了C。所以需求书写的二义性问题也是在需求获取阶段需要重点关注的问题之一。

4.需求是驱动整个软件开发的基础,稳定的需求对于系统开发非常重要,如果需求经常变化,将对软件开发的进度和质量控制产生破坏性的影响,如何应对不断变化的需求、控制用户需求变更是需求阶段必须面对的问题。

2.2.2性能要求

系统的架构设计应具满足结构简洁层次清晰,重用性好,易扩展、保证数据安全的目标。且应具有高可伸缩性,满足企业未来发展。要求可用性好、安全性高、系统结构简洁,层次清晰、易操作性、重用性好、易扩展等特点。

2.2.3数据要求

根据实体及其属性,经过分析可以得出如下实体联系:

1、商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;

2、每个供货商可以供应多种不同商品,每种商品可由多个供应商供应;

3、一个库存可以存放多批订单商品,每批订单商品都在一个库存;

4、一个柜存可以存放多批订单商品,每批订单商品都在一个柜存。

本次设计的超市管理系统的总体目标是以科学的管理方法为基础,与商品流通信息化接轨,结合商品销售的自身特点,建立一套具有商业企业经营特色的、

覆盖超市企业主要业务功能、人机协调的管理系统,实现对商品流转管理、库存管理、柜存管理、人员管理等实时查询、修改、删除、分析的综合性管理信息系统,及时反映企业的经济活动状态和所需的各种商情信息,为超市管理者提供良好的决策支持环境,成为超市管理人员的有力助手,提高超市的经济效益。

3 系统概要设计

3.1系统整体设计

3.1.1系统结构设计

本系统是能完成具有商品销售跟管理两方面功能的超市管理系统。按照功能模块划分该系统包括三大模块:

1.登录验证模块

完成登录、密码找回。

2.后台管理员模块

完成基础信息管理(商品目录信息、员工信息、供应商信息)、采购信息管理(订货单查询、订货单添加、订货单修改、订货单删除)、库存管理(库存查询、库存添加、库存修改、库存删除)、柜存管理(柜存查询、柜存添加、柜存修改、柜存删除)、销售管理(销售查询、退货查询、每日结算)、数据库维护(数据库备份、数据库还原、密码修改)帮助等功能。

3.前台售货员模块

完成销售管理(售货、退货、每日结算)、密码修改、帮助等功能。

3.1.2系统模块结构

该系统的整体结构图,如图3-1所示:

图3-1 整体结构图

基础信息管理结构图,如图3-2所示:

图3-2 基础信息管理结构图

本模块所包含的三个子模块分别具有查询、添加、修改、删除功能。采购信息管理结构图,如图3-3所示:

图3-3 采购信息管理结构图

库存管理结构图,如图3-4所示:

图3-4 库存管理结构图

柜存管理结构图,如图3-5所示:

图3-5 柜存管理结构图

管理员模块销售管理结构图,如图3-6所示:

图3-6 销售管理(管理员)结构图售货员模块销售管理结构图,如图3-7所示:

图3-7 销售管理(售货员)结构图数据库维护结构图,如图3-8所示:

图3-8 数据库维护结构图

3.2 数据库概念设计

概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最终结果。E-R模型是概念设计的有利工具。

下面是超市管理信息系统E-R图,如图3-9所示:

图3-9 系统E-R图

3.3 数据库逻辑设计

本系统选用的是关系型数据库管理系统,因而在逻辑设计中的工作是将E-R 模型所表示的概念结构转换为关系模型,并将关系模式进行规范化,最终可得到系统所需的关系表。

由系统E-R图转换成系统关系模型,因为牵扯表过多,以下只列出一部分:1.用户表,如表3-1所示:

表3-1 用户表

2.供应商表,如表3-2所示:

表3-2 供应商表

3.商品表,如表3-3所示:

表3-3 商品表

4.类别表,如表3-4所示:

表3-4 类别表

5.订货单表,如表3-5所示:

表3-5 订货单表

6.库存表,如表3-6所示:

表3-6库存表

3.4 数据库结构设计

本系统数据库具有商品表、订货单表、供应商表、类别表、用户表、库存表、柜存表、销售表、退货表、日清结算表,具体关系如图3-7所示:

图3-7 数据结构图

4 系统详细设计

本系统的所有模块都保持人性化的界面设计,采用统一的布局方式,简易化的操作界面,简单的操作流程,完善的功能设置,使用户能轻松熟练的使用,同时为了保证系统的整体数据安全性,设置了判断程序,在打开一个界面时必须单击该界面的退出按钮,方能操作其余界面,否则不允许用户对其他界面进行操作。

4.1登录验证模块

1.登陆界面,本界面是系统第一步的安全性控制,在验证登录者的登录名、密码、用户类别完全正确的情况下,方能进入相应的操作界面。如图4-1所示:

图4-1 登录界面

具体的数据流图,如图4-2所示:

图4-2 登录流程图

2.密码找回界面,此界面进入后需要先验证该登录用户是否存在,若存在显示相应的密码问题,在输入这确的答案后显示本用户密码,如不存在则提示输入错误。如图4-3所示:

图4-3 密码找回界面

4.2后台管理员模块

1.商品目录信息界面,本届面是查询、添加、修改、删除一体化的界面,其中商品号为主键不允许重复与修改,同时设有快速查询功能。如图4-4所示:

图4-4 商品目录信息界面

2.员工信息界面,本届面是查询、添加、修改、删除一体化的界面,其中编号为主键不允许重复与修改。如图4-5所示:

图4-5 员工信息界面

3.订货单查询界面如图4-6所示:

图4-6 订货单查询界面

4.库存查询界面,本界面设有快速查询功能,并会在所显示的商品库存数量不足20时,自动弹出提示框,询问用户是否进入订货单添加界面补订该商品。

如图4-7所示:

图4-7 库存查询界面

具体代码如下:

Imports System.Data

Imports System.Data.OleDb

Public Class 库存查询

Dim conn As New OleDbConnection

Dim cmd As New OleDbCommand

Dim dv As New DataView

Dim daap As New OleDbDataAdapter

Dim ds As New DataSet

Dim i As Integer

Sub bind()

If txt库存数量.Text < 20 Then

If MsgBox("该货物库存数量不足20件,是否补充商品?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then

o = txt商品号.Text

Me.Close()

添加订货单.MdiParent = 管理员界面

添加订货单.Show()

管理员界面.ToolStripLabel1.Text = "添加订货单"

添加订货单.txt商品号.Text = o

添加订货单.txt订单号.Focus()

End If

End If

End Sub

Private Sub 库存查询_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles MyBase.Load

conn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=超市管理系

统.mdb"

cmd.Connection = conn

https://www.doczj.com/doc/1c15450056.html,mandText = "SELECT 订货单表.订单号, 订货单表.商品号, 商品表.商品名, 商品表.类别号, 类别表.类别名, 库存表.库存数量, 订货单表.单位, 订货单表.进价, 供应商表.供应商名 FROM (类别表 INNER JOIN 商品表 ON 类别表.类别号 = 商品表.类别号) INNER JOIN ((供应商表 INNER JOIN 订货单表 ON 供应商表.供应商号 = 订货单表.供应商号) INNER JOIN 库存表 ON 订货单表.订单号 = 库存表.订单号) ON 商品表.商品号 = 订货单表.商品号 ORDER BY 订货单表.订单号;"

conn.Open()

daap.SelectCommand = cmd

daap.Fill(ds, "库存表")

dg.DataSource = ds.Tables("库存表")

dv = ds.Tables("库存表").DefaultView

Dim dtkey() As DataColumn = {ds.Tables(0).Columns("订单号")}

ds.Tables(0).PrimaryKey = dtkey

dg.DataSource = ds.Tables(0)

If dv.Count = 0 Then

MsgBox("暂无可操作数据!")

Return

End If

i = 0

txt订单号.Text = ds.Tables(0).Rows(i).Item("订单号")

txt商品号.Text = ds.Tables(0).Rows(i).Item("商品号")

txt商品名.Text = ds.Tables(0).Rows(i).Item("商品名")

txt类别号.Text = ds.Tables(0).Rows(i).Item("类别号")

txt类别名.Text = ds.Tables(0).Rows(i).Item("类别名")

txt库存数量.Text = ds.Tables(0).Rows(i).Item("库存数量")

txt单位.Text = ds.Tables(0).Rows(i).Item("单位")

txt进价.Text = ds.Tables(0).Rows(i).Item("进价")

txt供应商名.Text = ds.Tables(0).Rows(i).Item("供应商名")

conn.Close()

Call bind()

End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

i = 0

txt订单号.Text = ds.Tables(0).Rows(i).Item("订单号")

txt商品号.Text = ds.Tables(0).Rows(i).Item("商品号")

txt商品名.Text = ds.Tables(0).Rows(i).Item("商品名")

txt类别号.Text = ds.Tables(0).Rows(i).Item("类别号")

txt类别名.Text = ds.Tables(0).Rows(i).Item("类别名")

txt库存数量.Text = ds.Tables(0).Rows(i).Item("库存数量")

txt单位.Text = ds.Tables(0).Rows(i).Item("单位").ToString

txt进价.Text = ds.Tables(0).Rows(i).Item("进价")

txt供应商名.Text = ds.Tables(0).Rows(i).Item("供应商名")

Call bind()

End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

If i = 0 Then

MsgBox("已经到达第一条记录")

Else

i = i - 1

txt订单号.Text = ds.Tables(0).Rows(i).Item("订单号")

txt商品号.Text = ds.Tables(0).Rows(i).Item("商品号")

txt商品名.Text = ds.Tables(0).Rows(i).Item("商品名")

txt类别号.Text = ds.Tables(0).Rows(i).Item("类别号")

txt类别名.Text = ds.Tables(0).Rows(i).Item("类别名")

txt库存数量.Text = ds.Tables(0).Rows(i).Item("库存数量")

txt单位.Text = ds.Tables(0).Rows(i).Item("单位").ToString

txt进价.Text = ds.Tables(0).Rows(i).Item("进价")

txt供应商名.Text = ds.Tables(0).Rows(i).Item("供应商名")

Call bind()

End If

End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

If i = ds.Tables(0).Rows.Count - 1 Then

MsgBox("已经到达最后一条记录")

Else

i = i + 1

txt订单号.Text = ds.Tables(0).Rows(i).Item("订单号")

txt商品号.Text = ds.Tables(0).Rows(i).Item("商品号")

txt商品名.Text = ds.Tables(0).Rows(i).Item("商品名")

txt类别号.Text = ds.Tables(0).Rows(i).Item("类别号")

txt类别名.Text = ds.Tables(0).Rows(i).Item("类别名")

txt库存数量.Text = ds.Tables(0).Rows(i).Item("库存数量")

txt单位.Text = ds.Tables(0).Rows(i).Item("单位").ToString

txt进价.Text = ds.Tables(0).Rows(i).Item("进价")

txt供应商名.Text = ds.Tables(0).Rows(i).Item("供应商名")

Call bind()

End If

End Sub

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

i = ds.Tables(0).Rows.Count - 1

txt订单号.Text = ds.Tables(0).Rows(i).Item("订单号")

相关主题
文本预览
相关文档 最新文档