超市管理系统DA版
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
前言
超市管理系统是一个超市不可缺少的部分,它的内容对于超市的决策者和管理者来说都至关重要,所以超市管理系统应该能够为用户提供充足的信息和快捷的销售,查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对品质信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高超市管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 【买计算机毕业论文就到www.think58.com】
因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套超市管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。 copyright think58 [资料来源:www.THINK58.com]
内容来自think58 [来源:http://www.think58.com]
摘要
超市管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
本系统主要完成对超市的管理,包括进货管理,销售管理,库存管理和员工管理四个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。
系统的核心是销售、库存查询和进货管理三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成销售或进货操作时系统会自动地完成相对应信息的修改。查询功能也是系统的核心之一,在系统中主要根据商品编号和商品名称等进行查询,其目的都是为了方便用户使用,以求更快的查找到各个物料和产品品质的基本信息。系统有完整的用户添加、删除和密码修改功能,系统采用Microsoft Office中的Access 2000来设计数据库,并使用当前优秀的开发工具—VB 6.0 ,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。 think58好,好think58 [资料来源:http://www.THINK58.com]
论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。
关键字:控件、窗体、数据库,visual basic语言,超市,商品 think58.com
目 录
前言 2
摘要 3
第一章需求分析 5
1.1开发背景 5
1.2 系统业务流程分析 7
1.3系统分析 8
第二章 系统实现的理论基础 9
2.1 VISUAL BASIC 6.0 简介 9
2.2 ACCESS数据库介绍 10
2.3 ADO技术 10
第三章 系统数据库设计 12
3.1数据库的概念 12
3.2创建数据库文件 14
3.3 怎样创建一个数据表 16
3.4 VB连接ACCESS2000数据库 17
3.5数据库设计 18
第四章 系统总体规划 20
4.1系统功能 20
4.2系统功能介绍 20
4.3程序流程图和E-R图设计 28
结束语 30
致谢 31
主要参考文献 32
系统代码清单 32
本文来自think58 [资料来源:www.THINK58.com]
[资料来源:THINK58.com]本文来自think58
[资料来源:http://think58.com]
数据库设计
上面提到的各种功能的实现都离不开数据库的支持,因此数据库设计作为本系统设计的一部分不可缺少。开发本系统中使用的数据库系统是Windows Access 2000 。从上面的功能分析不难看出本系统需要建立以下几个数据表:buy表(进货表)、goods表(现存商品表)、sell表(销售表)、retreat表(退货表)、employee表(员工表)、manufacturer表(进货商表)。由于数据量比较小,所以这些数据表都存在一个数据库下:sellsystem.mdb
数据字典:
在系统的数据库设计中,进货表、销货表、商品库存表和退货表涉及了交易管理三个子菜单的绝大部分数据,是本系统数据库的核心,所以将对其部分表的设置列表显示。
Manufacturer表(进货商表)中包括有厂商编号、厂商名称、联系人姓名、电话、厂商地址等字段,表略。
employee(员工表)中包括有员工编号、员工姓名、员工密码、员工电话、员工地址等字段,表略。
buy表(进货表)中包括有进货编号、商品编号、商品名称、生产厂商、型号、数量、进货价、进货年、进货月、进货日、总金额、业务员编号等。
下面对各个数据表的结构做一下简单介绍
设计该数据表的主要目的是方便管理员的查看,使系统的数据管理能够更加层次化。具体设置如表3-1所示。
think58好,好think58
[资料来源:http://think58.com]
表3-1 buy表
字段名 数据类型 说明
进货编号 文本 字段大小为20
商品名称 文本 字段大小为20
生产厂商 文本 字段大小为20
型号 文本 字段大小为20
数量 数字 长整型
进货价 货币 货币
进货年 数字 整型
进货月 数字 整型
进货日 数字 整型
业务员编号 文本 字段大小为20
总金额 货币 货币
goods表(现存商品表)中包括有商品编号、生产厂商、商品名称、型号、进货价、销货价、数量、进货年、进货月、进货日、业务员编号、总金额等字段。具体设置如表3-2所示。
表3-2 goods表
字段名 数据类型 说明
商品编号 文本 字段大小为20
商品名称 文本 字段大小为20
生产厂商 文本 字段大小为20
型号 文本 字段大小为20
数量 数字 长整型
进货价 货币 货币
销货价 货币 货币
sell表(销货表)中包括有销货编号、商品编号、商品名称、生产厂商、型号、数量等字段,由于篇幅有限,其表略。
retreat表(退货表)中包括有退货编号、销货编号、生产厂商、商品名称、型号、单价、数量、总金额、退货年、退货月、退货日、业务员编号等。具体设置如表3-3所示。 [资料来源:http://THINK58.com]
表3-3 retreat表 本文来自think58
字段名 数据类型 说明
退货编号 文本 字段大小为20
销货编号 文本 字段大小为20
商品名称 文本 字段大小为20
生产厂商 文本 字段大小为20
型号 文本 字段大小为20
单价 货币 货币
数量 数字 长整型
总金额 货币 货币
退货年 数字 整型
退货月 数字 整型
退货日 数字 整型
业务员编号 文本 字段大小为20
第四章 系统总体规划
4.1 系统功能
1. 可以进行文本操作;
2. 添加一个数据库项目;
3. 删除一个数据库项目;
4. 修改一个数据库项目;
5. 查询信息;
6. 用户添加和密码修改。
4.2系统功能介绍
登陆窗体
该登陆窗体对用户登陆做了一个简单的判断,如果是管理员登陆则可进入初始化界面,然后再进入主界面。 具体做法是:先在窗体级中定义一个记录集,用于打开employee表,打开后将该表中的字段:员工姓名,依次加到combo1中。全加入后关闭记录集,然后对combo1和text1中的内容做一下简单判断:如果combo1和text1中的数据正好和employee表中的某个记录相同,则通过登陆窗体,否则提示用户用户名或密码有误。在通过登陆窗体中还要对用户名做一下判断:如果是管理员登陆,则进入系统初始化窗体,如果是普通用户登陆,则进入主界面。
本文来自think58
[资料来源:http://THINK58.com]
初始化窗体
该初始化窗体为本系统的使用者提供了试运行服务,如果使用者试运行后决定正式使用,可以通过管理员登陆本窗体对系统进行初始化,即清空试运行阶段的所有销售数据。具体实现过程为:定义5个记录集,其每一个记录集控制一个数据表的打开与关闭操作,其记录集的取名与数据表相近:rs_sell, rs_buy, rs_goods, rs_retreat,rs_manufacturer.当管理员点击是标签时,先出现一个消息框,问管理员是否真的要进行初始化。如果是,则5个记录集依次连接到5个数据表上,然后对每个数据表的内容进行删除操作。具体删除方法为:先对表的状态进行判断,如果某个数据表的内容为空,则直接关闭记录集,以免多步操作数据表出现错误;如果该数据表不为空,则依次删除该数据表的每一个记录,对于每一个数据表都要做此判断,并且每打开一个新的数据表都要关闭上一个数据表,这样操作起来层次显得比较清晰,而且维护起来也比较方便。
超市管理主界面: copyright think58
主窗体的建立十分简单,只需将所要实现的功能编辑成菜单即可。该窗体的运行过程为:用户首先进入登陆窗体,如果是管理员登陆,则先进入初始化窗体,经过判断是否需要初始化后,进入主窗体。其权限为:销货统计、进货统计、查看数据表和系统管理。其权限的设置使管理员能够方便的查看任何时间段内的所有信息,还可以对员工表进行管理。如果是普通用户登陆,则直接进入主窗体,其授予的权限只有交易管理和系统管理,也就是说员工只能负责对商品进行如库登记、销货登记和退货登记,另外在一个员工对本系统使用的整个期间内,进货登记、销货登记和退货登记三个窗体中的显示的业务员编号都由系统自动给出的该员工的员工编号。
进货登记窗体
本窗体用来实现商品进货功能,将进货信息添加到buy表,再将该信息选择性的加入goods表。如果是新的进货厂商,可以在此入库登记。其具体实现过程如下所述:先在窗体级变量中定义三个记录集:rs_buy,rs_goods,rs_manufacture用来控制三个数据表:buy表,goods表,manufacturer表。在用户点击添加商品中的添加入库操作之前,程序先会检查是否有用户是否有个别属性为空,并做出提示。然后将商品添加到buy表中,再添加到goods表。在添加到goods表时,程序会先判断该商品编号是否已经存在,如果存在则直接将该添加信息的数量加到goods表中相应的记录上。为此,进货编号、商品编号是buy表、goods表中不可重复的属性。为方便用户操作,程序特在商品编号的文本框:text2的Change事件中做了一个判断,即如果该商品编号存在的话直接显示该商品的其他属性。另外,对于总金额文本框也是由数量和进货价两个文本框的Change事件计算入内的。如果是新的进货商,可以将它的信息添加到进货商表。其过程和上面所说的添加到buy表基本相同,这里就不做介绍了。 think58.com [资料来源:http://THINK58.com]
(5) 销货登记窗体 本窗体主要功能是对商品进行销售,首先对员工输入的销货信息进行完整条件的判断,条件符合后进行销售。然后将销售信息存入sell表,并对goods表的数量做相应修改。 具体实现过程为:先在窗体集中定义两个记录集:rs_sell,rs_goods,用来控制两个数据表:sell表和goods表。在销货窗体中,如果用户输入的商品编号已经存在,则该商品的其它属性将随着text2(即商品编号)的Change事件出现在其对应的位置上。而销售日期和业务员编号已经是程序默认给出的系统时间和登陆员工的编号。在判断没有空缺属性后该商品将顺利添加如库,而且该商品在goods表中的数量也将随之做相应的改变,使goods表和sell表的总和保持原来goods表中的数量值。
(6)退货窗体 本窗体的功能是实现商品退货功能,当人为判断某商品可以退货时即可将该商品退货。其数据库实现为:先将该信息加入retreat表,然后从sell表中减掉,最后对goods表的数量做一下调整即可。其具体实现过程是:先在窗体集中定义三个记录集:rs_sell,rs_goods,rs_retreat用来控制三个数据表:sell表、goods和retreat表。在退货窗体中,如果用户输入的销货编号存在,则关于该商品的销售信息将依次出现在相应的对话框中。退货成功后,该退货信息先添加到退货表,然后将其退货数量从相应的sell表中减掉,并添加到goods表中。
think58.com
(7)进货统计菜单
think58.com [资料来源:http://www.THINK58.com]
进货统计菜单下有4个子菜单,分别是今日进货统计、本月进 think58好,好think58 [资料来源:www.THINK58.com]
[资料来源:www.THINK58.com]
think58
[来源:http://think58.com]
think58好,好think58
货统计、本季度进货统计、今年进货统计。由于他们的界面非常相似,本程序中使用了一个SSTab控件以选项卡的形式在一个窗体中实现以上4个子菜单。这样做使窗体显得更加美观。为
项目添加了必要的控件之后,开始进行界面设计。先在窗体上添加一个SSTab控件,单击鼠标右键在快捷菜单中选择”属性”命令。将其选项卡的数目定为4个,标题分别为:今日进货、本月进货、本季度进货、本年度进货。由于每个选项卡的界面都一样,现以”今日进货”选项卡为例,加入两个datagrid控件,两个Adodc控件,一个Label控件,一个textbox控件和8个command控件。其中两个Adodc的数据源连接都是才用的相对路径与sellsystem的buy表连接的,两个Adodc连接的SQL语句分别如下:
select * from buy
select 生产厂商,sum(总金额) as 各厂商进货总金额 from buy group by 生产厂商。
(8)销货统计窗体 销售统计菜单下有4个子菜单,分别是今日销货、本月销货、本季度销货、今年销货。由于它们的界面非常相似,本程序中使用一个SSTab控件以选项卡形式在一个窗体中实现4个子菜单。其界面设计和窗体说明与进货统计大同小异,也一样一个选项卡为例进行说明,现以”今日销货”为例:加入两个datagrid控件,两个Adodc控件,一个Label控件,一个textbox控件和8个command控件。其中两个Adodc的数据源连接都是采用的相对路径与sell表连接的,两个Adodc连接的SQL语句分别如下: copyright think58
[资料来源:http://www.THINK58.com]
select * from sell
select 生产厂商,sum(总金额) as 各厂商销货总金额 from sell group by 生产厂商。
(9)查看进货表 其界面的设计比较简单,只是一个datagrid控件,一个Adodc控件(已隐藏)和四个Command控件。本窗体的主要设计在于其四个命令按纽在进货表为空时不可用。
(10)查看进货表 本窗体的主要设计目的是设置一个查询商品库存表的条件 。具体操作为:为查询现存商品表设立了一个简单的查询条件,一个是直接显示现存的全部商品表,一个是按条件对现存商品进行查询,用户可以根据自己需要按商品名称或生产厂商分别进行查找。该窗体的实现是要在窗体集的变量中设置一个记录集rs_goods,用来控制goods表,然后将记录集在打开窗体时的select语句设为与本窗体的text1和text2有关的SQL语句。然后让现存商品表显示出来。
(11)管理员工表 本窗体的制作目的在于方便对管理员用户的管理, 本节前面曾经提过系统初始化的功能,但其初始化并不能对员工表进行操作,当管理员登陆本系统时,可以访问此窗体,对用户表进行维护。但不能对管理员进行删除操作,此操作已被本人屏蔽。
(12)更换用户功能 在一个超市可能会存在员工交接班的现象,为了方便用户交接班的操作顺利进行,在系统管理模块中做了一个更换用户子菜单,该子菜单便顺利的实现了此功能,而且它也方便了管理员的登陆管理。 copyright think58 [资料来源:THINK58.com]
(13)修改密码 为了方便用户使用,在本模块中还设置了一个修改密码窗体,该窗体主要包括一个用户名输入、一个原密码输入和两个新密码输入。此窗体实现的功能是显而易见的,方便了用户的操作,增加了系统使用的安全性。具体做法是:先要求用户将四个必填项填写完整,然后对两个新密码进行相同判断,如果相同,则将记录集rs_employee打开,对用户名和原密码进行核对,如果相同,就将老密码替换为新密码。
本节总结:对于本超市管理系统功能的实现,重点和难点有以下几处:交易管理模块:在本模块中,对于商品的进货、销货和退货操作时,都要注意其操作过程中商品数量及其它属性的变化,本人在制做此模块时,采用了指导教师的提供给我的思想:进货登记时,将进货信息添加到进货表中。然后对商品库存表的编号进行判断,如果进货信息的商品编号存在,则将商品库存表中相应记录的商品数量做对应调整;如果商品编号不存在,则直接将进货信息添加到商品库存表中。销货登记时,先将商品的销货信息添加到销货表中,然后将商品库存表中响应的商品的数量做相对调整,保证商品数量的一致性。退货登记时将退货信息添加到退货表中,然后将退货数量从销售表中减掉,最后将退货数量加到商品库存表中。在本系统管理员登陆时,显示给管理员的第一个界面:系统初始化也是本系统的又一大功能特色,其实现过程中要严格控制每一个记录集对相应数据表的打开与关闭操作。 copyright think58 [版权所有:http://think58.com]
本文来自think58 [来源:http://think58.com]
上一篇:vb试题库自动组卷系统
下一篇:图书管理系统DA