优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

超市销售管理系统

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

3数据库设计
在一个管理信息系统中,数据库的地位是非常重要的,是一个系统正常运行的基础。现在对数据库设计总结一下,大致可以分为以下几步:
 首先是收集、分析需求。
 从需求抽象出一般的实体、关系和它们的属性。
 将这些实体、关系和属性按照一定的规则转化为二元表结构。
以上各步所对应的分别就是数据库需求分析、概念结构设计和逻辑结构设计,下面仍是首先进行数据库需求分析。 内容来自think58 [来源:http://www.think58.com]

3.3.1  数据库需求分析
数据库需求分析也属于软件工程中的需求分析阶段,在这一过程中,主要是用来搜集用户的需求,然后指导数据库设计。对于没有项目经验或者准确地说是没有项目负责经验的人来说,他们对于需求分析的重要程度往往是无法完全理解的。在实际的项目开发中,开发者千万不要去臆测任何的客户需求,因为假如将来客户需求即使有很小的更改,你也可能需要花费与开发几乎相同的代价去修改你的数据库,而这同时又牵扯到程序的修改。因此比较聪明的办法就是将数据库设计得更易扩充些,争取做到如果需求要改变,则只需修改一小部分程序即可,而数据库设计不需要任何结构性的修改。
针对超市销售管理系统,分别对采购部门、销售部门和库存保管部门进行详细的调研和分析,总结出如下的需求信息:
 商品按类管理,所以需要有一商品类型信息。
 商品必须属于一个商品类型。
 如果一个商品类型存在商品,或存在下级商品类型,则该类型不可删除。
 需要记录供应商信息。
 在涉及商品数量的地方,要给出相应的单位。
 在进货信息中要包含商品供应商等信息。
 商品销售信息单中要包含登记商品销售数量、单价等信息。

copyright think58 [来源:http://think58.com]


 商品报损要有报损原因。
 进货、销售、报损操作要有相应操作员信息。
 只有管理员登录之后才可以使用系统。
 默认的管理员不可以删除。
 进货、销售、库存、报损信息都要可以添加、修改、删除、分类查找。
 当进行进货、销售和报损操作后,能相应更新库存。
 需要对进货、销售、库存、报损进行分析,总结热门商品。
经过上述系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下的数据项和数据结构:
 商品类型信息,包括数据项有:商品类型编号、商品类型名称等。
 商品信息,包括的数据项有:商品编号、商品名称、商品介绍、库存量等。
 商品单位信息,包括单位编号、单位名称等。
 供应商信息,包括供应商名称、介绍等。
 进货信息,包括进货商品、数量、单位、单价、进货时间、经手人等。
 销售信息,包括销售商品、数量、单位、单价、登记时间等。
 报损信息,包括报损商品、数量、单位、原因、登记时间等。
 管理员信息,包括管理员账号、密码、是否是默认账号等。

think58好,好think58

[资料来源:www.THINK58.com]


在上面的需求分析、数据结构设计、数据项分析的基础上,下面可以开始数据库的概念结构设计了。
3.3.2  数据库概念结构设计
得到上面的数据项和数据结构以后,就可以设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体饮食各种具体信息,通过相互之间的作用形成数据的流动。
 创建应用程序结构
到目前为止,有关数据库结构的所有后台工作已经完成。现在将通过开发超市销售管理系统的各个组件和模块,来讲解如何使用VISUAL BAISC搭建多层结构管理信息系统的应用程序框架。整个应用程序由下面4部分组成:
 用户界面端应用程序(EXE)。
 基本界面组件(ACTIVE DLL)。
 业务逻辑组件(ACTIVE DLL)。
 后台数据库(ACCESS 数据库)。
其中数据库已经创建完毕,下面依次创建程序和组件。
1.  创建用户界面端程序
在Visual Basic 6.0中选择[文件]---[新建工程]命令,打开“新建工程”对话框,选择“VB应用程序向导”。然后开始超市销售管理系统应用程序的设置。
(1)界面类型选择:选择“资源管理器样式”项,并输入工程名Merchandise。
(2)菜单选择:只保留“视图”和“帮助”菜单。

think58好,好think58

[资料来源:http://think58.com]


(3)自定义工具栏:保留默认即可。
(4)使用资源文件:选择“是”。
(5)是否访问Internet:选择“否”。
(6)标准窗体选择:勾选“登录对话框”和“关于对话框”复选框。
(7)单击[完成]按钮完成向导。
将向导生成的模块命名为mdlMain,按默认设置保存于文件夹Merchandise中,工程属性设置保留默认即可。保存之后,Merchandise应用程序创建完毕。
2.  创建业务逻辑处理组件
1)新建ActiveX DLL 工程
在Merchandise 工程中选择菜单[文件]---[添加工程]命令,打开“添加工程”对话框后,选择ActiveX DLL,创建ActiveX DLL应用程序。
2)设置工程属性
在“工程资源管理器”中选中刚才新建的工程(默认为“工程1”),选择菜单[工程]---[工程1属性]命令,打开“工程属性”对话框,对工程的一些关键属性做如下设置:
 工程类型:ActiveX DLL
 启动对象:Sub Main
 工程名称:BuySellStorageDB.
将文件保存在与Merchandise同级的BuySellStorageDB文件夹中。将组文件保存在与Merchandise同级的文件夹中,取名为Merchandise.vbg,其它取默认值。
3)加入对ADO的引用
选择菜单[工程]—[引用]命令,打开“引用”对话框,选择Microsoft ActiveXData Objects2.7Library,在工程中加入对ADO的支持。

本文来自think58 [资料来源:THINK58.com]


将新建工程时自动生成的类Class1的名称重新设置为clsPublic,然后按默认文件名clsPublic.cls保存工程。
4)创建基本界面组件
a.新建ActiveX DLL 工程
与新建工程BuySellStorageDB类似,在merchandise工程中选择菜单[文件]---[添加工程]命令,打开“添加工程”对话框后,选择ActiveX DLL,创建ActiveX DLl应用程序。
b. 设置工程属性
在“工程资源管理器”中选择中刚才新建的工程(默认为“工程1”),选择菜单[工程]---[工程1属性]命令,打开“工程属性”对话框,对工程的一些关键属性做如下设置:
 工程类型:ActiveX DLL。
 启动对象:Sub Main。
 工程名称:BuySellStorageUI。
按默认设置将工程保存在与Merchandise同级的BuySellStorageUI文件夹中即可。
c.加入对业务逻辑组件的引用
在“工程资源管理器”中选中BuySellStorageUI工程,选择菜单[工程]---[引用]命令,打开“引用”对话框,选择BuySellStorageDB,在工程中加入对业务逻辑组件的支持。
将新建工程时自动生成的类Class1的名称重新设置为clsPublic,然后按默认文件名clsPublic.cls。 copyright think58 [资料来源:www.THINK58.com]

第四章 开发业务逻辑处理组件――系统具体功能实现
现在,应用程序结构已经创建完毕,下面按照由下到上的顺序,道德俨创建业务逻辑处理组件。
进销存业务处理组件用来处理进销存管理系统中的业务逻辑,既负责与界面进行数据传递(不管是用户端界面还是基本界面组件中的界面),同时也要将界面端的请求应用业务逻辑之后对数据库进行操作。它包括以下功能:
 商品类型信息管理,对应clsMType类和clsMTypes类。
 商品信息管理,对应clsMerchandise类和clsMerchandises类。
 供货商信息管理,对应clsProvider类和clsProviders类。
 进货信息管理,对应clsByu类和clsByus类。
 销售信息管理,对应clsSell类和clsSells类。
 报损信息管理,对应clsDispose类和clsDisposes类。
 管理员住处管理,对应clsAdmin类和clsAdmins类。
4.1  信息管理类加集合类的设计思想
在本组件中,每一个模块的设计都是由这个模块的信息管理类加与之对应的集合类来实现的。具体完成的功能如下:
 在信息管理类:实现与单个信息相关的操作,包括添加、修改和删除。
 在住处管理集合类:实现与多个信息相关的操作,主要是根据不同的条件查找。

copyright think58

[资料来源:http://THINK58.com]


因此,每个模块在设计上都是独立的,除非它在逻辑上有不可分割的关系,如进货信息的操作,与商品库存直接挂钩,将进货信息表的操作与商品表的操作放入到一个事务(Transaction)中,这样来确保数据的安全性与一致性。
4.2  创建组件的通用模块
在这里需要给组件添加两个通用模块,它们分别是:
 自定义枚举类clsPublic:主要功能是保存一些自定义枚举类型。
 公共模块mdlmain:组件初始化的Sub Main函数和数据库操作的常用函数与过程。
1. 自定义枚举类
前面我们已经将新建工程时自动生成的类名称设为clsPublic,此类没有其它具体的意义,主要功能是保存一些自定义枚举类型,这些枚举类型在以后其它各类中要经常用到,所以放在这里首先介绍。
2. 组件的公共模块
在工程中添加一个模块,命名为md1Main,此模块有两上功能:
 用来连接数据库及相关的初始化操作。
 存放在对数据库的操作过程中可能用到的一些公共函数。
1) 添加全局变量
首先,我们加入两个全局变量,它们的名称和功能如下:
Public g_conn As Connection
Public g_DbPath As String
2) Sub Main()进程---组件启动入口点 think58 [资料来源:http://www.THINK58.com]
手动加入Sub Main()过程,这个就是刚才在“工程属性”中指定的启动对象。这个过程完成ActiveX DLL 的初始化工作。在这个过程中加入对g-DBPath的默认设置,并打开数据库连接。
3) ConnectToDatabase函数———与数据库建立连接
 功能:根据传禾入参数是DBAccess还是DBSQLServer 来决定连接到Access数据库还是SQL Server数据库。
 参数设计:gxcDBType类型,参见clsPublic类中的枚举定义。
 返回值:Boolean类型,True表示成功,False表示失败。
设计思路:根据传入参数来组织不同的连接字符串,然后打开数据库连接。
现在,在mdlMain模块中连接数据库的功能已经实现,下面添加在数据库时
作时比较常用的一些地函数。
4) RealString-----替换字符串的单引号
字符串在用SQL语言存储字符型数据时,单引号成了我们最大的天敌。
如果在字符串中存在单引号则它可能会意外截断字符,造成SQL语法错误。解决办法是用两个单引号来表示一个单引号。
5) MaxID----获取编号的最大值
MaxID函数用来获取表中当前主键的最大值(对于自动增长型主键而言),这个函数用天在数据库中添加新记录后,立即获取刚才添加记录的主键值。 内容来自think58 [资料来源:http://THINK58.com]
3. 创建模板类
如果你使用过类生成器的话,一定了解使用它可以给类的创建带来极大的便利。在本节中,将介绍如何使用模板类来创建一系列结构类似的类。这就要求首先清楚大本组件中,每一个模型抽象成的类都有哪些共同的属性和方法。
1) 设计、总结公共属性和方法
单个模型的信息管理类有以下共同的属性和方法:
 属性ID
 方法AddNew()
 方法Update()
 方法Delete(lngID As Long)
 方法DeleteEx()
 多个模型的集合类有以下共同的属性和方法:
 方法AddEx
 方法Clear
 方法Find
[资料来源:http://THINK58.com]