(2)表示手续费计算方法的判定树
8、画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗?
C EXAMPLE
LOOP:DO WHILE X>0 A=B+1 IF A>10
THEN X=A ELSE Y=Z END IF IF Y<5
THEN PRINT X,Y
ELSE IF Y=2
THEN GOTO LOOP
ELSE C=3 END IF END IF G=H+R END DO IF F>0
THEN PRINT G ELSE PRINT K END IF STOP
解:流程图:
STARTFZ>0TA=B+1A>10FTX=AY=ZY<5F Y>=5TTPrint X,YY=2FC=3G=H+RFTF>0Print GPrint Kstop
环形复杂度:
1234568710911111111
V(G)=结点E-弧数n+1=17-11+1=7=判断结点 +1=6 +1=7=封闭的区域数 逻辑有问题,当Z>0时,容易形成死循环;条件Y<5包含条件Y=2。
9、把统计空格程序的Jackson图(图6.13)该画为等价的程序流程图和盒图。 解:流程图:
开始
文件尾?
N Y
读一个字符
换行,输出字符串,换行
统计空格数并输出 读取下一个字符
换行,输出空格总数
结束
盒图:
文件不是文件尾?
读一个字符串
换行,输出字符串,换行
统计空格数并输出
取下一个字符串
换行,输出空格数
10、人机对话由操作员信息和系统信息交替组成。假设一段对话总是由操作员信息开始以系统信息结束,用Jackson图描绘这样的人机对话过程。 解:
操作员文件
操作员记录*
学号 姓名
系统文件 操作员记录* 专业班级 学号 姓名 分数 新文件
操作员记录*
专业班级 姓名 分数 学号 产生新文件 产生新纪录 取操作员文件记录 取系统记录 专专姓名 学号 姓名 专学号 姓名 学号 业 业 业 班班班 级 级 级
分数 第七章