摘要: 早在20世纪60年代初,人们就发现,在程序中大量地、没有节制地使用GOTO语句会使程序结构变得非常混乱。后来又有人证明,任何单入口、单出口的“没有死循环”的程序都能由三种最基本的控制结构构造出来。这三种基本控制结构是“顺序结构”、“IF_THEN_ELSE选择...
早在20世纪60年代初,人们就发现,在程序中大量地、没有节制地使用GOTO语句会使程序结构变得非常混乱。后来又有人证明,任何单入口、单出口的“没有死循环”的程序都能由三种最基本的控制结构构造出来。这三种基本控制结构是“顺序结构”、“IF_THEN_ELSE选择结构,,和“DO_WHILE”或“DO_UNTIL重复结构”。
在后来发展的围绕GOTO语句的争论中,产生了一种新的程序设计思想、方法和风格,即结构化程序设计,这种程序设计方法显著提高了软件质量和生产效率,并降低了软件维护成本。
1.结构化程序设计的主要原则
(1)使用程序设计语言的顺序、选择、重复等有限的基本控制结构表示程序和逻辑结构。
(2)选用的控制结构只允许有一个入口和出口
(3)程序应白容易识别的块(Block)组成,每个块只有一个入口和一个出口。
(4)复杂结构应该用基本控制结构进行组合嵌套来实现。
(5)严格控制使用GOTO语句(出错处理除外)。
2.程序设计自顶向下逐步求精
在概要设计阶段,我们经常使用自顶向下,逐步细化的方法,把一个复杂问题的解法分解为一个由许多功能模块组成的层次结构软件系统,在详细设计和编码阶段,仍应当采取自顶向下逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体步骤。
自顶向下,逐步求精方法具有以下优点:
(1)符合人们解决复杂问题的普遍规律,可提高软件开发的成功率和生产率。
(2)用先全局后局部、先整体后细节、先抽象后具体逐步求精的过程开发出来的程序具有清晰的层次结构和良好的可读性。
(3)自顶向下,逐步细化的程序设计形成(倒)树形结构,可以理解为:任何节点上发生的错误只影响它的下层节点,而同层的其他节点不受影响,并有利于对各节点进行独立测试。
(4)可重复使用的代码量大,易于系统的修改和重新设计。