面向数据结构的设计方法总述
数据结构既影响程序的结构又影响程序的处理过程:
■重复出现的数据通常由具有循环控制结构的程序来处理
■选择数据要用带有分支控制结构的程序来处理
■层次的数据组织通常和使用这些数据的程序的层次结构十分相似。
面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。
一、Jackson图
数据结构中数据元素彼此间的逻辑关系:
顺序结构:顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。
选择结构:选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个。
重复结构:重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。
![C%]8Z{JI3BVLDJM7WDPO`LX.png](https://p.ananas.chaoxing.com/star3/origin/8ecc2a3687f1227e50be88fc43ca956b.png)
Jackson图的优点:
■便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;
■形象直观可读性好;
■既能表示数据结构也能表示程序结构。
Jackson图的缺点:
■表示选择或重复结构时,选择条件或循环结束条件不能直接在图上表示出来,影响了图的表达能力,也不易直接把图翻译成程序;
■框间连线为斜线,不易在行式打印机上输出。
二、改进的Jackson图

Jackson图和层次图的区别:

三、Jackson方法
Jackson结构程序设计方法由5个步骤组成:
(1) 分析并确定输入数据和输出数据的逻辑结构,用Jackson图描绘数据结构。
(2) 找出输入数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元必须重复的次序和次数都相同才可能有对应关系)。
(3) 用下述规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:
■第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框(层次不同时与图中层次低的那个对应);
■第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;
■第三,根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。
■改进的Jackson图规定在构成顺序结构的元素中不能有重复出现或选择出现的元素,因此可能需要增加中间层次的处理框。
(4) 列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。
(5) 用伪码表示程序。

四、例子
一个正文文件由若干个记录组成,每个记录是一个字符串。
要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。
要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。
设计步骤如下:
(1) 用Jackson图描绘的输入输出数据结构。

(2) 分析确定在输入数据结构和输出数据结构中有对应关系的数据单元。

(3) 从数据结构图导出程序结构图。

(4) 列出所有操作和条件,并且把它们分配到程序结构图的适当位置。

(5) 用伪码表示程序处理过程。

