作业名称:小型超市管理系统的开发
作业内容:
一、课题的提出
随着高科技的发展,物品的种类越来越多,尽管增加了不少人员和设备,但仍然满足不了顾客选择和购买的快速要求,顾客意见很大。
据此,超市老板研究决定:在超市内部建立一个信息管理系统,以便更好的对超市的物品进行管理和统计。
二、超市信息系统开发概述
在开发超市管理系统时,我们针对零售业的特点,从用户实际需要出发,选择合理的系统环境,实现现代化的经营管理,提高工作效率系统设计采用模块化概念,可根据需要适当裁减,具有高度灵活性和可扩充性以及和有关部门进一步联网的接口,以适应不断更新的管理模式。
基于本系统规模较小、功能比较简单、信息量不大的特点,所以仅使用了几个环节,即:
1、系统查询,进行业务分析
2、系统分析,运用结构分析法、数据流图、数据字典等工具,确定系统功能
3、系统物理设计,根据确定的系统功能,选择合适的软硬件环境,确定模块结构与
数据库的建立
4、程序设计,选用Visual FoxPro6.0为开发工具,编制相应的应用程序
三、业务分析
1、业务范围与工作流程
超市管理下设:工资管理、入库管理、销售管理、系统管理。
根据对其业务的调查和分析,现归纳为:
(1)进货业务处理
货品来源:商品进货单及验收数据
数据登录:商品进货情况登记账
商品库存登记账
库存数量=原有库存量+本期进货量
(2)购买业务处理
顾客购买是超市日常的主要的业务,它是通过各购买点来实现的,其数据流程如图1所示。
图1 商品购买管理的数据流程图
图2 系统总体结构图
(3)商品入库处理
定期盘存,对过期或已售的商品进行处理,及时更改信息,并对还没入库的商品
进行相应的处理或记录。
(4)相关业务处理
主要是进行商品信息的查询、统计、信息标准化工作。
包括建立各种商品信息标
准编码。
2 数据收集
为实现商品信息查询和统计的基本要求,我们重点收集了以下原始资料。
超市老板:查看员工资料、查看员工工资、库存、供货来源、原单价表、修改密码
销售人员:查看库存、查看供货来源、销售记录、原单价表、入库记录
顾客:查看商品信息、修改密码
3 数据分析与数据字典
数据分析的目的是把数据流程图中未能详细表达的有关数据的各种资料进行汇总整理,以便使得到具体的完整的认识并为以后的编程所用。
在数据字典中,组项和基本项有区别的。
本作业中,仅给出数据字典的一部分,见表1
四、确定系统功能
通过详细调查和业务分析之后,确定“超市管理系统”的功能如下。
1、浏览新商品信息
2、分类引导检索新商品及全部商品信息
3、按商品名称、商品编号、入库日期等查询商品信息
五、功能模块的划分
根据已确定的系统功能,按照功能划分模块的原则,本系统采取的是一个主控程序的调度下,设置四个功能模块,其模块结构如图3所示。
六、数据库设计
原则上,数据库设计是指确定系统中所有数据库文件及相关文件的逻辑结构与存储结构。
本系统数据库的组成如图4。
图4 数据库的组成
本作业为减少篇幅,这里给出1个主要的数据表,它们的结构分别是:
假定通过调查、分析、已经得到某单位的商品信息,为了使用的方便,也为了提高表的范示,我们将建立1个主要的数据表,它们的结构如下。
字段名类型宽度小数位数索引NULL
xm 字符型10
jbgz 数值型9 2
jj 数值型7 2
pt 数值型7 2
kk 数值型7 2
ks 数值型9 2
px 数值型10 0
gzl 数值型10 0
Gz2 数值型10 0
七、创建数据库
利用菜单选项或工具栏按钮打开“新建”对话框,指定建立数据库文件,单击“新建”
按钮,并给出数据库文件名为:CS _DATA.DBC,一个数据库文件就建立好了。
形式如下图。
[建立数据表]
Geb表Kl表Rxsdtb表
Slk
表
Spjbb表
Sprkdtb表
Sprkmxb表
Yxsmxb表
Rxsmxb表
(1)创建数据表rxsdtb.dbf
在数据库中“数据库”菜单项,或者快捷菜单的“新建表”选项打开表设计器,在设计器窗口中分别键入各字段名、类型、宽度及小数位数值。
结果如下图所示。
(2)在表设计器窗口中的形式
[记录的输入]
打开数据表,可以直接输入记录信息。
但是为了建立系统,我们采用输入记录界面录入,用表单建立输入界面如下。
八、程序设计
程序设计是系统实施阶段的核心工作,也是主要内容。
(1)本系统的登录界面如下。
字段字段名类型宽度小数位索引NULL
1 xsrq 日期型8
2 dh 数值型
3 0 升序
3 user 字符型8
正确选择输入允许的用户名及密码,单击“确定”打开系统。
该系统有三个用户名。
用户名:admin zsj ll
密码:12345 3834871 3829008
“确定”按钮的响应程序如下:
*sele kl
o=thisform
sele kl
locate for allt(xm)=allt(o.txtxm.text) .and. allt(kl)=allt(o.txtkl.text)
if found()
user=allt(o.txtxm.text)
thisform.release
* do form mainform
else
messagebox("用户名错或密码错!",48+0+0,"操作提示")
o.txtxm.setfocus()
endif
(2)系统的主控程序
整个系统由主控程序mian.prg调度。
该程序内容如下:
clea all
close all
public be,user ,rec,rec1,mdh
set stat bar off
set talk off
set safe off
_screen.visible=.f.
do form loginform
read event。