【问题标题】:How to draw flowchart for code involving opening from text file and reading them如何为涉及从文本文件打开并读取它们的代码绘制流程图
【发布时间】:2014-08-25 15:58:01
【问题描述】:

喜欢这段代码

  fp1=fopen("Fruit.txt","r");
  if(fp1==NULL)
  {
       printf("ERROR in opening file\n");
       return 1;
  }
  else
  {
    for(i=0;i<lines;i++)//reads Fruits.txt database
    {
    fgets(product,sizeof(product),fp1);
    id[i]=atoi(strtok(product,","));
    strcpy(name[i],strtok(NULL,","));
    price[i]=atof(strtok(NULL,","));
    stock[i]=atoi(strtok(NULL,"\n"));
    }
  }
  fclose(fp1);

这些符号听起来太相似而无法区分它们的功能,任何人都可以通过任何方法帮助我,或者根据本网站使用形状名称http://www.breezetree.com/article-excel-flowchart-shapes.htm

【问题讨论】:

  • 抱歉忘记缩进
  • 我看不出您自己的代码和“流程图”之间有任何关系。这个fruit.txt 应该是什么,这与流程图有什么关系?
  • @Jongware 这是txt里面的内容:id,name,price,stock
  • @MartinJames 我用谷歌搜索了 froot loops,我看到了麦片......

标签: c windows flowchart


【解决方案1】:


参考:

使用随机在线工具从您的代码生成此流程图。 http://code2flow.com/

在此处了解有关流程图的更多信息:http://creately.com/blog/diagrams/flowchart-guide-flowchart-tutorial/

在此处查看示例流程图:http://www.conceptdraw.com/samples/flowcharts

【讨论】:

【解决方案2】:

在 FORTRAN 时代,我们在您链接到的页面上使用六边形符号表示“DO”循环,这与现代“for”循环基本相同。

因此,要绘制程序的循环部分,我将使用该符号,并在内部添加如下注释:
对于 i = 0 --> (行 - 1)
将其读作“for i from 0 to (lines - 1)”,默认增量为 1。 然后循环中最底部的盒子会有两个箭头从其中出来:一个直接向下指向下一个语句,一个从侧面返回到六边形的侧面。

您可以使用菱形来表示“如果”,但这会掩盖您正在尝试执行的操作的含义,即执行循环一定次数。

顺便说一句,我还没有足够高的声誉来发布图片,所以你必须点击链接或者想象一个中心部分被水平拉伸的六边形。

更新:我看到,当我输入我的答案时,thecbuilder 也用真实的流程图回答了这个问题。他说明了循环实际上是如何在内部工作的,这很好;我的目的是在更高的抽象级别上显示循环的含义。

【讨论】:

  • 你删除了你的答案吗?你可以上传到photobucket或其他方法并在这里分享链接吗?感谢您的帮助,感谢您的努力!
  • @problematic :因为我的声誉不是 >= 50,这个网站说我不能在上面发表评论,但我可以在这里发表评论。无论如何,要扩展圆柱流程图符号含义“数据库”,“文档”或“存储数据”的问题,都可以是正确的。查看下一条评论...
  • ...继续。这又是一个问题,即您在哪个抽象级别上工作。如果您的程序直接从磁盘读取文件,您可以用柱面来表示它,在这种情况下,您可以将柱面标记为“本地或网络驱动器”。但是,如果您的程序通过单独的服务器访问数据库,您可以再次使用圆柱体,但将其标记为“SQL 服务器”。
  • 好的,这是我的流程图版本的链接。 link
  • 顺便说一句,你写这段代码的方式,我希望变量'name'声明为char* name[MAX_NUMBER_OF_FRUITS],所以数组的每个元素都指向一个C风格的字符串, MAX_NUMBER_OF_FRUITS 是一个符号常量,包含文件中的最大行数。然后在你进入这个循环之前,你已经 malloc 了一系列字符数组,每个字符数组都足够大以容纳可能的最长名称(加上一个用于空终止符)。否则,您将尝试将 strcpy 放入内存中的某个随机位置。继续...
猜你喜欢
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2010-12-18
  • 2021-11-29
  • 2020-08-25
相关资源
最近更新 更多