Jackson图概念+优点缺点+改进的Jackson图+实例

那天写实验报告的查资料的时候发现网上居然没有完整的Jackson图相关知识orz那我就自己动手丰衣足食好了quq
以下多图预警!


       Jackson方法是一种面向数据结构的设计方法。

一、Jackson图

1.顺序结构

        顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。如图。

2.选择结构

       选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个。如图表示3个中选1个结构。

3.重复结构

       重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。如图。

二、Jackson图的优点和缺点

1.优点

(1)便于表示层次结构,而且是对结构进行自顶向下分解的有力工具。

(2)形象直观可读性好。

(3)既能表示数据结构也能表示程序结构(因为结构程序设计也只使用上述3种基本控制结构)。

2.缺点

(1)用这种图形工具表示选择或重复结构时,选择条件或循环结束条件不能直接在图上表示出来,影响了图的表达能力,也不易直接把图翻译成程序。

(2)框间连线为斜线,不易在行式打印机上输出。

三、改进的Jackson图

      为了解决Jackson图的缺点,提出了改进的Jackson图。

1.顺序结构

       B、C、D中任一个都不能是选择出现或重复出现的数据元素(即不能是右上角有小圆圈或星号标记的元素)。

2.选择结构

       S右面括号中的数字i是分支条件的编号。

3.可选结构

      A要么是元素B要么不出现(可选结构是选择结构的一种常见的特殊形式)。

4.重复结构

     循环结束条件的编号为i。

 

四、实例

        一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。

1.输入数据结构的Jackson图

           逻辑为:查找正文文件,如果文件没有结束,就查找每个记录(字符串*),判断这个字符是空格还是非空格,选是空格的(S(1)),如果这个记录没有查找完(字符*),就继续判断下去。当这个记录结束后,继续看下一个记录(字符串*)。

          因此顺序为:正文文件->字符串*->字符*->判断º->字符完了->字符串*->...->字符串完了->文件结束

2.输出数据结构的Jackson图

         逻辑为:输出表格,先输出表格体,如果表格体没有输出完,则输出串信息(串信息*),先输出字符串,再输出空格数;再看表格体有没有输完(串信息*),没有就继续输出串信息。最后表格体都输出完之后,输出空格总数。

         顺序为:输出表格->表格体->串信息->字符串->空格数->串信息->....->表格体输完了->空格总数

3.描绘统计空格程序结构的Jackson图

        逻辑为:开始统计空格,看程序体里文件是否结束(I(1)),如果没有则处理字符串,先打印出这个字符串,然后分析字符串,看字符串有没有结束(分析字符*),没有的话则处理空格和非空格(题目要求找出空格);等字符串结束后(分析字符*),打印出空格数。再看文件里是否还有字符串(处理字符串*),当文件结束后,打印总数。

        顺序为:统计空格->程序体->处理字符串->印字符串->分析字符串->分析字符->处理空格和非空格->分析字符->..->字符串结束->印空格数->处理字符串->印字符串...->文件结束->程序体结束->印总数

  • 21
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值