【软件工程】Jackson图

图形

图形结构说明
在这里插入图片描述顺序结构A由B、C、D 3个元素顺序组成,出现的次序依次是B、C和D
在这里插入图片描述选择结构根据条件A是B或C或D中的某一个
在这里插入图片描述重复结构A由B出现N次(N≥0)组成

Jackson结构程序设计方法

  • 确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构
  • 找出输入数据结构和输出数据结构中有对应关系的数据单元
  • 从描绘数据结构的Jackson图导出描绘程序结构的Jackson图
    • 为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框
    • 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框
    • 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框
  • 列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置
  • 用伪码表示程序。Jackson方法中使用的伪码和Jackson图是完全对应的

顺序结构

处理名 seq
	处理1
	处理2
处理名 end

选择结构

处理名 select 条件1
	处理1
处理名 or 条件2
	处理2
处理名 or 条件3
	处理3
处理名 end

重复结构

处理名 iter until 循环条件
	处理
处理名 end

例子

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


输入数据是正文文件,输出数据是输出表格
有对应关系的数据单元是正文文件和输出表格、字符串和串信息
在这里插入图片描述



将【正文文件】变成【输出表格】的处理是【统计空格】
生成【表格体】的处理是【程序体】,生成【空格总数】的处理是【印总数】
将【字符串】变成【串信息】的处理是【处理字符串】
对【生成字符串】的处理是【印字符串】,对【字符】的处理是【分析字符】,生成【空格数】的处理是【印空格数】
由于Jackson图规定顺序执行的处理中不允许混有重复执行或选择执行的处理,所以在【分析字符】上面又增加了一个【分析字符串】
对【空格】的处理是【处理空格】,对【非空格】的处理是【处理非空格】

在这里插入图片描述



需要的全部操作和条件如下:
(1) 停止
(2) 打开文件
(3) 关闭文件
(4) 印出字符串
(5) 印出空格数目
(6) 印出空格总数
(7) sum∶=sum+1
(8) totalsum∶=totalsum+sum
(9) 读入字符串
(10) sum∶=0
(11) totalsum∶=0
(12) pointer∶=1
(13) pointer∶=pointer+1
I(1) 文件结束
I(2) 字符串结束
S(3) 字符是空格
在这里插入图片描述



伪码

统计空格seq
	打开文件
	读入字符串
	totalsum∶=0
	程序体iter until文件结束
	 	处理字符串seq
	  		印字符串seq
	  			印出字符串
	  		印字符串end
	  		sum∶=0
	  		pointer∶=1
			分析字符串iter until字符串结束
	 			分析字符select字符是空格
	   				处理空格Seq
						sum∶=sum+1
						pointer∶=pointer+1
	  				处理空格end
				分析字符or字符不是空格
	    			处理非空格seq
	    			pointer∶=pointer+1
	   				处理非空格end
	  			分析字符end
			分析字符串end
			印空格数seq
		     	印出空格数目
			印空格数end
			totalsum∶=totalsum+sum
	    	读入字符串
	  	处理字符串end
	程序体end
	印总数seq
    	印出空格总数
	印总数end
	关闭文件
	停止
统计空格end
  • 14
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序鸡

如果帮到您,点个赞鼓励一下吧。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值