java绘制控制流图
我的任务是制作一个控制流图。首先,我成功地将代码划分为基本块。例如,这里的这个程序:
1 begin
2 int x, y, power;
3 float z;
4 input (x, y);
5 if (y<0)
6 power=-y;
7 else
8 power=y;
9 z=1;
10 while (power!=0){
11 z=z*x;
12 power=power-1;
13 }
14 if (y<0)
15 z=1/z;
16 output(z);
17 end
将转换为以下基本块:
第一区
Line 2 int x, y, power;
Line 3 float z;
Line 4 input (x, y);
Line 5 if (y<0)
第2区
Line 6 power=-y;
第三区
Line 8 power=y;
第四区
Line 9 z=1;
5区
Line 10 while (power!=0){
6区
Line 11 z=z*x;
Line 12 power=power-1;
第7区
Line 14 if (y<0)
第8区
Line 15 z=1/z;
第9区
Line 16 output(z);
我通过扫描文件,并使用Pattern和Matcher根据if、while等语句将程序拆分来实现这一点。基本块是ArrayList,所有这些块都保存在ArrayList>;中
接下来,我保存了一个HashMap,其中基本块相互连接。例如,块1将连接到块2和块3,因为它是一个if语句(if this go one way,else go the other way)。这个HashMap是>;用于块号,以及它所连接的块号列表
所以,我有基本块,以及这些基本块之间的连接列表。我现在的问题是,我不知道如何以图形形式显示它。之前,我使用paint()方法并绘制圆和线来表示一个简单的控制图,其中每个块只有一个到下一个块的连接。然而,我不知道当有多个连接时如何做到这一点。有什么简单的方法吗
谢谢
共 (0) 个答案