lushuishui 发表于 2010-1-11 17:25:07

有个疑难问题,请大家帮帮忙,O(∩_∩)O谢谢

例:下例程序流程图描述了最多输入50个值(以–1作为输入结束标志),计算其中有效的学生分数的个数、总分数和平均值。
http://se.csai.cn/testtech/images/2008341646.jpg
步骤1:导出过程的流图。
http://se.csai.cn/testtech/images/2008348663.jpg
http://images.cnblogs.com/cnblogs_com/dreamingmoon/流程图.jpg
请问红色和黑色,哪个才是对的呢?

Jackc 发表于 2010-1-14 12:29:14

简单看了下,红色的肯定不对。
设计两个case:
1、Score=-1 ,则对应的流程是1、2、9、11、12

2、除Score=-1外,其他的均为正整数,则对应流程为1、2、3、4、5、6、7、8(循环2、3、4、5、6、7、8共49次)、2、3、9、10、12

这两个CASE都无法用红色的流程图解释。

至于黑色的是否正确,没仔细去研究了。

lushuishui 发表于 2010-1-14 15:11:06

回复 2# 的帖子

谢谢你的回答,我再仔细看一下流程图

Jackc 发表于 2010-1-15 09:54:48

第2个CASE有点问题,应该设计为Score都不等于-1,才会在50次循环完毕后走239路径。

如果设计的Score=-1,则在第50次循环开始时,走29路径

lushuishui 发表于 2010-1-20 11:00:25

回复 4# 的帖子

我找到原因了,不过有个疑问,在画流图的时候是不是要看判断条件,如果是AND的话,是要把每个条件作为节点,如果是OR的关系,那么可以把判断条件作为一个节点来画,是这样的吗?

Jackc 发表于 2010-1-21 11:00:54

在化简流程图时,比较常用的方法:
1.当两个结点存在绝对路径时,可以合并,比如黑图中的1/2;4/5都可以整合


2.如果是and ,可以划成一个结点(但是在设计CASE时,还是需要设计覆盖不同判断条件的case,只是方便阅读而已),or则肯定需要分为是多个结点(根据判断条件的个数决定结点个数)

比如,在黑图中,将2、3划为1个结点,5,6也一样划为一个结点,但是在设计路径时,239与29都需要考虑。所以这种化简方法并不是很规范的,不建议使用:)

[ 本帖最后由 Jackc 于 2010-1-21 11:19 编辑 ]

Jackc 发表于 2010-1-21 11:03:01

关于路径覆盖的方法,可以参考http://bbs.51testing.com/thread-170435-1-1.html

lushuishui 发表于 2010-1-25 17:28:56

回复 7# 的帖子

非常的感谢:loveliness:
页: [1]
查看完整版本: 有个疑难问题,请大家帮帮忙,O(∩_∩)O谢谢