1,5 详细设计
主要任务确定每个模块的具体实现算法。
经常采用的方法:
结构化程序设计方法(简称 SP方法)
结构化程序设计是一种程序设计的技术,它采用自顶向下逐步求精的设计方法和单入口、单出口的控制结构。
结构化程序设计允许的三种基本控制结构就是
,顺序,,,选择,和,循环,。
结构化程序设计的优点:
( 1) 自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,可提高软件开发的成功率和生产率

( 2) 它是先全局后局部,先整体后细节,先抽象后具体的逐步求精过程,? 可以采用的工具
( 1) 程序流程图
( 2) N —S图
( 3) PAD(Problem Analysis Diagram)图
( 4) 判定表能清晰地表示复杂的条件组合与应做的操作之间的对应关系 。
现用行李托运费计算为例说明判定表的用法 ( 见下表 ) 。
某航空公司规定,每位乘客可免费托运 30公斤行李,超过部分的计费对不同旅客,不同舱位而标准不同。头等舱国内乘客每超一公斤收费 4元,其它舱则收 6元。国外旅客比国内旅客每超一公斤多收一倍费用,而残疾旅客则少收一倍费用。表中用 T表示条件成立,F表示不成立。表中打,∨,表示作其左边的操作。
1 2 3 4 5 6 7 8 9
国内乘客 T T T T F F F F
头等舱 T F T F T F T F
残疾乘客 F F T T F F T T
行李重 W <=30T F F F F F F F F
免费 ∨
(W-30)*2 ∨
(W-30)*3 ∨
(W-30)*4 ∨ ∨
(W-30)*6 ∨ ∨
(W-30)*8 ∨
(W-30)*12 ∨
判定表能清楚地表述处理规则和各种条件组合所对应的操作,但它只能作为一种辅助工具。
随着判定条件的增加、其清晰程度迅速下降。
用判定表来描述计算航空行李费的算法
( 5) 判定树其实质是判定表的一种变种,它也能清晰地表达复杂的条件组合和与之对应的操作,而且它比判定表更直观、易于掌握和使用。用判定树来表述关于行李费用的算法见下图:
航空行李费算法行李重
W>30
行李重
W<=30 免费国内乘客国外乘客头等舱其它舱残疾乘客 —(W-30)*2
正常乘客 —(W-30)*4
残疾乘客 —(W-30)*3
正常乘客 —(W-30)*6
头等舱其它舱残疾乘客 —(W-30)*4
正常乘客 —(W-30)*8
残疾乘客 —(W-30)*6
正常乘客 (W-30)*12
( 6) 伪代码和 PDL(Program Design Language)语言伪代码属于文字形式表达工具 。
伪代码形式上与代码相似,用于描述软件设计,但不能在计算机上执行 。 用伪代码描述,其工作量比画图小,且易于转换成真正的代码 。
PDL语言是一种伪代码 。 它具有严格的关键字外部语法,用于定义控制结构和数据结构;有表示实际操作和条件的内部语法,可适应各种工程项目的需要 。
例如有下列算法,
① 令,最大数
” =“数组的第一个元素
” 。
② 从第二个元素至 最末一个元素做,
若,新元素
” >“最大数,,则
,最大数,=“新 元素,。
用 PDL语言可写成下列形式,
MAX=A[1]
DO FOR I=2
TO N
IF
MAX<A[I]
THEN
MAX=A[I]