1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Jackson示例

【例1】设有如下的数据结构 表头教职工名册姓 名 表 头 教职工名册 姓 名 类 别 津 贴 表体 表 体 我们可根据所给定的数据结构,画出Jackson图 可写出Jackson伪代码: 名册 seq open 名册表 表头 seq 打印 表名 打印 表栏名 表头 end 表体 iter until 文件结束 表行 seq 打印 姓名 打印 类别 津贴 select 教师类别 打印 教师津贴 or 职工类别 打印 职工津贴 津贴 end 表行 end 表体 end close 名册表 名册 end 【例2】 一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。 对于这个简单例子而言,输入和输出数据的结构很容易确定。图中是用Jackson图描绘的输入/输出数据结构。 确定了输入/输出数据结构之后,下一步是分析确定在输入数据结构和输出数据结构中有对应关系的数据单元。在这个例子中哪些数据单元有对应关系呢?输出数据总是通过对输入数据的处理而得到的,因此在输入/输出数据结构最高层次的两个单元(在这个例子中是“正文文件”和“输出表格”)总是有对应关系的。这一对单元将和程序结构图中最顶层的方框(代表程序)相对应,也就是说经过程序的处理由正文文件得到输出表 格。下面还有哪些有对应关系的单元呢?因为每处理输入数据中一个“字符串”之后,就可以得到输出数据中一个“串信息”,它们都是重复出现的数据单元,而且出现次序和重复次数都完全相同,因此,“字符串”和“串信息”也是一对有对应关系的单元。 Jackson程序设计方法的第三步是从数据结构图导出程序结构图。按照前面已经讲述过的规则,这个步骤的大致过程是: 首先,在描绘程序结构的Jackson图的最顶层画一个处理框“统计空格”,它与“正文文件”和“输出表格”这对最顶层的数据单元相对应。但是接下来还不能立即画与另一对数据单元(“字符串”和“串信息”)相对应的处理框,因为在输出数据结构中“串信息”的上层还有“表格体”和“空格总数”两个数据单元,在程序结构图的第二层应该有与这两个单元对应的处理框——“程序体”和“印总数”。因此,在程序结构图的第三层才是与“字符串”和“串信息”相对应的处理框——“处理字符串”。在程序结构图的第四层似乎应该是和“字符串”、“字符”及“空格数”等数据单元对应的处理框“印字符串”、“分析字符”及“印空格数”,这三个处理是顺序执行的。但是,“字符”是重复出现的数据单元,因此“分析字符”也应该是重复执行的处理。改进的Jackson图规定顺序执行的处理中不允许混有重复执行或选择执行的处理,所以在“分析字符”这个处理框上面又增加了一个处理框“分析字符串”。最后得到的程序结构图为下图所示。 Jackson程序设计方法的第四步是列出所有操作和条件,并且把它们分配到程序结构图的适当位置。首先,列出统计空格个数需要的全部操作和条件如下: ⑴停止 ⑵打开文件 ⑶关闭文件 ⑷印出字符串 ⑸印出空格数目 ⑹印出空格总数 ⑺sum:=sum+1 ⑻totalsum:=totalsum+sum ⑼读入字符串 ⑽sum:=O ⑾totalsum:=0 ⑿pointer:=l ⒀pointer:=pointer+1 I⑴文件结束 I⑵字符串结束 S⑶字符是空格 在上面的操作表中,sum是保存空格个数的变量,totalsum是保存空格总数的变量,而pointer是用来指示当前分析的字符在字符串中的位置的变量。 Jackson方法的最后一步是用伪码表示程序处理过程。因为Jackson使用的伪码和Jackson图之间存在简单的对应关系,所以从图8.10很容易得出下面的伪码: 统计空格seq 打开文件 读入字符串 totalsum :=0 程序体 iter until文件结束 处理字符串seq 印字符串seq 印出字符串 印字符串end sum :=0 pointer :=1 分析字符串i

文档评论(0)

6358999 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档