《软件工程》习题参考答案5
作者名:不详 来源:网友提供 06年6月8日
第5章
1、详细设计的基本任务是什么,有哪几种描述方法?
答:详细设计的基本任务包括:
1、为每个模块进行详细的算法设计
2、为模块内的数据结构进行设计
3、对数据库进行物理设计
4、其他设计
5、编写详细设计说明书
6、评审
详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。
2、结构化程序设计的基本要点是什么?
答:主要有三个:
1、采用自顶向下、逐步求精的程序设计方法
2、使用三种基本控制结构构造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。
3、主程序员组的组织形式。
3、简述Jackson方法的设计步骤。
答:Jackson方法的设计步骤如下:
(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构。
(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。
(3)按一定的规则由输入、输出的数据结构导出程序结构。
(4)列出基本操作与条件,并把它们分配到程序结构图的适当位置。
(5)用伪码写出程序。
4、请使用流程图、PAD图和PDL语言描述下列程序的算法。
(1)在数据A(1)~A(10)中求最大数和次大数。
解:如图所示:


PDL语言描述:
GET(a[1],a[2],...a[10])
max=a[1];
max2=a[2];
FOR i=2 TO 10
IF a[i]>max
max2=max;
max=a[i];
ELSE
IF a[i]>max2
max2=a[i];
ENDIF
ENDIF
ENDFOR
PUT(max,max2)
END
(2)输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。
解:如图:


PDL语言描述如下:
GET(a,b,c)
IF (a+b>c and b+c>a and c+a>b)
IF (a=b)
IF (a=c)
PUT("等边三角形")
ELSE
PUT("等腰三角形")
ENDIF
ELSE
IF(a=c)
PUT("等腰三角形")
ELSE
IF (b=c)
PUT("等腰三角形")
ELSE
PUT("一般三角形")
ENDIF
ENDIF
ENDIF
ELSE
PUT ("这不是一个三角形")
ENDIF
5、用PAD图描述下面问题的控制结构。
有一个表A(1)、A(2)、...A(n),按递增顺序排列。给定一个Key值,在表中用折半法查找。若找到,将表位置i送入x,否则将零送到x,同时将key值插入表中。
算法:
(1)置初值H=1(表头),T=N(表尾)。
(2)置i=[(H+T)/2](取整)。
(3)若Key=A(i),则找到,i送到x;若Key>A(i),则Key在表的后半部分,i+1送入H;若Key<A(i),则Key在表的前半部分,i-1送入T,重复第2步查找直到H>T为止。
(4)查不到时,将A(i),...A(N)移到A(i+1)...A(N+1),Key值送入A(i)中。
解:如图所示:

6、一个正文文件由若干记录组成,每个记录是一个字符串,要求统计每个记录中空格字符的个数及文件中空格字符的总个数。要求输出数据格式是每复制一行字符串后,另起一行打印出这个字符串中的空格数,最后打印出文件空格的总个数,用Jackson方法设计该程序结构。

|