结构化程序设计方法

论坛 期权论坛 脚本     
已经匿名di用户   2022-7-2 21:57   1805   0
结构化程序设计方法
详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,也称“过程设计”,详细设计的目标不仅是逻辑上正确地实现每个模块的功能,并使设计出的处理过程清晰易读。过程设计中采用的典型方法是结构化程序设计(简称SP)方法,最早是由E.W.Dijkstra在60年代中期提出的,它是实现详细设计目标的关键技术之一。
结构化程序设计方法的基本要点是:
1. 采用自顶向下,逐步求精的程序设计方法
在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。
2. 使用三种基本控制结构构造程序
任何程序都可由顺序、选择、重复三种基本控制结构构造。
(1)用顺序方式对过程分解,确定各部分的执行顺序。
(2)用选择方式对过程分解,确定某个部分的执行条件。
(3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。
(4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。
3. 主 程序员组的组织形式
指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。
程序设计的基本目标是用算法对问题的原始数据进行处理,从而获得所期望的效果。但这仅仅是程序设计的基本要求。要全面提高程序的质量,提高编程效率,使程序具有良好的可读性、可靠性、可维护性以及良好的结构,编制出好的程序来,应当是每位程序设计工作者追求的目标。而要做到这一点,就必须掌握正确的程序设计方法和技术。


1.3.1 程序的三种基本结构
  结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,就是用上节我们提到的"很随意"的流程线来描述这种转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。为此提出了程序的三种基本结构。


  在讨论算法时我们列举了程序的顺序、选择和循环三种控制流程,这就是结构化程序设计方法强调使用的三种基本结构。算法的实现过程是由一系列操作组成的,这些操作之间的执行次序就是程序的控制结构。1996年,计算机科学家Bohm和Jacopini证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。所以,这三种结构就被称为程序设计的三种基本结构。也是结构化程序设计必须采用的结构。


1. 顺序结构
  顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的,其流程如图1-6所示。图中的s1和s2表示两个处理步骤,这些处理步骤可以是一个非转移操作或多个非转移操作序列,甚至可以是空操作,也可以是三种基本结构中的任一结构。整个顺序结构只有一个入口点a和一个出口点b。这种结构的特点是:程序从入口点a开始,按顺序执行所有操作,直到出口点b处,所以称为顺序结构。上一节图1-2表示的就是一个顺序结构的流程图。事实上,不论程序中包含了什么样的结构,而程序的总流程都是顺序结构的。例如,在图1-3、图1-4和图1-5所表示的流程图中,其总体结构流程都是自上而下顺序执行的。

2.选择结构
  选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。
双选择是典型的选择结构形式,其流程如图1-8所示,图中的s1和s2与顺序结构中的说明相同。由图中可见,在结构的入口点a处是一个判断框,表示程序流程出现了两个可供选择的分支,如果条件满足执行s1处理,否则执行s2处理。值得注意的是,在这两个分支中只能选择一条且必须选择一条执行,但不论选择了哪一条分支执行,最后流程都一定到达结构的出口点b处。前面的图1-3中就采用了双选择结构流程图。


  当s1和s2中的任意一个处理为空时,说明结构中只有一个可供选择的分支,如果条件满足执行s1处理,否则顺序向下到流程出口b处。也就是说,当条件不满足时,什么也没执行,所以称为单选择结构,如图1-7所示。

  多选择结构是指程序流程中遇到如图1-9所示的s1、s2、……、sn等多个分支,程序执行方向将根据条件确定。如果满足条件1则执行s1处理,如果满足条件n则执行Sn处理,总之要根据判断条件选择多个分支的其中之一执行。不论选择了哪一条分支,最后流程要到达同一个出口处。如果所有分支的条件都不满足,则直接到达出口。有些程序语言不支持多选择结构,但所有的结构化程序设计语言都是支持的,C语言是面向过程的结构化程序设计语言,它可以非常简便的实现这一功能。本书在第五章将详细介绍各种形式的选择结构应用问题。


3.循环结构
  循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的是:什么情况下执行循环?哪些操作需要循环执行?循环结构的基本形式有两种:当型循环和直到型循环,其流程如图1-10所示。图中虚线框内的操作称为循环体,是指从循环入口点a到循环出口点b之间的处理步骤,这就是需要循环执行的部分。而什么情况下执行循环则要根据条件判断。

  当型结构:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。因为是"当条件满足时执行循环",即先判断后执行,所以称为当型循环。其流程如图1-10(a)所示。
  直到型循环:表示从结构入口处直接执行循环体,在循环终端处判断条件,如果条件不满足,返回入口处继续执行循环体,直到条件为真时再退出循环到达流程出口处,是先执行后判断。因为是"直到条件为真时为止",所以称为直到型循环。其流程如图1-10(b)所示。本章图1-5用迭代法求和的流程图就是一个典型的直到型循环结构。
  同样,循环型结构也只有一个入口点a和一个出口点b,循环终止是指流程执行到了循环的出口点。图中所表示的S处理可以是一个或多个操作,也可以是一个完整的结构或一个过程。

  整个虚线框中是一个循环结构。
  通过三种基本控制结构可以看到,结构化程序中的任意基本结构都具有唯一入口和唯一出口,并且程序不会出现死循环。在程序的静态形式与动态执行流程之间具有良好的对应关系。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP