首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制控制流图

绘制控制流图
EN

Stack Overflow用户
提问于 2012-10-29 21:35:28
回答 1查看 2.1K关注 0票数 4

我的任务是制作一个控制流图。首先,我已经成功地将我的代码分成了基本的块。例如,这里的程序:

代码语言:javascript
复制
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

将变成以下基本块:

区块1

代码语言:javascript
复制
Line  2   int x, y, power;
Line  3   float z;
Line  4   input (x, y);
Line  5   if (y<0)

区块2

代码语言:javascript
复制
Line  6     power=-y;

区块3

代码语言:javascript
复制
Line  8     power=y;

区块4

代码语言:javascript
复制
Line  9   z=1;

区块5

代码语言:javascript
复制
Line 10   while (power!=0){

区块6

代码语言:javascript
复制
Line 11     z=z*x;
Line 12   power=power-1;

区块7

代码语言:javascript
复制
Line 14   if (y<0)

区块8

代码语言:javascript
复制
Line 15     z=1/z;

区块9

代码语言:javascript
复制
Line 16   output(z);

为此,我扫描了整个文件,并使用Pattern和Matcher根据if、while等语句将程序拆分。基本块是一个ArrayList,所有这些块都保存在一个ArrayList>中。

接下来,我保存了一个基本块相互连接的HashMap。例如,block 1将连接到block 2和block 3,因为它是一个if语句(如果这样做是一种方式,否则就是另一种方式)。此HashMap的>表示块编号及其连接到的块编号列表。

所以,我有了基本的块,以及这些基本块之间的连接列表。我现在的问题是,我不确定如何以图形形式显示它。在此之前,我使用paint()方法并绘制圆和线来表示一个简单的控制图,其中每个块只有一个到下一个块的连接。但是,当有多个连接时,我不知道该如何做。有什么简单的方法可以做到这一点吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-12-31 15:25:57

在绘制图形时,我通常使用dot,它非常简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13122696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档