《软件工程》习题参考答案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方法设计该程序结构。