那天写实验报告的查资料的时候发现网上居然没有完整的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)),如果没有则处理字符串,先打印出这个字符串,然后分析字符串,看字符串有没有结束(分析字符*),没有的话则处理空格和非空格(题目要求找出空格);等字符串结束后(分析字符*),打印出空格数。再看文件里是否还有字符串(处理字符串*),当文件结束后,打印总数。

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

Jackson图概念+优点缺点+改进的Jackson图+实例相关推荐

  1. 【软件工程】Jackson图概念+优点缺点+改进的Jackson图+实例

    那天写实验报告的查资料的时候发现网上居然没有完整的Jackson图相关知识orz那我就自己动手丰衣足食好了quq 以下多图预警! Jackson方法是一种面向数据结构的设计方法. 一.Jackson图 ...

  2. 什么是精灵图,精灵图的优点

    1 什么是精灵图 CSS Sprites,翻译为精灵图或者雪碧图. 所谓精灵图就是把好多小的图片合并一张大图, 以该大图为背景图片的元素尺寸比较小,可以通过控制背景图片的位置,让元素上显示合适的图像. ...

  3. 【软件工程】几种常见的软件开发模型:(瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)模型的概念特点优点缺点和不同。

    (瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)各种模型的概念特点优点缺点和不同. (张海藩,吕云翔)著-软件工程 复习记录 文章目录 一.瀑布模型 二.快速原型模型 三.增量模型 四.螺旋模 ...

  4. Python——特点(优点缺点)

    Python--特点(优点&缺点) Python 是一种面向对象的.解释型的.通用的.开源的脚本编程语言,它之所以非常流行,我认为主要有三点原因: Python 简单易用,学习成本低,看起来非 ...

  5. 推荐系统中常用算法 以及优点缺点对比

    推荐系统中常用算法 以及优点缺点对比 2014/09/20 [Martin导读]随着互联网特别是社会化网络的快速发展,我们正处于信息过载的时代.用户面对过量的信息很难找到自己真正感兴趣的内容,而内容提 ...

  6. 横瓜执导众程序员开展大讨论关于C、JAVA及其它主流IT技术使用情况和优点缺点。...

    横瓜执导众程序员开展大讨论关于C.JAVA及其它主流IT技术使用情况和优点缺点. 遥执乾坤(44758121)  18:21:23 mysql据说只能使用一个索引,我这里几乎所有字段都有索引. 但每个 ...

  7. 什么是自适应模板?自适应模板有什么优点缺点

    1.背景介绍 自适应模板,顾名思议,网站本身是现成做好的自适应网站.用户获得自适应模板后,只需把原本网站的素材改成自己的东西,网站就能实现电脑.手机的自适应,不同终端获得同样的呈现效果. 现在人们通过 ...

  8. 数据库索引的作用和优点缺点

    原文:数据库索引的作用和优点缺点 为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能.  第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性.  第二,可以大大加快 数据的检索速 ...

  9. yolov3算法优点缺点_优点缺点

    yolov3算法优点缺点 Naive Bayes: A classification algorithm under a supervised learning group based on Prob ...

最新文章

  1. catia 创成钣金设计_弯曲的钣金设计技巧
  2. TLS就是SSL的升级版+网络安全——一图看懂HTTPS建立过程——本质上就是引入第三方监管,web服务器需要先生成公钥和私钥,去CA申请,https通信时候浏览器会去CA校验CA证书的有效性...
  3. springcloud 文件服务器,SpringCloud传文件
  4. Gulp和webpack的区别
  5. Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本
  6. CoreJava 笔记总结-第四章 对象与类
  7. HGE引擎适用于MFC的修改
  8. Java实现Redis的订阅发布功能,亲测可以
  9. Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][示例代码下载][续]...
  10. docker: Error response from daemon: Unknown runtime specified nvidia.
  11. ERP选型需把握主动权!
  12. 直播系统源码,直播平台系统源码
  13. Android 如何开启与关闭adb 的认证机制(google adb secure) (adb RSA 指纹认证)
  14. .bat 是什么? (批处理脚本)
  15. 实时音视频数据传输协议介绍
  16. 云上部署oracle rac,在青云上部署oracle rac全过程
  17. 基于CentOS7系统环境下的Snort3安装指南
  18. 免费开源的建站程序大全,不会编程也可以自助搭建网站了哦
  19. 常用mysql连接数据库工具_MYSQL中常用的工具
  20. 这样的老板,真想把他拖进WC爆zou一顿.....

热门文章

  1. WordPress详细安全设置
  2. 累计销售[静态局部变量的使用]
  3. Weisfeiler-Lehman算法测试图同构
  4. 人工智能-模糊计算(一)
  5. vue 限制手机端访问
  6. 【NS2】TCP相关计算
  7. Repeaterd的使用,获取选中行的id,ItemDataBound和ItemCommand事件的使用
  8. 克我者官,我克者财,生我者印,我生者食伤,同我者比劫
  9. 【好用的工具】Linux终端操作工具
  10. PREP黄金沟通法则