第15章综合实例 学习要点 1、数据需求和功能需求 2、逻辑设计和物理设计 3、总体设计、用户界面设计 、设计与编码、数据装载
第15章 综合实例 学习要点 1、数据需求和功能需求 2、逻辑设计和物理设计 3、总体设计、用户界面设计 4、设计与编码、数据装载
第15章综合实例 151需求分析 152数据库设计 153应用程序设计 154运行设计
第15章 综合实例 15.1 需求分析 15.2 数据库设计 15.3 应用程序设计 15.4 运行设计
第15章综合实例 本章通过一个实例—“摩托车修理管理系统”来介 绍 Visual Foxpro60应用系统的开发过程 151需求分析 1511数据需求 在调研的过程中,用户提供了该系统所需的输入 输出单据(见图15-1~15-7)。输入单据包括修车 登记单、摩托车修理单、零件入库单和零件出库单等 4种;轴输出单据包括季度零件订货计划、摩托车修理 发票和工资月报表等3种。不少单据都填写了数据, 这是开发人员所需要的,同时也为数据库设计提供了 数据样例
第15章 综合实例 本章通过一个实例——“摩托车修理管理系统”来介 绍Visual FoxPro6.0应用系统的开发过程。 15.1 需求分析 15.1.1 数据需求 在调研的过程中,用户提供了该系统所需的输入、 输出单据(见图15-1~15-7)。输入单据包括修车 登记单、摩托车修理单、零件入库单和零件出库单等 4种;输出单据包括季度零件订货计划、摩托车修理 发票和工资月报表等3种。不少单据都填写了数据, 这是开发人员所需要的,同时也为数据库设计提供了 数据样例
1512功能需求 功能分析的任务,是弄清用户对目标系统数据处理功能所提 出的需求。根据系统目标和数据需求并与用户充分讨论后,本 例的功能需求可归纳为以下5个方面。 1数据登记 登记功能用于把各种手填单据中的数据及时登记到系统将 要定义的表中,还要求能进行修改。这些单据包括修车登记单 摩托车修理单、零件入库单和零件出库单。 2.查询 能査询登记单、修理单、摩托车、车主、修理工、零件库存 的有关数据
15.1.2 功能需求 功能分析的任务,是弄清用户对目标系统数据处理功能所提 出的需求。根据系统目标和数据需求并与用户充分讨论后,本 例的功能需求可归纳为以下5个方面。 1.数据登记 登记功能用于把各种手填单据中的数据及时登记到系统将 要定义的表中,还要求能进行修改。这些单据包括修车登记单、 摩托车修理单、零件入库单和零件出库单。 2.查询 能查询登记单、修理单、摩托车、车主、修理工、零件库存 的有关数据
1512功能需求 3编制零件订货计划需要找出要订货的零件,订货条件为: 零件库存量<最低库存量。订货量可由用户输入或修改 4打印发票 发票中除包含顾客、摩托车及修理项目等数据外,还要计算 出修车费,修车费包括修理费和零件费,按下列各式计算: 零件费=∑(零件价格×耗用数量) 修理费〓小时工资×修理工时×3 总计≡零件费+修理费 不难看出,发票包含的信息来自修车登记单、摩托车修理单 和零件出库单等各种单据,这是一项涉及面很广的功能。 5打印修理工工资月报表 某修理工的月工资=∑修理小时×小时工资
15.1.2 功能需求 3.编制零件订货计划需要找出要订货的零件,订货条件为: 零件库存量<最低库存量。订货量可由用户输入或修改。 4.打印发票 发票中除包含顾客、摩托车及修理项目等数据外,还要计算 出修车费,修车费包括修理费和零件费,按下列各式计算: 零件费=∑(零件价格×耗用数量) 修理费=小时工资×修理工时×3 总计=零件费+修理费 不难看出,发票包含的信息来自修车登记单、摩托车修理单 和零件出库单等各种单据,这是一项涉及面很广的功能。 5.打印修理工工资月报表 某修理工的月工资= ∑修理小时×小时工资
152数据库设计 数据库设计的任务是确定系统所需的数据库。数据库是表的 集合,通常一个简单系统只需一个数据库。数据库设计可分为 逻辑设计与物理设计两个步骤。第一步确定数据库所包含的表 及其字段。第二步确定表的具体结构,即确定字段的名称、类 型及宽度;此外还要确定索引,为建立表的关联准备条件。 1521逻辑设计 设计从分析输入数据着手,输入数据中的某类相关数据可以 归纳为一个表。对需要同时调用的若干表,应使它们符合关联 要求。数据库设计好后,可通过分析输出数据来验证其可用性 若发现有的输出数据不能从输入数据导出,须继续向用户征集 数据
15.2 数据库设计 数据库设计的任务是确定系统所需的数据库。数据库是表的 集合,通常一个简单系统只需一个数据库。数据库设计可分为 逻辑设计与物理设计两个步骤。第一步确定数据库所包含的表 及其字段。第二步确定表的具体结构,即确定字段的名称、类 型及宽度;此外还要确定索引,为建立表的关联准备条件。 15.2.1 逻辑设计 设计从分析输入数据着手,输入数据中的某类相关数据可以 归纳为一个表。对需要同时调用的若干表,应使它们符合关联 要求。数据库设计好后,可通过分析输出数据来验证其可用性, 若发现有的输出数据不能从输入数据导出,须继续向用户征集 数据
1522物理设计 下面列出摩托车修理管理系统所有表的结构与索引,为便于 理解,也列出表的部分记录。 1修理单( d: mtcxl xld dbf) 2,摩托车( d: mtcxl\mtc.dbf) 3车主( d: mcx\ Cz.dbf) 4修理工( d: mtcxl xlgdbf) 5零件用量( d: mtcxl ljyl dbf 6零件库存( d: mtcxl lkcdbf 除上述6个表外,零件入库、出库时还需要暂存表。零件入 库表为 jrk.dbf,其结构与刂 kc.dbf相同。零件出库表 ( d: mtcxl lick dbf)的结构为:ljck(零件号c(6),数量 n(2))
15.2.2 物理设计 下面列出摩托车修理管理系统所有表的结构与索引,为便于 理解,也列出表的部分记录。 1.修理单(d:\mtcxl\xld.dbf) 2.摩托车(d:\mtcxl\mtc.dbf) 3.车主(d:\mtcxl\cz.dbf) 4.修理工(d:\mtcxl\xlg.dbf) 5.零件用量(d:\mtcxl\ljyl.dbf) 6.零件库存(d:\mtcxl\ljkc.dbf) 除上述6个表外,零件入库、出库时还需要暂存表。零件入 库表为 ljrk.dbf , 其结构与 ljkc.dbf 相 同 。 零件出库表 (d:\mtcxl\ljck.dbf)的结构为: ljck(零件号c(6),数量 n(2))
153应用程序设计 1531总体设计 按照功能分类是总体设计中常用的方法,系统的总 体结构可用层次图( Hierarchy Char简称Hc图)来 表示(见图15-9)。这种图自上而下进行分层:第 层为系统层,通常对应主程序;第二层为子系统层, 般起分类控制作用,但是当该层没有下一层次时也 可直接用来表达功能(例如图中的查询功能);第三 层为功能层;第四层为操作层
15.3 应用程序设计 15.3.1 总体设计 按照功能分类是总体设计中常用的方法,系统的总 体结构可用层次图(Hierarchy Chart简称HC图)来 表示(见图15-9)。这种图自上而下进行分层:第一 层为系统层,通常对应主程序;第二层为子系统层, 一般起分类控制作用,但是当该层没有下一层次时也 可直接用来表达功能(例如图中的查询功能);第三 层为功能层;第四层为操作层
1532初始用户界面设计 从总体结构图很容易列出应用程序的菜单, 由总体结构图转换到菜单时,其对应情况如下: 系统层对应菜单文件,子系统层对应菜单标题; 功能层则对应子菜单项
15.3.2 初始用户界面设计 从总体结构图很容易列出应用程序的菜单, 由总体结构图转换到菜单时,其对应情况如下: 系统层对应菜单文件,子系统层对应菜单标题; 功能层则对应子菜单项
1533模块设计与编码 1主文件( mtcxl prg) 菜单文件名定为 mtcxlcd(摩托车修理菜单),并设置一个主文件来调用 它。主文件代码编写如下: SET TALK OFF SET DEFA To d: vfp6\mtcxI CLEA ALL SET VIEW TO jhj. vue PUBLIC XIdhzljf XIdh=SPACE(4) DO FORM fm KEYB“CTRL+F4 MODI WIND SCREEN TITL摩托车修理管理系统 CLEA
15.3.3 模块设计与编码 1.主文件(mtcxl.prg) 菜单文件名定为mtcxlcd(摩托车修理菜单),并设置一个主文件来调用 它。主文件代码编写如下: SET TALK OFF SET DEFA TO d:\vfp6\mtcxl CLEA ALL SET VIEW TO sjhj.vue PUBLIC xldh,zljf Xldh=SPACE(4) DO FORM fm KEYB ‘{CTRL+F4}’ MODI WIND SCREEN TITL ‘摩托车修理管理系统’ CLEA