就是以函数调用为主要解决问题的方法,将问题分解为若干步骤,每一步接受前一步的结果作为输入,通过一个或多个函数(模块)处理,并将该函数的结果向后输出,中间可能有循环或分支,直到问题解决。
结构化程序设计最大的特点是把问题分解为步骤,这与面向对象把问题看待成类和对象的建模方法是不同的。
结构化程序设计是由学者戴克斯特拉提倡的一种编程风格,就是为了把程序编写的具备结构性,仅使用顺序执行、条件分支和循环表示程序的流程,不再使用跳转指令。
结构化程序设计由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。
由于模块相互独立,因此在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。
按照结构化程序设计的观点,任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合: 顺序结构、选择结构和循环结构来实现。
结构化程序设计的基本思想是采用"自顶向下,逐步求精"的程序设计方法和"单入口单出口"的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;"单入口单出口"的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序来。