蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年8月25日 8:28

[GSSY流程图], 一种新型的规范性流程图,源于PAD图,且易于在任何文本编辑

[GSSY流程图], 一种新型的规范性流程图,源于PAD图,且易于在任何文本编辑器上绘画。

GSSY流程图说明:
=================

开始与结束

[程序名称/函数名称]
|
+== 外部输入参数/入口参数说明 √
|
+-- 处理1 √
|
+>> 出口返回 √


顺序处理
|
+-- 处理1
|
+-- 处理2


多路分支处理(select case, switch)
|
+EE 分支判断条件 -+- 结果1 -+-- 结果1处理1
|                 |         |
|                 |         +-- 结果1处理2
|                 |
|                 |
|                 +- 结果2 -+-- 结果2处理1
|                 |
|                 |
|                 +- 结果3 -+-- 结果3处理1
|                           |
|                           +-- 结果3处理2
|
|
+-- 处理3


IF处理方式1(if …)
|
+<< 判断条件的肯定描述 -+-Y-+-- 是处理1
|                           |
|                           +-- 是处理2
|
+-- 处理3


IF处理方式2(if … else …)
|
+<< 判断条件的肯定描述 -+-Y-+-- 肯定处理1
|                       |   |
|                       |   +-- 肯定处理2
|                       |
|                       |
|                       +-N-+-- 否定处理1
|                           |
|                           +-- 否定处理2
|
|
+-- 处理3


IF处理方式3(if … elseif … )
|
+<< 判断条件1的肯定描述 -+-Y-+-- 条件1的处理1
|                        |   |
|                        |   +-- 条件1的处理2
|                        |
|                        |
|                        +<< 判断条件2的肯定描述 -+-Y-+-- 非条件1且条件2的处理1
|                                                 |   |
|                                                 |   +-- 非条件1且条件2的处理2
|                                                 |
|                                                 |
|                                                 +-N-+-- 非条件1且非条件2的处理1
|                                                     |
|                                                     +-- 非条件1且非条件2的处理2
|
|
+-- 处理3


循环处理(while方式1)
|
+## 循环条件的肯定描述 -+-- 循环处理1
|                       |
|                       +-- 循环处理2
|
|
+-- 处理3


循环处理(while方式2)
|
+## 循环标志 = True -+-- 循环处理1
|                    |
|                    +-- 循环处理2
|                    |
|                    +<< 退出循环的条件的肯定描述 -+-Y-+-- 循环标志 = False
|
|
+-- 处理3


循环处理(do while方式)
|
+## TRUE -+-- 循环处理1
|         |
|         +-- 循环处理2
|         |
|         +(( 继续循环条件的肯定描述
|
|
+-- 处理3


循环处理(do until方式)
|
+## TRUE -+-- 循环处理1
|         |
|         +-- 循环处理2
|         |
|         +)) 退出循环条件的肯定描述
|
|
+-- 处理3


循环处理(for方式)
|
+## 循环n次 -+-- 循环处理1
|            |
|            +-- 循环处理2
|
|
+-- 处理3


程序模块的出口处理
|
+-- 处理1
|
+<< 判断条件 -+-Y-+-- 处理2
|             |
|             +-N-+>> 出口返回1
|
|
+-- 处理3
|
+>> 出口返回2


子程序/函数调用
|
+-- 处理1
|
+-- [调用的子程序/函数名称]
|
+-- 处理2


[子程序/函数名称]
(Note:子程序/函数功能或设计思路简要说明)
|
+== 入口参数1
|
+== 入口参数2
|
+-- 处理1
|
+-- 处理2
|
+>> 返回值/出口处理


符号综合说明:
==============
"|"   为 垂直纵向的流程线
"+"   为 交叉点
"-"   为 水平横向的流程线
"+--" 为 顺序执行语句
"+==" 为 入口参数
"+<<" 为 条件判断。相当于 if 语句
"+>>" 为 返回/退出 子程序/函数。相当于 exit sub, exit function, return
"+EE" 为 多路分支。相当于 switch, select case
"+##" 为 循环。 相当于 while, do .. loop, for, scan .. end scan
"+((" 为 继续循环。 相当于 loop, do .. while(), do .. loop()
"+))" 为 退出循环。 相当于 exit for, exit do

"-+-Y-+--"  用在 "+<<" 之后,特定地表示条件成立的语句分支
"-+-N-+--"  用在 "+<<" 之后,特定地表示条件不成立的语句分支
"-+-结果的描述-+--"  用在 "+EE" 之后,特定地表示多路分支条件的各种结果的语句分支
"[函数/子程序的名称]"  用在执行语句的描述中,或者一个流程图的最顶端, 表示一个函数/子程序的调用和开始
"(解释/备注/详细说明/注释)"  可以用在任何位置, 作为注释


综合举例:
=========
说明: 下例中的 简要/详细操作描述的3种表达方式的最终程序是相同的.只是表达方式不同而已.
      值得说明的是, 这种表达方式 与 子程序/函数的表达方式除了使用的符号不同外, 所表达的意思也是不同的, 子程序/函数的表达的是一种调用, 子程序/函数内部的语句不属于调用者本身, 而 这种表达方式 内部的语句本来就是属于调用者本身的(或许不能说是调用者).

一共有 A,B,C,D 四个处理顺序执行, 其中处理B由处理1,2 两个详细操作组成, 而处理C由处理3,4 两个详细操作组成.

============================================================

[简要/详细操作描述表达方式1]
|
+-- 处理A的详细操作描述
|
+-- [处理B的简要描述/名称]
|
+-- [处理C的简要描述/名称]
|
+-- 处理D的详细操作描述
|
+>> 结束


[处理B的简要描述/名称]
|
+-- 处理1的详细操作描述
|
+-- 处理2的详细操作描述
|
+>> 返回


[处理C的简要描述/名称]
|
+-- 处理3的详细操作描述
|
+-- 处理4的详细操作描述
|
+>> 返回

============================================================

[简要/详细操作描述表达方式2]
|
+-- 处理A的详细操作描述
|
+-- 处理1的详细操作描述
|
+-- 处理2的详细操作描述
|
+-- 处理3的详细操作描述
|
+-- 处理4的详细操作描述
|
+-- 处理D的详细操作描述
|
+>> 结束

============================================================

[简要/详细操作描述表达方式3]
|
+-- 处理A的详细操作描述
|
+-[处理B的简要描述/名称]-+-- 处理1的详细操作
|                        |
|                        +-- 处理2的详细操作
|
|
+-[处理C的简要描述/名称]-+-- 处理3的详细操作
|                        |
|                        +-- 处理4的详细操作
|
|
+-- 处理D的详细操作
|
+>> 结束

============================================================

<全文完, GSSY 于 2003年1月构想, UDPX 于 2006年1月完善。>

简单是满简单的,而且可以用于程序代码解析自动生成流程图~~

不过...似乎不够直观,对于不熟悉这套流程图意义的人来说,要第一眼就明白你流程图所要表示的含义,比较难.


能说一下你这套流程图打算应用的范围吗?不要和我说是便于在各种编辑器上编辑...如果只是为了便于编辑,我拿根铅笔,一张白纸,做出来的东西不比visio差:D

恩,是一下子看不明白。
用处应该是很有用的。

这个东西,如果集成到建模里面会有点用,但是这样一来,写代码的人就更没什么可做的了,设计人员要做更多事情。

好东西!Good idea!顶一下,一切为了编程更美好!希望早日用程序实现!




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com