当前位置:编程学习 > C#/ASP.NET >>

有关程序中流程图的问题

小弟我是新手(连新人都算不上),刚刚接触c#,听网上不少牛人说是流程图对于程序来说就相当于是一份指导书,我也认为流程图很重要,但是我自己画就画的乱七八糟。
例如有这么一道题:不断的输入一个数字,然后输出这个数字的2倍,当输入为q时,结束程序。我是新手,是在控制台的模式下编辑的,下面的是我的程序:
            string input="";
            int number = 0;
            bool flag = true;
            Console.WriteLine("请输入一个数字(q结束)");
            input = Console.ReadLine();
            if (input == "q")
            {
                flag = false;
            }
            while (flag)
            {
                try
                {
                    number = Convert.ToInt32(input);
                    Console.WriteLine("{0}的2倍是{1}", number, number * 2);
                    Console.WriteLine("请输入一个数字(q结束)");
                    input = Console.ReadLine();
                }
                catch
                {
                    if (input != "q")
                    {
                        Console.WriteLine("您输入了错误字符,请输入q结束");
                        input = Console.ReadLine();
                        flag = true;
                    }
                    else
                    {
                        flag = false;
                    }
                }
            }
            Console.WriteLine("程序结束");
这个程序倒是能运行,但是我按照这个程序画流程图时却画的乱七八糟,希望坛子里的个位高手能够帮我画个标准的流程图,让我也学习一下。 --------------------编程问答-------------------- 呵呵,你如果不是学编程的中学生的话,不要画流程图,多幼稚,会显得不专业, --------------------编程问答-------------------- 我在做小程序时,不画流程图也觉得没什么。但是稍微大一点的话,就会一会觉得少考虑了一个问题,一会觉得少考虑了一个问题,这应该就是没画流程图的缺点,或者还是说是其他什么原因? --------------------编程问答-------------------- stonespace老大,可是做稍微大一点的程序的话,我就会觉得脑子有点乱啊 --------------------编程问答--------------------
引用 1 楼 stonespace 的回复:
呵呵,你如果不是学编程的中学生的话,不要画流程图,多幼稚,会显得不专业,

stonespace老大,可是做稍微大一点的程序的话,我就会觉得脑子有点乱啊  --------------------编程问答-------------------- 流程图无法理顺你的思路,流程图密度很低,几行代码就要画一页纸的图,你哪里有这么多版面画图,初学者可以用,但如果你要写程序的话,你还是需要找到不画图理清思路的方法,


引用 3 楼 woyonglabview 的回复:
stonespace老大,可是做稍微大一点的程序的话,我就会觉得脑子有点乱啊
--------------------编程问答--------------------
引用 5 楼 stonespace 的回复:
流程图无法理顺你的思路,流程图密度很低,几行代码就要画一页纸的图,你哪里有这么多版面画图,初学者可以用,但如果你要写程序的话,你还是需要找到不画图理清思路的方法,


引用 3 楼 woyonglabview 的回复:stonespace老大,可是做稍微大一点的程序的话,我就会觉得脑子有点乱啊

老大,介绍你一下你的经验吧,我现在急需有人来指导我点破那层窗户纸啊 --------------------编程问答-------------------- 没那么复杂吧。
只有几个判断分支而已
理一理思路。。
这个理不出来怎么编程? --------------------编程问答--------------------
引用 7 楼 lye2000000_super 的回复:
没那么复杂吧。
只有几个判断分支而已
理一理思路。。
这个理不出来怎么编程?

倒是能理出来,可就怕遇到大型程序就理不出来了 --------------------编程问答-------------------- http://bbs.csdn.net/topics/390349762 --------------------编程问答--------------------
引用 9 楼 caozhy 的回复:
http://bbs.csdn.net/topics/390349762

多谢,受教了 --------------------编程问答-------------------- 没什么诀窍,你就这样不画流程图写程序,多写程序,到你能写出几千行程序的时候,你就发现流程图其实一点用都没有,

其实程序一开始逻辑不完善不要紧,先把主要部分写出来,然后再回头去把各个分支异常处理部分补充完整,然后测试,测试中你会发现原先思路不完善的地方,然后再修改程序,

引用 6 楼 woyonglabview 的回复:
老大,介绍你一下你的经验吧……
--------------------编程问答--------------------
引用 11 楼 stonespace 的回复:
没什么诀窍,你就这样不画流程图写程序,多写程序,到你能写出几千行程序的时候,你就发现流程图其实一点用都没有,

其实程序一开始逻辑不完善不要紧,先把主要部分写出来,然后再回头去把各个分支异常处理部分补充完整,然后测试,测试中你会发现原先思路不完善的地方,然后再修改程序,

引用 6 楼 woyonglabview 的回复:老大,介绍你一下你的经验吧……
     ……


如我所说,流程图之所以没有用不在于你写程序多么熟练,你的程序很大还是很小。流程图也可以视为对程序的一种抽象描述,用流程图还是不用的关键就是你用的编程语言的抽象能力和结构化表现力如何,流程图被用作编程语言更高级的抽象过程,而如果你的程序本身都超过流程图的抽象过程了,那么哪怕你是新手,哪怕你只写几行代码,也用不到流程图。相反,如果让我用汇编(事实上现在的宏汇编也是结构化的了)或者抽象程度很低的语言,我还是会画流程图——只是这些语言早就过时了。 --------------------编程问答--------------------
Quote: 引用 12 楼 caozhy 的回复:

如我所说,流程图之所以没有用不在于你写程序多么熟练,你的程序很大还是很小。流程图也可以视为对程序的一种抽象描述,用流程图还是不用的关键就是你用的编程语言的抽象能力和结构化表现力如何,流程图被用作编程语言更高级的抽象过程,而如果你的程序本身都超过流程图的抽象过程了,那么哪怕你是新手,哪怕你只写几行代码,也用不到流程图。相反,如果让我用汇编(事实上现在的宏汇编也是结构化的了)或者抽象程度很低的语言,我还是会画流程图——只是这些语言早就过时了。 quote]

你说抽象有点像UML建模的概念,我记得UML里面也有一个图很像流程图,但不是用来描述具体程序的,如果要抽象就不能面面俱到,应该只抓住主要部分,像楼主说的,用来完善思路,其实是在完善细节,这和建模的思想背道而驰,

不管怎么说,我认为流程图的描述密度太低,需要占用太多版面不是一种好的抽象描述方法,还不如用伪码, --------------------编程问答-------------------- 我也是新手来的,不过我觉得没必要画流程图吧?我觉得就是要把要求全部一项项列好,然后需要具体部分再通过手写的方式想想具体怎么实现,但不是画流程图,我觉得这样也比较省纸省时间,而且自己思路也比较清晰,不知道各位觉得我这样行不行?求指教啦 --------------------编程问答--------------------
引用 8 楼 woyonglabview 的回复:
引用 7 楼 lye2000000_super 的回复:没那么复杂吧。
只有几个判断分支而已
理一理思路。。
这个理不出来怎么编程?
倒是能理出来,可就怕遇到大型程序就理不出来了


大型程序要是画流程图那该画多少啊,兄弟。我感觉,你要是想理清思路,完全可以简单的画一下主要的对象图及时序图就足矣了 --------------------编程问答--------------------
引用 13 楼 stonespace 的回复:
Quote: 引用 12 楼 caozhy 的回复:
如我所说,流程图之所以没有用不在于你写程序多么熟练,你的程序很大还是很小。流程图也可以视为对程序的一种抽象描述,用流程图还是不用的关键就是你用的编程语言的抽象能力和结构化表现力如何,流程图被用作编程语言更高级的抽象过程,而如果你的程序本身都超过流程图的抽象过程了,那么哪怕你是新手,哪怕你只写几行代码,也用不到流程图。……


你说的是活动图么?还是数据流图?UML之于DSL,就好比流程图之于结构化编程语言一样。都是没有意义的东西。 --------------------编程问答--------------------
引用 15 楼 tiana0 的回复:
引用 8 楼 woyonglabview 的回复:引用 7 楼 lye2000000_super 的回复:没那么复杂吧。
只有几个判断分支而已
理一理思路。。
这个理不出来怎么编程?
倒是能理出来,可就怕遇到大型程序就理不出来了

大型程序要是画流程图那该画多少啊,兄弟。我感觉,你要是想理清思路,完全可以简单的画一下主要的对象图及时序图就足矣了
       ……

我之前说的很清楚,画不画流程图和项目是不是大型没有关系,恰恰是大型项目,才需要使用流程图——只要使用的语言比流程图更低级(不支持结构化语法)。 --------------------编程问答--------------------
引用 13 楼 stonespace 的回复:
还不如用伪码


事实上,我们用“伪码”就是为了提高抽象度。但是某种语言可能比伪码更具有抽象和表现能力,那么伪码也就不需要了。这是一个相对的事情。松本行弘(Ruby创始人)在他的书中写道,他发明Ruby的目的就是创造一种可以在计算机上被执行的伪代码解释器。 --------------------编程问答-------------------- 额,我小学一年级的数学老师当时是这样教滴,如果你解应用题,那么必须这样写,一个因为,然后一个所以。每一步你都必须写清楚原因,当然这是因为你是小学一年级,他的去锻炼你的思维方式

但是我的高中和大学老师不这样教,我记得我的高中数学老师在第一次讲完“三垂线定理”后就自己创造了一个独特的标记,然后说“同学们记着这个标记”,如果后面如果需要使用“三垂线定理”时候,我不会具体证明,我只会画个这个标记,你以后看到这个标记就知道这里是应该如此操作了

所以呢,俺不说啥子了,俺只是说是细节是还是抽象,抽象到何种程度,那都对应着当时你的理解能力。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,