《数据库应用基础与实训教程——Visual_FoxPro》第11章:程序设计举例_第1页
《数据库应用基础与实训教程——Visual_FoxPro》第11章:程序设计举例_第2页
《数据库应用基础与实训教程——Visual_FoxPro》第11章:程序设计举例_第3页
《数据库应用基础与实训教程——Visual_FoxPro》第11章:程序设计举例_第4页
《数据库应用基础与实训教程——Visual_FoxPro》第11章:程序设计举例_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章 程序设计举例,(时间:3次课,6学时),第11章 程序设计举例,学习目的与要求: 学习计算机语言和数据库的知识重点在于应用。本章通过剖析一个虚拟的小型超市管理系统的开发过程,使学习者能够初步了解应用Visual FoxPro解决一个实际问题的方法和过程。学习者通过本章的学习,并亲自动手进行模拟,相信能够对Visual FoxPro程序设计会有一个更好的认识。,第11章 程序设计举例,11.1 小型超市管理系统分析 11.2 小型超市管理系统的实现 11.3 上机实训,11.1 小型超市管理系统分析,1、背景 某小型超市主要经营电器、服装、食品、家庭日用品等上百个大类的商品,每大类商品中又有几十个品种的小类商品。每天入库单据100多张,销售单据700多张,营业额由几万元到十几万元不等。为了适应业务的发展,改善管理,提高经济效益,超市经理决定开发一套计算机辅助管理系统,主要用于进货、库存、销售等日常管理,并重点提出以下几个问题: 1)每个收银员在下岗之前要进行结账对账,即现金与销售账进行对账; 2)对一些有时限的商品要能够及时预警,以便进行及时促售处理; 3)能够查询每天、每月商品销售情况,能对商品销售数量进行汇总查询,能够查询商品库存情况。系统通过提供这些信息,为经营管理者的经营决策提供依据。,11.1.1 小型超市系统的基本资料,2、基本需要分析 1)系统运行环境 硬件:PC兼容机,128MB以上内存,彩显; 软件:Windows 98 以上,Visual FoxPro 6.0以上。 2)软件主要功能 (1)用户界面友好,操作简单; (2)使用对象:系统管理员(admin)可以设置商品基本信息,可以增加、删除使用该系统的用户,但不可买卖商品;一般操作员只能对商品进行进货、销售、查询处理,不可修改商品信息;(3)对录入数据具备初级的逻辑审查能力; (4)对进货单和销售单具备增、删、改功能; (5)可查询日销售、月销售情况; (6)能对员工的工资进行计算; (7)能够实现背景资料中用户提出的基本要求。,11.1.1 小型超市系统的基本资料,1、功能模块 系统管理商品编码、用户管理、更改口令、更换操作员; 入库管理入库单的管理(增删改)及到期商品查询; 销售管理商品销售、结账,查询日销售、月销售情况; 工资管理工资数据维护、工资数据计算,税率表维护。,11.1.2 小型超市系统的分析和设计,2、数据库设计 根据分析,本系统设计一个名为DB的数据库,共有以下9个数据表,表的结构详见第3章中的实训内容。 用户管理表 user 商品基本表 spjbb 商品入库单头表 sprkdtb 商品入库明细表 sprkmxb 日销售单头表 rxsdtb 日销售明细表 rxsmxb 月销售明细表 yxsmxb 工资表 gzb 税率表 slb,11.1.2 小型超市系统的分析和设计,2、数据库设计 入库单头表与入库明细表是一对多关系,并建立了有关删除、插入、更新的参照完整性;销售单头表与销售明细表是一对多关系,并建立了有关删除、插入、更新的参照完整性;商品基本表与商品入库明细表、日销售明细表、月销售明细表均建立了关联。 另外,为便于对数据进行处理,建立了以下视图 销售用明细视图 xsmxb 查询及结账用日销售明细视图 rmxcx 日销售明细汇总查询视图 rmxhzcx 月销售明细按编号汇总查询视图 ymxbhhzcx 月销售明细按日期汇总查询视图 ymxrqhzcx 月销售明细查询视图 ymxcx,11.1.2 小型超市系统的分析和设计,3、数据流 1)录入入库单时,在入库单头表中增加一新记录,然后在入库明细表中添加若干条新记录(一种商品一条记录),同时在商品基本表中修改相应商品的库存量。 2)录入销售单时,在销售单头表中增加一新记录,然后在销售明细表中添加若干条新记录(一种商品一条记录),同时在商品基本表中修改相应商品的库存量。 3)在入库单头表中删除一条记录时,同时自动删除入库明细表中相同入库单号的若干条记录,并修改商品基本表中的有关数据。 4)销售不提供删除及修改数据的功能,但可以输入负数量进行冲账。,11.1.2 小型超市系统的分析和设计,4、编码规则 1)商品编号:类别代码+品种代码 例:电器类 001 电风扇 00101 洗涤类 002 洗衣粉 00201 钢笔类 003 钢笔 00301 食品类 004 饼干 00401 2)入库单号:入库日期+顺序号 例:20060512001 20060513002 . 3)销售单号:顺序号 例:1 2 3 .,11.1.2 小型超市系统的分析和设计,5、用户界面(表单)设计 本系统共设计了22个表单用来完成系统的功能,表单的功能及详细设计见11.2节。 1)用户登录表单(loginform) 2)应用程序主表单(mainform) 3)用户更新密码表单(updateform) 4)更换操作员表单(loginform1) 5)用户管理主表单(userform) 6)新增及修改用户表单(useraddeditform) 7)商品基本情况管理主表单(spjbbform) 8)新增加及修改商品基本情况表单(spjbbaddeditform) 9)入库单头主表单(rkdtform) 10)新增及修改入库单头表单(rkdtaddform) 11)入库明细管理主表单(rkmxform) 12)新增及修改入库明细表单(rkmxaddform),11.1.2 小型超市系统的分析和设计,5、用户界面(表单)设计 本系统共设计了22个表单用来完成系统的功能,表单的功能及详细设计见11.2节。 13)商品预警日期查询表单(spyjrqcxform) 14)商品销售表单(spxsform) 15)商品销售结账表单 (spxsjzform) 16)查询日销售信息表单(cxrmxform) 17)日销售数据结账表单(rjzform) 18)查询月销售信息表单(cxymxform) 19)工资管理主表单 (gzform) 20)新增及修改工资数据表单(gzaddeditform) 21)工资计算表单(gzjsform) 22)税率表维护表单(slbglform),11.1.2 小型超市系统的分析和设计,1、销售管理模块的设计 销售管理模块共包括商品销售、日销售结账、查询日销售信息、查询月销售信息等4个子模块。 1)商品销售子模块 该子模块主要功能是:在销售柜台销售商品的同时,完成收银记账工作。因收银工作的特殊性,软件界面要设计的简单易操作,数据输入要有一定的检错功能。该模块由2个界面所组成,一个是商品销售窗口,一个是收银计算辅助窗口。考虑到一天开工时,可能昨天没有及时结账,或是更换操作员后没有及时结账,系统提供了自动检测的功能,能提醒操作员及时进行结账处理。为方便收银员对账结账,系统提供一天可以多次进行结账的功能。商品销售模块从单击菜单【日销售记录】开始,如是正常的销售过程,则不需结账,系统自动产生新销售单据,并调用商品销售窗口。,11.2.1 有关功能模块的设计,1)商品销售子模块 商品销售窗口的设计 表单文件名为:spxsform。该子模块是商品销售的主界面,考虑到大部分商品销售时的数量为1,系统对每一个商品销售时自动设置为1,可以提高操作速度。对于输入错误的商品编号,系统能够自动检测并提示;如果商品编号正确,系统能自动显示商品的有关信息供顾客和操作员查看。 系统在生成销售单据时采取如下方法: 先自动生成一个空的单头记录(写入rxsdtb表中),当有明细数据时,数据写入rxsmxb表中。如果没有明细数据,或不进行结算,则自动删除。表单中的表格用于显示商品销售明细情况,其数据源是xsmxb视图。,商品销售窗口的界面,收银计算辅助窗口的设计 表单文件名为:spxsjzform。该子模块的主要功能是:显示一张单据的应收款合计,并在输入实收现金后,系统自动计算出相应的找零数。,2)日销售结账子模块 表单文件名为:rjzform。该子模块可以查询商品销售情况,可以用于收银员换岗或当天收工前的现金与商品销售金额对账。表单中表格的数据源是rmxcx视图。当确定结账时,系统将rxsmxb表中的数据写入yxsmxb表中,并自动删除rxsdtb表及rxsmxb表中的所有数据。 商品销售日结账窗口的界面如下图所示。,3)查询日销售信息子模块 表单文件名为:cxrmxform。该模块主要用于查询日销售商品明细信息,以及按商品编号进行汇总的商品数量和金额信息,也可以查询指定单据的信息。 查询商品日销售明细窗口界面如下图所示。,4)查询月销售信息子模块 表单文件名为:cxymxform。该模块主要用于查询商品月销售的有关信息,包括商品销售明细数据,按销售日期汇总的商品销售数量及金额,按商品编号汇总的商品销售数量及金额。通过查询有关数据,可以使管理人员了解哪些商品销量最大或最小,从而调整商品进货,或采取措施促销商品。 查询商品月销售明细窗口界面如下图所示。,2、系统管理模块的设计 系统管理模块共包括商品基本情况管理、用户管理、修改用户密码、更换操作员等4个子模块。 1)商品基本情况管理子模块 该子模块包括2个操作界面,一个是主界面,用于查看商品的整体信息,一个是用于新增及修改商品信息的操作界面。该子模块的要完成的主要功能有:对商品基本情况进行管理,包括新增,修改,删除商品基本信息。考虑到数据库数据的完整性,在数据库设计时,建立了商品基本表(spjbb)与入库明细表(sprkmxb)以及日销售明细表(rxsmxb)的关于spbh的参照完整性。具体是:删除规则和插入规则为“限制”,更新规则为“级联”。这样,商品在入库及销售前,首先要新增商品基本数据,否则无法入库或销售。在商品基本表中修改商品编号时,入库明细及销售明细中的数据将自动更新商品编号。如果要在商品基本表中删除某一记录,而此时,如果已有该商品的入库数据,或已有该商品的销售记录,则系统不许删除。这些功能的实现,不是通过程序代码实现的,而是在数据库设计时,通过设置数据库数据的参照完整性来实现的,有关此方面的知识请参见第4章的实训。,11.2.1 有关功能模块的设计,(1)商品基本情况管理主程序的设计 表单文件名为:spjbbform。 商品基本情况管理主界面如下图所示。,(2)商品基本情况管理-用于新增及修改数据的程序设计 表单文件名为:spjbbaddeditform 新增及修改数据界面如下图所示。,2、系统管理模块的设计 2)用户管理子模块 该子模块主要完成的功能有:新增和删除用户。其中admin是系统管理员,程序不能删除此用户。该模块包括2个操作界面,一个是主界面,用于全面查看用户信息,一个是用于新增用户的操作界面。,11.2.1 有关功能模块的设计,(1)用户管理主程序的设计 表单文件名为:userform。 用户管理运行时的界面如下图所示。,(2)新增用户的程序设计 表单文件名为:useraddeditform。 新增用户的程序界面如下图所示。,2、系统管理模块的设计 4)更换操作员子模块 该模块实际上是用户重新登陆,但与第一次登陆时有所不同。第一、登陆成功后不需调用软件主界面(mainform),第二、按【取消】按钮时不是退出整个应用程序,而是释放表单,第三、表单的ShowWindow属性应设置为“1-在顶层表单中”,第四、表单的WindowType应设置为“1-模式”。因此,该表单的设计可以先复制登陆窗口表单,然后进行属性修改和代码修改。具体操作在此省略,请学习者自己动手完成。,11.2.1 有关功能模块的设计,2、系统管理模块的设计 3)修改用户密码子模块 表单文件名为:updateform。该子模块用于修改用户的密码。修改用户密码的程序界面如下图所示。,11.2.1 有关功能模块的设计,3、入库管理模块的设计 入库管理模块共包括商品入库单头管理、商品入库明细管理、商品预警查询等3个子模块。,11.2.1 有关功能模块的设计,1)商品入库单头管理子模块 为减少数据冗余,入库单据分成2个部分,一个是单据的单头数据,一个是单据的明细数据。入库单头管理子模块只对单据的单头数据进行管理,主要功能是有:新建一张单据;修改单据的单头信息;删除整张单据。新建单据时,系统自动产生一个单据号,单据号由操作日期加顺序号组成,单据号在单据数据修改时是不允许修改的。删除单头数据分2种情况,一种情况是,此张单据没有明细数据;另一种情况是,此张单据有明细数据。如果此张单据有明细数据,在删除时,系统会自动更新商品基本表中的库存数据。在数据库设计时,可以对入库单头表(sprkdtb)及入库单头明细表(sprkmxb)设置删除参照完整性,一个是设置删除限制,一个是设置删除级联,本系统设置的是删除级联。商品入库单头管理的有关表单设计详见第4章的实训。,11.2.1 有关功能模块的设计,2)商品入库明细管理子模块 该模块主要功能有:完成入库商品的明细数据输入,修改,删除。没有单头数据,系统不允许增加明细数据;修改及删除明细数据时系统能及时更新商品基本表中的库存数据。商品入库明细管理的有关表单设计详见第4章的实训。,11.2.1 有关功能模块的设计,3)商品预警查询子模块 该子模块的主要功能有:提供对商品基本信息的查询;提供对商品预警信息的查询。 商品预警信息查询的界面如下图所示(表单文件名为:spyjrqcxform),11.2.1 有关功能模块的设计,4、工资管理模块的设计 工资管理模块共包括工资基本数据维护管理、工资数据计算及打印、税率表维护管理等3个子模块。工资管理模块的有关表单设计详见第5章的实训。 1) 工资基本数据维护管理子模块 该模块主要完成对员工工资数据的输入、修改、删除等功能。 2) 工资数据计算及打印子模块 该模块主要完成对员工工资的计算和打印等功能。 3) 税率表维护管理子模块 该模块主要完成对税率表数据的输入、修改、删除等功能。,11.2.1 有关功能模块的设计,1、系统菜单的总体规划 依据需求分析给出的结果,小型超市管理系统将整个系统划分为工资管理、入库管理、销售管理以及系统管理等4个模块,每个模块又进行了细分。相应地,在菜单设计时,依据系统模块的划分,并考虑到菜单设计的一些基本原则,共设计了4个一级菜单,即,工资管理、入库管理、销售管理、系统管理,每个一级菜单又包含了若干子菜单(下拉菜单)。另外,根据需求分析的要求,系统管理员admin不能进行具体的业务操作,只能对商品基本情况和用户数据进行管理;一般用户除商品基本数据管理和用户管理不能操作外,其他业务都能操作。因此,在菜单设计时,根据当前操作员的不同,对菜单进行了有效控制。一级菜单设计时的界面如图11.16所示,其中选项按钮均写入了对菜单的控制代码。在打开的选项对话框中,工资管理、入库管理、销售管理菜单均写入了如图11.17所示的代码。,11.2.2 系统菜单设计,一级菜单的设计界面,图11.16一级菜单的设计界面,图11.17选项按钮的设计界面,如果当前操作员为系统管理员admin,则菜单运行时的界面如下图所示。,1) 工资管理菜单的设计 工资管理菜单设计时的界面如下图所示。,2) 入库管理菜单的设计 入库管理菜单设计时的界面如下图所示。,3) 销售管理菜单的设计 销售管理菜单设计时的界面如下图所示。,4) 系统管理菜单的设计 系统管理菜单设计时的界面如下图所示。,在商品编码、用户管理菜单的选项按钮中均写入了如下图所示的代码,其目的是控制非admin操作员不能对此模块进行操作。,如果当前操作员不是系统管理员(admin),则菜单运行时的界面如下图所示。,1、系统运行环境 系统运行环境是指保证系统能正常运行的硬件及软件环境。在这里主要指小型超市管理系统运行时对Visual FoxPro6.0的有关设置,以及在模块测试时小型超市管理系统本身需要设置的一些环境。 1)模块测试时的有关环境 为保证各个模块在单独测试时能顺利进行,一般在表单的 init事件中写入以下代码: publi rec1,rec,flag,user user=“aaa“ set delete on 这样做的目的是设置模块运行时需要的一些全局变量及环境,保证模块测试的顺利进行。,11.2.3 系统运行环境与组装,2)系统运行环境的设置 (1)在小型超市管理系统的主程序mainprg.prg中,设置系统运行时需要的一些环境,有关这方面的知识请参考第7章正文及实训的有关内容; (2)在测试模块及联调程序时,请注意设置小型超市管理系统所在的目录为默认目录; (3)在程序编写过程中,有关程序调用、打开文件、装载图片等描述时,文件名要用相对路径。,11.2.3 系统运行环境与组装,2、系统组装与联调 在系统各功能模块设计及测试完成之后,要进行整体联调。根据菜单与各功能模块的关系,在菜单中写入调用对应功能模块的代码,或写入实现有关功能的程序,这些工作是在程序联调前必须做的工作之一。另外,在程序运行过程中,可能会发生一些错误,有的错误在我们的意料之中,如操作时违反了数据库的参照完整性;有的错误可能是我们没有意料到的。为了使程序在运行时,当发生错误了,用户能够明确知道问题出在哪里,系统一般还要编写有关的错误处理程序。,11.2.3 系统运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论