第5章习题(修改ok)-答案.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

1.简述详细设计的任务。

包括模块的算法设计、模块内的数据结构设计、模块接口设计、其它根据软件特点需要完成的设计、模块测试用例设计、设计文档编写、设计评审。

2.简述详细设计的原那么。

①模块的逻辑描述应清晰易读、正确可靠;

②设计的处理过程应该简明易懂;

③选择恰当的描述工具来描述模块算法。

3.简述结构化程序设计根本要求和特点。

要点:

a.采用自顶向下、逐步求精的程序设计方法

b.使用三种根本程序控制结构构造程序

1).用顺序方式对过程分解,确定各局部的执行顺序。

2).用选择方式对过程分解,确定某个局部的执行条件。

3).用循环方式对过程分解,确定某个局部重复的开始和结束的条件。

c.主程序员组的组织形式。

特点:

①自顶向下、逐步求精;

②具有单入、单出的控制结构〔取消GOTO语句〕

4.简述用户界面设计的根本原那么

〔1〕可靠性

用户界面应当提供可靠的、能有效减少用户出错的、容错性好的环境。一旦用户出错,应当能检测出错误、提供出错信息,给用户改正错误的时机。

〔2〕简单性

简单性能提高工作效率。用户界面的简单性包括输入、输出的简单性;系统界面风格的一致性;命令关键词的含义、命令的格式、提示信息、输入输出格式等的一致性。

〔3〕易学习性和易使用性

用户界面应提供多种学习和使用方式,应能灵活地适用于所有的用户。

〔4〕立即反应性

用户界面对用户的所有输入都应立即做出反应。当用户有误操作时,程序应尽可能明确地告诉用户做错了什么,并向用户提出改正错误建议。

三、以下图是使用Basic语言编写的一个打印A,B,C三数中最小者的程序的流程图。其中出现了6个GOTO语句,一个向前,5个向后,程序可读性很差。if(AB)goto120;if(BC)goto110;

100printC;goto140;

110printB;goto140;

120if(AC)goto130;goto100;

130printA;

140

试利用根本控制结构,将程序中的GOTO语句消去。〔10分〕

三、答案:使用if-then-else结构化构造,那么上述程序段可改成如下形式。

if(ABandAC)thenprintA

elseif(A=BandBC)thenprintB

elseprintC;

4.请使用流程图、PAD图各PDL语言描述以下程序的算法。

(1)在数据A〔1〕-A〔10〕中求最大数和次大数。

(2)输入三个正整数作为边长、判断该三条边构成的三角形是等边、等腰或一般三角形。

答:

(1)

1〕流程图:

2〕PAD图

3〕PDL语言

定义n1=n2=0

输入A(1).......A(10)

n1=n2=A(1)

whilei10

ifA(i)=n1

n2=n1

n1=A(i)

endwhile

四、选择一种将三个数从小到大排序的算法,分别用〔1〕流程图,〔2〕N-S图,〔3〕PAD图描述其详细过程。

设数为a,b,c,其详细过程如下:

〔1〕流程图

〔2〕N-S图

〔3〕PAD图

40.请使用PAD图和PDL语言描述在数组A〔1〕~A〔10〕中找最大数的算法。

解:PDL语言:

N=1

WHILEN=10DO

IFA〔N〕=A〔N+1〕MAX=A〔N+1〕;

ELSEMAX=A〔N〕ENDIF;

N=N+1;

ENDWHILE;

PAD图:

[解析]人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比拟,将较大者作为当前元素又与下一元素比拟,如此循环,直到数组末尾。

将下面给出的伪码转换为N-S图和PAD图。

voidroot(floatroot1,floatroot2){

i=1;j=0;

while(i=10){

输入一元二次方程的系数a,b,c;

p=b*b–4*a*c;

if(p0)输出“方程i无实数根”;

elseif(p0)求出根并输出;

if(p==0){

求出重根并输出;

j=j+1;

}

i=i+1;

}

i=1;j=0;while(i=10)

i=1;j=0;

whil

文档评论(0)

展翅高飞2020 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档