选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个。图4-35就是用Jackson图表达选择结构的例子。 重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。 图 4-36所示的就是用Jackson图表达这种结构的一个例子。表示A由B重复N次实现。
图 4-36重复结构
(2) 改进的Jackson图
Jackson图的缺点是:用这种图形工具表示选择或重复结构时,选择条件或循环结束条件不能直接在图上表示出来,影响了图的表达能力,也不易直接把图翻译成程序,此外,框间连线为斜线,不易在行式打印机上输出。为了解决上述问题,允许将连线画成直线,并在连线一旁标注字母“S”(表示选择)或“I”(表示重复)及编号。
图 4-37所示的是改进的Jackson图。图4-37中(a)是顺序结构,B,C,D任一个都不能是选择出现或重复出现的数据元素,即不能是右上角有小圈或星号标记的元素;图4-37(b)是选择结构,s右面括号中的数字i是分支事件的编号; 图4-37 (C) 所示的是可选结构, A或者是元素b 或者不出现,可选结构是选择结构的一种常见的特殊形式;图4-37(d)所示的是重复结构,循环结束条件的编号为i。
31
图4-37 改进的Jackson图
Jackson图的优点:
? 便于表示层次结构,而且是对结构进行自顶向下分解的有力工具。 ? 形象直观,可读性好。
? 既能表示数据结构,也能表示程序结构。因为结构化程序设计也采用上述三种基本结构。 (3) Jackson图的使用 ① 表示数据结构
例1 :用Jackson图表示表4-38所示的二维表格。
32
图4-38 表示学生名册的二维表格
用 Jackson图表示学生名册的二维表格,首先声明该学生名册表格由表头和表体两部分组成 .其中表头又顺序包括表名和字段名。而表体可由任意行(0行或多行)组成,每行包括学生的姓名、性别、班级和学号。班级是本科的,学号项是本科生学号;班级是研究生的,学号项是研究生学号。
图 4-39用Jackson图来表示程序结构
② 表示程序结构
例 2: 用 Jackson图表示产生上面的学生名册文件的程序的程序结构 把图 4-39所表示的学生名册生成为一个计算机文件,则该程序结构可以用图4-40的Jackson图来表示。不难可以看出,这个图只是在图4-39的每个方框内的名称前添加“产生”二字。这种从数据结构图导出程序结构图的过程,称之为映射。
33
图4-40 用Jackson图表示程序结构
用Jackson图表示程序结构时,图中每个方框不一定都代表模块。大多数情况下,一个方框可能只是包含完成程序中一个简单操作的一条或几条语句。而且,在连接上、下层的连线表示包含(模块调用)。
③ Jackson伪代码,为了方便从程序结构到逻辑描述的转换,Jackson方法中为结构图设计了一组与之相对应的伪代码。Jackson方法中使用的伪代码和Jackson图是完全对应的,下面是和三种基本结构对应的伪代码。 与图4-34所示的顺序结构对应的伪码如下,其中‘seq'和‘end'是关键字: A seq b C D A end
其中‘ select ' 、‘ or',和‘end ' 是关键字 ,cond1、cond2和cond3分别是执行B、C或D的条件:与图4-35所示的选择结构对应的伪码如下: A select condI B
34
A or cond2 C
A or cond3 D A end
‘ iter‘,、‘until'、‘while'和 ‘ en d' 是关键字(重复结构有 until和while两种形式),cond是条件,与图4-36所示重复结构对应的伪码如下:
A iter until(或while) cond B A end
例: 在实际问题中,会遇到不同结构夹杂在一起的情况,如图 4-41所示。
图4-41 混合结构
. 有下述两种伪代码: (a): A seq B
C iter until cond I1 D end A
(b): A iter until cond1 B C D
35
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库软件工程第四讲教案(7)在线全文阅读。
相关推荐: