最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

超市管理系统论文

来源:动视网 责编:小OO 时间:2025-09-24 10:08:43
文档

超市管理系统论文

毕业论文超市进销存管理系统题目:___________________姓名:___________________学号:___________________指导老师:_______________2010年4月摘要本次毕业论文题目为超市进销存管理系统,主要目的是在超市进销存模块的基础上,对超市的经营、管理进行研究和探讨。根据系统所需功能,决定以WindowsXP为开发平台,采用ACCESS做后台数据库,选择功能强大的VB6.0为开发工具,利用软件工程思想和方法,总体上用结构化生命周期法进行系
推荐度:
导读毕业论文超市进销存管理系统题目:___________________姓名:___________________学号:___________________指导老师:_______________2010年4月摘要本次毕业论文题目为超市进销存管理系统,主要目的是在超市进销存模块的基础上,对超市的经营、管理进行研究和探讨。根据系统所需功能,决定以WindowsXP为开发平台,采用ACCESS做后台数据库,选择功能强大的VB6.0为开发工具,利用软件工程思想和方法,总体上用结构化生命周期法进行系
毕业论文

超市进销存管理系统

题目:___________________

姓名:___________________

学号:___________________

指导老师:_______________

2010年4月

摘  要

本次毕业论文题目为超市进销存管理系统,主要目的是在超市进销存模块的基础上,对超市的经营、管理进行研究和探讨。

根据系统所需功能,决定以Windows XP 为开发平台,采用ACCESS做后台数据库,选择功能强大的VB 6.0为开发工具,利用软件工程思想和方法,总体上用结构化生命周期法进行系统分析和设计,采用快速原型法来实现系统。

本系统由进货管理模块、出库管理模块、销售管理模块、管理员模块等组成,对超市中的各种信息进行分类管理、统筹规划,功能较为全面。

关键字:超市、进销存管理、数据库、VB、ACCESS

目录

前言……………………………………………………………………………3

摘要……………………………………………………………………………3

第一章 需求分析……………………………………………………………4

1.1 系统功能分析……………………………………………………………4

1.2 系统性能分析……………………………………………………………5

1.3 系统功能模块设计……………………………………………………5

1.4 数据流程图………………………………………………………………6

第二章 总体方案设计………………………………………………………10

2.1 系统设计概述……………………………………………………………11

第三章 数据库设计…………………………………………………………11

3.1 数据库需求分析………………………………………………………11

 3.2 数据库概念结构设计………………………………………………………12

 3.3 数据库逻辑结构设计………………………………………………………16

3.4 数据库的生成与配置……………………………………………………19

3.5 创建应用程序结构………………………………………………………19

第四章 模块软件设计……………………………………………………………20

4.1 开发业务逻辑处理组件…………………………………………………20

4.2 开发基本界面组件………………………………………………………33

4.3界面端应用程序设计……………………………………………………41

第五章 测试分析……………………………………………………………41

一、强制变量声明…………………………………………………………41

二、常见错误的避免……………………………………………………42

总结……………………………………………………………………45

参考文献………………………………………………………………45

前  言

目前,无论是公司还是企业对于货物都实行了信息化管理,以提高管理水平和工作效率,同时也可以最大限度地减少手工操作带来的错误。于是,进销存管理信息系统便应运而生。在工厂中,产品的进销存涉及产品原料的采购、库存、投入生产、报损,甚至有时涉及到销售,同时,对于产品也有相应的生产、库存、销售、和报损等环节。在其他非生产性单位,如超市、商店等,则主要涉及到进货、库存、销售和报损4个方面。

在设计一个系统时,首先要做好需求分析。合理地运用好Visual Basic的基本方法,建立一个适合企业或公司的进销存管理系统。

第一章 需求分析

1.1 系统功能分析

1) 基本信息的维护

商品类型的建立与维护,包括商品类型的新建、修改和删除等。

商品基本信息管理:包括商品基本信息的新建、修改和删除等。

供货商信息管理:包括供货商信息的新建、修改和删除等。

管理员信息管理:系统管理员的添加、删除和修改密码等。

2) 进货管理

商品进货信息管理:商品进货信息包括商品进货数量、单价、供货商等。商品进货管理功能完成进货信息登记、修改和删除等。

分类查看:可以根据商品类型来查看某种商品的进货情况。

更新库存:进货信息的变动直接关系到库存的变化。

进货分析:列出当前进货量最多的前几项商品和进货量最少的前几项商品。

库存分析:列出当前库存量最多的前几项商品和库存量最少的前几项商品。

3) 销售管理

商品销售信息管理:商品销售信息包括商品销售数量、单价、统计日期等。商品销售管理功能完成销售信息登记、修改和删除等。

分类查看:可以根据商品类型来查看某种商品的销售情况。

更新库存:销售信息的变动直接关系到库存的变化。

销售分析:列出当前销售量最多的前几项商品和销售量最少的前几项商品。

4) 报损管理

商品报损信息管理:商品报损信息包括商品报损数量、报损原因等。商品报损管理功能完成报损信息登记、修改和删除等。

分类查看:可以根据商品类型来查看某种商品的报损情况。

更新库存:报损信息的变动同样直接关系到库存的变化。

报损分析:列出当前报损量最多的前几项商品和报损量最少的前几项商品。

1.2 系统性能分析

1)多层结构设计

严格意义上的三层结构设计,其程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。本系统采用的上有三层结构进一步扩展而成的多层结构。

2)面向对象设计

在系统中将商品类型、商品等都封装成相应的类,同时每个类都有自己对应的集合类和操作类,从而再次提高了对数据库操作的安全性和程序的可扩展性。

3)指导经营的功能

进销存管理系统并不仅仅能代替传统的书面操作,更重要的是它提供了信息分析的功能,只要单击一个按钮就可以查到目前销售最好的商品或是库存最多的商品,从而起到指导经营的作用。

1.3 系统功能模块设计

按结构化程序设计思想,分析得出如下系统功能模块图:

系统功能模块图

1.4 数据流程图

图1-1

图1-2

图1-3

图1-4

图1-5

图1-6

图1-7

第二章 总体方案设计

图2-1总体设计图

2.1 系统设计概述

1)经济可行性分析

货物管理中节省人力,减轻的劳动强度。

降低成本及其他费用。

赶紧薄弱环节,提高工作效率。

提高数据处理的及时性和准确性。

2)技术可行性分析

CPU      PIII 800

RAM      MB

硬盘     3G

网络协议 TCP/IP

打印机   windows98/windowsxp/windos2000支持的各类打印机

2.2 代码设计

采用规划的格式和命名方式,层次分明,有条理,代码中附有程序注释,让人容易明白,可读性强。

2.3 界面设计

界面设计美观,用户友好性强。

第三章 数据库设计

3.1 数据库需求分析

1)针对超市进销存管理系统,分别对采购部门、销售部门和库存保管部门进行详细的调研和分析,总结出如下的需求信息:

商品按类管理,所以需要有一商品类型信息。

商品必须属于一个商品类型。

如果一个商品类型存在商品,或存在下级商品类型,则该类型不可删除。

需要记录供应商品信息。

在涉及商品数量的地方,要给出相应的单位。

商品销售信息单中要包含登记商品销售数量、单价等信息。

在进货信息中要包含商品供应商等信息。

商品报损要有报损原因。

进货、销售、报损操作要有相应操作员信息。

只有管理员登录之后才可以使用系统。

默认的管理员不可以删除。

进货、销售、库存、报损信息都要可以添加、修改、删除、分类查找。

当进行进货、销售和报损操作后,能相应更新库存。

需要对进货、销售、库存、报损进行分析,总结热门商品。

2)经上述系统功能分析和需求总结,考虑到将来功能的扩展,设计如下的数据项和数据结构:

商品类型信息,包括数据项有:商品类型编号、商品类型名称等。

商品信息,包括的数据项有:商品编号、商品名称、商品介绍、库存量等。

商品单位信息,包括单位编号、单位名称等。

供应商信息,包括供应商名称、介绍等。

进货信息,包括进货商品、数量、单位、单价、进货时间经手人等。

销售信息,包括销售商品、数量、单位、单价、登记时间等。

报损信息,包括报损商品、数量、单位、原因、登记时间等。

管理员信息,包括管理员账号、密码、是否是默认账号等。

3.2 数据库概念结构设计

本系统根据以上的设计规划出的实体有:商品类型信息实体、商品信息实体、商品单位信息实体、供应商信息实体、进货信息实体、销售信息实体、报损信息实体和管理员信息实体。

  各个实体具体的描述E-R图如下

商品类型信息实体E-R图

商品信息实体E-R图

单位信息实体E-R图

供应商信息实体E-R图

进货信息实体E-R图

销售信息实体E-R图

报损信息实体E-R图

管理员信息实体E-R图

3.3 数据库逻辑结构设计

首先将罪犯管理信息系统的数据库概念结构转化为Access数据库或SQL Server 2000数据库系统所支持的实际数据模型,即:数据库的逻辑结构。其各个表格的设计结果如下

数据表:商品类型信息表(MerchandiseType)

列名数据类型字段大小必填字段默认值说明
MT_ID_N自动编号长整型商品类型号,递增,主键
MT_Name_S文本15商品类型名
MT_RemarkR备注“”备注
数据表:商品信息表(Merchandise)

列名数据类型字段大小必填字段默认值说明
M_Id_N自动编号长整型商品编号,递增,主键
M_Name_S文本80商品名称
M_Introduce_S文本255商品介绍
M_TypeId_N数字长整型1商品类型ID

M_Storage_N数字长整型0库存量
M_UnitId_N数字长整型1单位编号
M_Remark_R备注“”备注
数据表:商品单位信息表(Unit)

列名数据类型字段大小必填字段默认值说明
U_ID_N

自动编号长整型单位编号,递增,主健 

U_NAME_S文本10单位名称
数据表:供应商信息表(Provider)

列名数据类型字段大小必填字段默认值说明
P_Id_N自动编号长整型供货商编号,主健
P_Name_S文本50供货商名称
P_Introduce_S文本255“”供货商简介
P_Remark_R备注“”备注
数据表:进货信息表(Buy)

列名数据类型字段大小必填字段默认值说明
B_ID_N自动编号长整型进货ID,递增,主健

B_ProviderId_N文本长整型供应商ID

B_MerchandiseId_N数学长整型商品ID

B_StockDate_D日期短日期Dare()进货时间
B_Deliver_S文本20送货人姓名
B_Consignee_S文本20经手人姓名
B_Count_N数字长整型0购入量
B_StockPrice_N数字单精度型0进货单价
B_OperatorId_S文本20操作员ID

B_Remark_R备注“”备注
数据表:销售信息表(Sell)

列名数据类型字段大小必填字段默认值说明
S_ID_N自动编号长整型销售编号,递增,主键
S_MerchandiseID_D数字长整型商品ID

S_RegDate_D日期短日期Date()

登记日期
S_Count_N数字长整型0售出数量
S_SellPrice_N数字单精度型0卖出单价
S_OperatorId_S文本20“”操作员ID

S_Remark_R备注“”备注
数据表:报损信息表(Dispose)

列名数据类型字段大小必填字段默认值说明
D_ID_N自动编号长整型报损编号,递增,主键
D_MerchandiseID_N数字长整型商品ID

D_RegDate_D日期短日期Date()

登记日期
D_Count_N数字长整型0报损数量
D_Reason_S文本255“”报损原因
D_Operatorld_S文本20操作员ID

D_Remark_R备注“”备注
数据表:管理员信息实体(Admins)

列名数据类型字段大小必填字段默认值说明
A_Account_S文本20账号,主键
A_Pwd_S文本20密码
A_IsDefault_B是/否

False是否是默认用户
3.4 数据库的生成与配置

经过以上的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以在Access数据库或SQL Server 2000数据库中创建表了。

3.5 创建应用程序结构

1)创建用户界面端程序

VB中选择文件-新建工程,打开,选择VB应用程序向导。设置后将向导生成的模块命名mdlMain保存与文件夹Merchandise中。

2)创建业务逻辑处理组件

新建ActiveX DLL工程-设置工程属性-加入对ADO的引用。

3)创建基本界面组件

新建ActiveX DLL工程-设置工程属性-加入对业务逻辑组件的引用。

4)在界面端程序中使用组件

在工程资源管理器中选中工程Merchandise,选择菜单工程-引用命令。打开引用对话框,在可用的引用列表中选择BuySellStorageUI和BuySellStorageDB。

程序主界面如下:

第四章 模块软件设计

4.1 开发业务逻辑处理组件

进销存业务处理组件用来处理进销存管理系统中的业务逻辑,既负责与界面进行数据传递,同时也要将界面端的请求应用业务逻辑之后对数据库进行操作。它包含以下功能:

商品类型信息管理,对应clsMType类和clsMTypes类。

商品信息管理,对应clsMerchandise类和clsMerchandises类。

供应商信息管理,对应ClsProvider类和ClsProviders类。

进货信息管理,对应clsBuy类和clsBuys类。

销售信息管理,对应clsSell类和clsSells类。

报损信息管理,对应clsDispose类和clsDisposes类。

管理员信息管理,对应clsAdmini类和clsAdminis类。

1、信息管理类加集合类的设计思想

在本组件中,每一个模块的设计都是由这个模块的信息管理类加与之对应的集合类求实现的。具体完成的功能如下:

在信息管理类:实现与单个信息相关的操作,包括添加、修改和删除。

在信息管理集合类:实现与多个信息先观的操作,主要是根据不用的条件查找。

因此,每个模块在设计上都是的,除非它在逻辑上有不可分割的关系,如进货信息的操作,与商品库存直接挂钩,将进货信息表的操作与商品表的操作放入到一个事务中,这样来确保数据的安全性与一致性。

2、创建组件的通用模块

这里需要给组件添加两个通用模块,他们分别是:

自定义枚举类clsPunliv:主要功能是保存一些自定义枚举类型。

公共模块mdlMain:组件初始化的函数和数据库操作的常用函数与过程。

自定义枚举类

我们已经将新建工程时自动生成的类名称设为clsPublic,此类没有其他具体的意义,主要功能是保存一些自定义枚举类型,这些枚举类型在以后其他各类中要经常用到,所以这里首先介绍。

组件的公共模块

在工程中添加一个模块,命名为mdlMain,此模块有两个功能:

用来连接数据库及相关的初始化操作。

存放在对数据库的操作过程中可能用到的一些公共函数。

添加全局变量

Sub Main()过程——组件启动入口

手动加入Sub Main()过程,这个就是刚才在“工程属性”中指定的启动对象。这个过程完成ActiveX DLL的初始化工作。在这个过程中假如对g_DBPath的默认设置,并打开数据库连接。

在Sub Main 中的ConnectToDatabase函数,功能是用来连接到数据库。

ConnectToDatabase函数——与数据库建立连接

功能:根据传入参数是DBAccess还是DBSQLSever来决定连接到Access数据库还是SPLSever数据库。

参数设计:gxDBType类型,参见clsPublic类中的枚举定义。

返回值:Boolean类型,True表示成功,False表示失败。

RealString——替换字符串的单引号

MaxID——获取编号的最大值

MaxID函数用来获取表中当前主健的最大值,这个函数用于在数据库中添加新记录后,立即获取刚才添加记录的主健值。

3)创建模块类

(1)设计、总结公共属性和方法

单个模型的信息管理类有以下共同的属性和方法:

属性ID

方法AddNew()

方法Update()

方法Delete(lngID As Long)

方法DeleteEx()

多个模型的集合类有以下共同的属性和方法:

方法AddEx

方法Clear

方法Find

(2)创建模板类

下面,首先利用类生成器创建一个类clsDBbase,作为模板类,向其中添加一个属性,名称为ID,类型为Long,声明为Let/Get,然后,如下表所示。

名称参数返回值说明
AddNewgxcAddNew添加数据
UpdategxcUpdate更新数据
DeletegxcDelete删除数据
DeleteExgxcDelete删除数据
然后再新建一个集合类clsDBbase,作为集合类的模板类,集合组成选clsDBbase,如下表所示。

名称参数返回值说明
AddNewObj As clsDBbase以对象为单位添加元素
Clear清空集合
FindOptional lngID As Long=-1

Optional lngTypeId As Long=0

clsDBbase查找数据
(3)使用模板类

模板类的使用很简单,在用类生成器新建类时,只要在“基于”下拉列表框中选择所需要的模板类即可。

3、商品类型信息管理模块

商品类型信息管理模块的功能需要由clsMType和clsMTypes两个类来实现,它的主要功能是:

添加商品类型信息。

修改商品类型信息。

删除商品类型信息。

查找商品类型信息。

下图是添加商品界面图:

其他与商品类型相关的常用操作。

1)、商品类型信息管理类clsMType

(1)创建clsMType类并添加属性

商品类型信息类clsMType用来处理单个商品类型的信息,实现商品类型操作的基本功能,如添加、修改、删除等。

选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器向工程中添加clsMType类,基于下拉列表框中选择clsDBbase。如下表所示。

属性名称数据类型属性声明
IDLongGet/Let
SuperIDLongGet/Let
TypeNameStringGet/Let
属性添加完毕并应用后,可以看到在clsMType类中已经自动添加了类的成员变量和属性。

(2)AddNew方法

功能:添加耽搁商品类型。

参数设计:无。

返回值:gxcAddNew类型请参考clsPublic类中gxcAddNew枚举类型的定义。

(3)Update方法

功能:修改商品类型。

返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。

(4)Delete方法

功能:删除商品类型。

参数设计:可选参数lngID表示商品类型ID,默认为-1。

返回值:gxcDelete类型,请参考clsPublic类中gxcDelete枚举类型的定义。

2)、商品类型信息管理集合类clsMTypes

商品类型信息集合类clsMTypes用来处理多个商品类型的信息,其最小的单元是clsMType,它完成与一组商品类型信息相关的操作,比如查找功能。

选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加一个集合类,命名为clsMTypes类,在“基于”下拉列表框中选择clsDBbases,在“集合组成”栏中选择clsMType类。应用设置后系统会自动生成一个标准集合类所具有的最基本属性与方法,另外也加入了clsDBbases中方法的定义。

添加AddEx方法

(2)添加Find方法

功能:根据给定参数查找商品类型,结果以clsMTypes类型返回。

参数设计:一个可选的类型ID,默认值为-1。

返回值:clsMTypes类型,一个clsMType的集合。省略参数时,返回全部商品类型。

4、商品信息管理模块

商品信息管理模块的功能需要有clsMerch和clsMerchs两个类来实现,它的主要功能是:

添加商品信息

修改商品信息

删除商品信息

查找商品信息

下图是修改商品界面图:

其他与商品信息相关的常用操作

1)、商品信息管理类clsMerch

(1)创建clsMerch类并添加属性

属性名称数据类型说明
IDLong商品编号
MerchNameString商品名称
IntroduceInteger商品介绍
TypeIdgxcSex商品类型ID

StorageLong库存量
UnitIDString单位编号
RemarkString备注
TypeNameString商品类型名称
AddNew方法

功能:添加单个商品信息

参数设计:无。

返回值:gxcAddNew类型,参考clsPublic类中gxcAddNew枚举类型的定义。

Update方法

功能:修改商品信息。

参数设计:无。

返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。

(4)Delete方法

功能:删除商品信息。

参数设计:可选参数lngID表示商品ID,默认为-1。

返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。

商品信息管理集合类clsMerchs

商品信息集合类clsMerchs用来具体处理多个商品的信息,其最小的单元是clsMerch,它完成与一组商品信息相关的操作,比如查找等。

选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加一个集合类,命名为clsMerchs类,在“基于”下拉列表框中选择clsDBbases,在“集合组成”栏中选择clsMerch类。应用设置后系统会自动生成一个标准集合类所具有的最基本属性与方法,下面,为clsMerchs添加必要的方法。

添加AddEx方法

添加Find方法

功能:根据给定参数查找商品信息,结果以clsMerchs类型返回。

参数设计:如下表。

返回值:clsMerchs类型,一个clsMerch的集合。显然当上面两个参数都不指定时,返回全部商品。

Find参数设计

参数名参数类型功能是否可选及默认值说明
lngIDLong传入商品ID

可选,默认值=0

如果取默认值,表示不商品ID

lngTypeIdLong传入商品类型ID

可选,默认值=0

如果取默认值,表示不商品类型
添加FindStorage方法

功能:按库存量排序查找商品,结果以clsMerchs类型返回。

参数设计:参见下表。

返回值:clsMerchs类型,一个clsMerch的集合。

FindStorage方法参数设计

参数名参数类型功能是否可选及默认值说明
IsDescBoolean表示是否采用降序可选,默认值=true

nCountInteger最多显示多少条记录可选,默认值=10

5、供货商信息管理模块

供货商信息管理模块的功能需要由clsProvider和clsProviders两个类来实现,它的主要功能是:

添加供货商信息。

修改供货商信息

删除供货商信息

查找供货商信息

下图是供贷商界面图:

其他与供货商信息相关的常用操作。

供货商信息管理类clsProvider

创建clsProvider类并添加属性

供货商信息类clsProvider用来具体处理单条供货商信息,完成供货商信息的基本操作功能,如添加、修改、删除等。

clsProvider类的属性设置

属性名称数据类型说明
IDLong供货商编号
ProviderNameString供货商名称
IntroduceString供货商简介
RemarkString备注
(2)AddNew方法

功能:添加单个供货商信息。

参数设计:无。

返回值:gxcAddNew类型,参考clsPublic类中的gxcAddNew枚举定义。

(3) pdate方法

功能:修改供货商信息。

参数设计:无。

返回值:gxcUpdate类型,参考clsPublic类中的gxUpdate枚举类型的定义。

Delete方法

功能:删除供货商信息。

参数设计:可选参数lngID表示供货商信息ID,默认为-1。

返回值:gxcDelete类型,参考clsPublic类中gxcDelete枚举类型的定义。

在删除供货商的同时,必须先删除与这个供货商相关的进货信息,而且要把这两个操作放在一个事务里面。

供货商信息管理集合类ClsProviders

供货商信息集合类clsProviders用来处理多条供货商信息,其最小的单元是clsProvider,它完成与一组供货商信息相关的操作,比如查找等。

选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加一个集合类,命名为clsProviders类,在“集合组成”栏中选择clsProvider类。应用设置后系统会自动生成一个标准集合类所具有的最基本属性与方法,下面,为clsProviders添加必要的方法。

添加AddEx方法

添加Find方法

功能:根据给定参数查找供货商信息,结果以clsProviders类型返回。

参数设计:一个可选的类型ID,默认值为-1。

返回值:clsProviders类型,一个clsProvider的集合。省略参数是,返回全部供货商。

6、进货信息管理模块

进货信息管理模块的功能需要由clsBuy和clsBuys两个类实现,它的主要功能是:

添加进货信息。

修改进货信息。

删除进货信息。

查找进货信息。

按商品统计分析进货信息。

下面是界面图:

其他与进货信息相关的常用操作。

进货信息管理类clsBuy

创建clsBuy类并添加属性

属性名称数据类型说明
IDLong进货ID

ProviderIdString供应商ID

ProviderNameString供应商名称
MerchandiseIDLong商品ID

MerchNameString商品名称
StockDateDate进货时间
DeliverString送货人姓名
ConsigneeString经手人姓名
CountLong购入量
StockPriceSingle进货单价
OperatorIdString操作员ID

RemarkString备注
TypeNameString商品类型名称
StockTimesLong进货次数
TotalPriceSingle总进货支出
AddNew方法

功能:添加单条进货信息。

参数设计:无。

返回值:gxcAddNew类型,请参考clsPublic类中的gxcAddNew枚举定义。

Update方法

功能:修改进货信息。

参数设计:无。

返回值:gxcUpdate类型,请参考clsPublic类中gxcUpdate枚举类型的定义。

Delete方法

功能:删除进货信息。

参数设计:可选参数lngID表示供货商信息ID,默认值为-1。

返回值:gxcDelete类型,请参考clsPublic类中gxcDelete枚举类型的定义。

进货信息管理集合类clsBuys

添加AddEx方法

添加Find方法

功能:根据给定参数查找进货信息,结果以clsBuys类型返回。

参数设计:两个可选参数,一个是进货编号,另一个是商品类型编号。 

返回值:clsBuys类型,一个clsBuy的集合,省略参数时,返回全部进货。

添加FindStorage方法

功能:统计各种商品的进货次数和累计进货总支出,最后按进货总支出来排序,结果以clsBuys类型返回,最多返回前nCount条记录。

参数设计:参加下表

参数名参数类型功能是否可选及默认值说明
IsDescBoolean表示是否采用降序可选,默认值=True

nCountInteger最多显示多少条记录可选,默认值=10

●返回值:clsBuys类型,一个clsBuy的集合。

7、销售信息管理模块

销售信息管理模块的功能需要由clsSell和clsSells两个类实现,它的主要功能是:

添加销售信息。

修改销售信息。

删除销售信息。

查找销售信息。

按商品统计分析销售信息。

界面图如下:

其他与销售信息相关的常用操作。

销售信息类clsSell用来具体处理单条销售信息,完成销售信息的基本操作功能,如添加、修改、删除等。

选择菜单[工程]—[添加类模块]命令,打开“添加类模块”框,选择“VB类生成器”,使用类生成器在工程中添加clsSell类,如下表所示。

属性名称数据类型说明
IDLong销售编号
MerchandiseIDLong商品ID

MerchNameString商品名称
RegDateDate登记日期
CountLong售出数量
SellPriceSingle售出单价
OperatorIdString操作员ID

RemarkString备注
TypeNameString商品类型名称
RegTimeLong登记次数
TotalPriceSingle售出总价
clsASell类中的AddNew、Update和Delete方法,与进货信息中的处理很类似,只是数据库中的字段不同而已。

8、报损信息管理模块

报损信息管理模块的功能需要由clsDispose和clsDisposes两个类来实现,它的主要功能是:

添加报损信息。

修改报损信息。

删除报损信息。

查找报损信息。

按商品统计分析报损信息。

其他与报损信息相关的常用操作。

报损信息类clsDispose用来具体处理单条报损信息,完成报损信息的基本操作功能,如添加、修改、删除等。

选择菜单[工程]— [添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加clsDispose类,如下表所示。

属性名称数据类型说明
IDLong报损编号
MerchandiseIDLong商品ID

MerchNameString商品名称
RegDateDate登记日期
CountLong报损数量
ReasonSingle报损原因
OperatorIdString操作员ID

RemarkString备注
RegTimesLong登记次数
TotalCountLong报损总数量
TypeNameString商品类型名
clsDispose类中的AddNew、Update和Delete方法,与进货信息中的处理很类似,只是数据库中的字段不同而已。

9、管理员信息管理模块

管理员信息管理模块的功能需要由clsAdmin和clsAdmins两个类来实现,它的主要功能是:

添加管理员信息。

修改管理员信息。

删除管理员信息。

查找管理员信息。

验证管理员密码。

其他与管理员信息相关的常用操作。

管理员信息类clsAdmin用来具体处理单条管理员信息,完成管理员信息的基本操作功能,如添加、修改、删除和验证密码等。

选择菜单[工程]—[添加类模块]命令,打开“添加类模块”对话框,选择“VB类生成器”,使用类生成器在工程中添加clsAdmin类,如下图所示。

属性名称数据类型说明
AccountString管理员账号
PwdString密码
IsDefaultBoolean是否是默认用户
clsAdmin中的AddNew、Update和Delete方法,与以上各类中的处理很类似,只是数据库中的字段不同而已。

4.2 开发基本界面组件

进销存管理系统基本界面组件用来处理进销存管理系统中与界面相关的操作,既负责与用户界面层进行数据传递,同时也要将界面端的请求传递给业务处理层,进一步转化为数据库操作。它包括以下功能:

商品类型操作管理,对应frmMType窗体和clsOpMType类。

商品操作管理,对应frmMerch窗体和clsOpMerch类。

供货商操作管理,对应frmProvider窗体和clsOpProvider类。

进货操作管理,对应frmBuy窗体和clsOpBuy类。

销售操作管理,对应frmSell窗体和clsOpSell类。

报损操作管理,对应clsDispose窗体和clsOpDispose类。

管理员操作管理,对应frmUser窗体和clsOpAdmin类。

1、信息输入界面加操作类的设计思想

●1)每个模块的组成

●在本组件中,每一个模块都是由信息输入界面与相应的操作类来实现的,具体完成的功能如下:

●信息输入界面:可供添加或修改时调用,用来获取用户输入,将用户输入封装到对应的信息管理类中。

●操作类:可供界面端程序调用,实现了两个功能:其一是用来调出信息输入界面,接收用户输入,将输入存入数据库,并给出数据库操作的结果;其二是通过传引用的方式,向用户界面端传入的控件添加数据,从而在用户截面端显示。

●2)输入界面的代码结构

●为了方便维护和快速开发,每个界面的实现代码结构都很相似,大多都包括如下的方法:

●ShowDlg:用来显示对话框,内部调用Me.Show vbModal,程序停止在这里。

●SetStatus:设计对话框控件的默认状态。

●SetDefaultValue:设计对话框的默认值。

●OKButton_Click:[确定]按钮单击处理事件。

●CheckValid:检查用户输入有效性。

●SaveValue:保存用户输入。

●CancelButton_Click:[取消]按钮单击处理事件。

●当用户单击[确定]或[取消]按钮后,程序继续执行ShowDlg函数后面的语句,用来保存或放弃用户输入。

●3)操作类的代码结构

●同样为了方便维护和快速开发,每个操作类的代码结构也都很相似,大多包括如下方法:

●Add:管理增加操作。

●Modify:管理修改操作。

●Delete:管理删除操作。

●AddToLvw:将单个对象加入列表,或在列表中更新。

●InitListview:设置ListView的显示样式。

●ObjsToListView:将对象集合显示到ListView中。

●FillListView:显示指定类型对象到列表控件。

●GetObjFromControl:从列表或树形图中得到一个对象。

●ObjsToCornbo:传入参数为对象的单向类与组合框。

●FillCombo:将全部对象加入到组合框中。

2、创建组件的公共模块

●为了将来扩展方便,这里加入一个公共模块,命名为mdlMain ,现在只添加一个空的Sub Main作为组件的初始化函数。

3.商品类型操作管理模块

商品类型管理模块实现以下功能:

●处理添加商品类型的操作。

●处理修改商品类型的操作。

●处理删除商品类型的操作。

●处理列举或查找商品类型的操作。

4.商品操作管理模块

商品操作管理模块实现以下的功能:

●处理添加商品的操作。

●处理修改商品的操作。

●处理删除商品的操作。

●处理分析商品库存量的操作。

●处理列举或查找商品的操作。

3、供货商操作管理模块

供货商操作管理模块实现以下的功能:

●处理添加供货商的操作。

●处理修改供货商的操作。

●处理删除供货商的操作。

●处理列举或查找供货商的操作。

4、进货操作管理模块

进货操作管理模块实现以下的功能:

●处理添加进货的操作。

●处理修改进货的操作。

●处理删除进货的操作。

●处理分析进货总支出的操作

●处理列举或查找进货的操作。

5、销售操作管理模块

销售操作管理模块实现以下的功能:

●处理添加销售的操作。

●处理修改销售的操作。

●处理删除销售的操作。

●处理分析销售总收入的操作。

●处理列举或查找销售的操作。

6、报损操作管理模块

报损操作管理模块实现以下的功能:

●处理添加报损的操作。

●处理修改报损的操作。

●处理删除报损的操作。

●处理分析报损总数量的操作。

●处理列举或查找报损的操作。

7、管理员信息操作管理模块

管理员信息操作管理模块实现以下的功能:

●处理添加管理员信息的操作。

●处理修改管理员信息的操作。

●处理删除管理员信息的操作。

●处理列举或查找管理员信息的操作。

4.3 界面端应用程序设计

1、公共模块的设计

在创建用户界面端应用程序时,向导已经为我们生成了一个名为mdlMain的模块,我们对这个模块稍微修改即可使用。

●添加成员变量

●修改Main过程

2、用户登入模块的设计

用户登入对话框设计

●用户登入对话框代码设计

●添加成员变量

●修改Form_Load过程

●修改[确定]按钮的处理代码

3、系统主界面的设计

●设计主窗体控件布局

控件名称属性属性取消功能
frmMainCaption进销存管理系统系统主窗体
 inlViewSIcon(ListView)

ImageHeight16树形控件和列表框小图标所使用的图片
 ImageWidth16
 inlViewBIcon(ImageList)

ImageHeigh32列表框大图标所使用的图片(未用:待扩展)

 ImageWidth32
 tvTreeView(TreeView)

LineStyleTvwRootLines显示商品类型树
 ImageListinlViewSIcon 
 sstabView(ListView)

StyleO-ssStyleTabbedDialog右侧选项卡,做容器用
 TabOrientationO-ssTabOricntationTop
 lvMerch(ListView)

lvBuy(ListView)

lvSell(ListView)

lvDispose(ListView)

lvProvider(ListView)

FullRowSelectTrue分别用来显示商品商品信息列表

进货信息列表

销售信息列表

报损信息列表

供货商信息列表

 GridLinesTrue
 ViewlvwRiport
 IconimlViewBIcon
 SmallIconimlViewSIion
●设计选项卡sstabView

给sstabView控件添加5个选项卡,选项卡标题分别设置为“商品库存”、“进货记录”、“销售记录”、“报损记录”和“供应商”,分别对应5个ListView。

●添加菜单

4、添加主界面的处理代码

●添加窗体初始化函数

●菜单响应函数

●树形控件单击响应函数

●其他代码

5、用户管理模块

●用户管理对话框界面设计

●用户管理对话框代码设计

6、经营分析模块

经营分析模块用来对超市的运作情况进行分析,具有以下功能:

●库存量排行。

●进货总量与登记次数排行。

●销售总量与登记次数排行。

●报损总量与登记次数排行。

1)经营分析对话框界面设计

控件名称属性属性取消功能

FrmAnalysis(Form)

Caption经营分析经营分析对话框

List

库存分析

进货分析

销售分析

报损分析

CboOrder(ComboBox)

Style2-DropDownList前↓:降序排列,取前若干项;↑后:降序排列,取后若干项。然后再按由小到大显示

List

前↓

↑后

TxtCount(TextBox)

MaxLength3显示数量
CmdSearch(CommandButtom)

Caption查看[查看]按钮
CmdClose(CommandButtom)

Caption关闭[关闭]按钮

LvAna(ListView)

GridLinesTrue显示数据容器
ViewlvwRiport
2)经营分析对话框代码设计

第五章 测试分析

一、强制变量声明

选择菜单[工具]—[选项]命令,打开“选项“对话框”,在“编辑器”属性页中,把“要求变量声明”复选框选上,或者手工在每个文件的开头加上关键字:

option Explicit

这样在编译时会对没有声明的变量报错,从而减少很多不必要的调试。

二、常见错误的避免

1、数据类型不匹配

  数据类型的判断错误,比如一个功能模块,接受传入的数据为id,要求其值必须是正数。如果写程序时传入的是小数,或者是非数字的字符串,那么程序将会出现错误。又如查询数据表时,使用了WHERE子句,但是数据类型不匹配,数据库中字段类型为数字的值,却使用了字符串去查询,就会出现错误。

2、数据与数据库相冲突

数据与数据库相冲突,可能是其值超过了数据库的上限和下限。比如在数据库中,用户名称字符数量上限是20个字符,而在程序中没有对此进行判别,如果一个添加新商品时名字有21个字符,那么在使用SQL语句插入数据与记录的时候就会出错。

3、变量声明错误

最后是一些常识性错误,比如在If…Else…End If过程中,认为判断只会执行其中的一段代码,于是在两段中都使用了Dim obj as clsMerch,事实上,编译器在语法分析阶段,是首先将一个函数内声明的全部变量都放符号表中,而不管这个变量的声明是在这个函数的什么位置。

又如在Select Case中,Case的条件是字符串,但是没有加引号,就变成了Case一个空变量。

4、资源的建立与释放

在将类实例化时,必须使用New关键字,未实例化类无法使用,例:

误:

  Dim obj as clsMerch

ClsMerch.AddNew

正:

  Dim obj as clsMerch

  Set obj=New clsMerch

  ClsMerch.AddNew

同理,在调用Set obj=Nothing后,资源已经释放,无法再调用类内的方法。

5、系统的编译和发行

3个工程的项目属性在前面创建项目时均已设置完毕,由于在本系统中生成了名为BuySellstorageDB.dll和BuySellstorageUI.dll的组件,当移植到其他机器使用时,需要先注册此组件。另外系统中默认的数据库的路径是与BuySellstorageDB.dll同目录下的DB文件夹,因此当移植到其他机器时,这个路径关系依然不能改变。

总结

  一个完整的多层结构超市进销存管理系统就创建完毕了。对超市进销存管理系统的设计与实现,重点介绍了多层结构的开发思想,在完成系统搭建的同时还可以体会到软件工程在项目开发中各个环节的具体应用,并对使用Visual Basic 6.0开发数据库应用程序的方法和技巧有了更一步的掌握。

参考文献:

[1] 汉清计算机工作室,《 Visual Basic 6.0 数据库开发实例 》,机械工业出版社 2000.3

[2] 何旭洪,《Visual Basic 数据库开发实例导航》,人民邮电出版社 2002

[3] 孙健鹏,《VB数据库开发实例解析》,机械工业出版社

[4] 王汉新,《Visual Basic程序设计》,科学出版社 2004

[5] 陈惟斌,《Visual Basic 6.0开发指南》,清华大学出版社 2001.1

[6] 张春葆,《VB数据库系统设计与开发》,清华大学出版社

[7] Buczek,《Access 2002数据库开发即时应用》,人民邮电出版社 2004

[8] Visual Basic 6 Harry M. Deitel, Paul J. Deitel, Tem R. Nieto 电子工业出版社

文档

超市管理系统论文

毕业论文超市进销存管理系统题目:___________________姓名:___________________学号:___________________指导老师:_______________2010年4月摘要本次毕业论文题目为超市进销存管理系统,主要目的是在超市进销存模块的基础上,对超市的经营、管理进行研究和探讨。根据系统所需功能,决定以WindowsXP为开发平台,采用ACCESS做后台数据库,选择功能强大的VB6.0为开发工具,利用软件工程思想和方法,总体上用结构化生命周期法进行系
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top