第5章习题(修改ok)-答案.doc_第1页
第5章习题(修改ok)-答案.doc_第2页
第5章习题(修改ok)-答案.doc_第3页
第5章习题(修改ok)-答案.doc_第4页
第5章习题(修改ok)-答案.doc_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1简述详细设计的任务。包括模块的算法设计、模块内的数据结构设计、模块接口设计、其它根据 软件特点需要完成的设计、模块测试用例设计、设计文档编写、设计评审。2简述详细设计的原则。 模块的逻辑描述应清晰易读、正确可靠; 设计的处理过程应该简明易懂; 选择恰当的描述工具来描述模块算法。3简述结构化程序设计基本要求和特点。要点:a. 采用自顶向下、逐步求精的程序设计方法b. 使用三种基本程序控制结构构造程序1).用顺序方式对过程分解,确定各部分的执行顺序。2).用选择方式对过程分解,确定某个部分的执行条件。3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。c. 主程序员组的组织形式。特点

2、: 自顶向下、逐步求精; 具有单入、单出的控制结构(取消 GOTO语句) 4简述用户界面设计的基本原则(1)可靠性 用户界面应当提供可靠的、能有效减少用户出错的、容错性好的环境。一旦用户出错, 应当能检测出错误、提供出错信息,给用户改正错误的机会。(2)简单性简单性能提高工作效率。 用户界面的简单性包括输入、 输出的简单性; 系统界面风格的 一致性;命令关键词的含义、命令的格式、提示信息、输入输出格式等的一致性。(3)易学习性和易使用性 用户界面应提供多种学习和使用方式,应能灵活地适用于所有的用户。(4)立即反馈性 用户界面对用户的所有输入都应立即做出反馈。 当用户有误操作时, 程序应尽可能明

3、确 地告诉用户做错了什么,并向用户提出改正错误建议。三、下图是使用 Basic 语言编写的一个打印 A , B,C 三数中最小者的程序的流 程图。其中出现了 6个 GOTO 语句,一个向前, 5个向后,程序可读性很差。if ( A < B ) goto 120; if ( B < C ) goto 110;100 print C;goto 140;110 print B;goto 140;120 if ( A < C ) goto 130;goto 100;130 print A;140试利用基本控制结构,将程序中的 GOTO 语句消去。(10 分)、答案:使用 if - t

4、hen - else 结构化构造,则上述程序段可改成如下形式。if ( A < B and A < C ) thenprint Aelse if ( A >= B and B < C ) thenprint Belseprint C;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) while

5、i>10 if A(i)>=n1 n2=n1 n1=A(i) end while四、选择一种将三个数从小到大排序的算法,分别用(1)流程图,(2) N-S 图,(3)PAD 图描述其详细过程。设数为 a,b,c,其详细过程如下:1)流程图2) N-S 图3) PAD 图40请使用 PAD图和 PDL语言描述在数组 A(1) A( 10)中找最大数的算法。解: PDL语言:N=1WHILE N<=10 DOIF A (N)<=A(N+1) MAX =A( N+1)ELSE MAX =A( N) ENDIF;N=N+1;ENDWHILE;PAD图:解析 人工查找时, 是从第

6、一个元素开始查找, 用当前元素与下一个元素比较, 较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。2、 将下面给出的伪码转换为 N-S 图和 PAD 图。 void root ( float root1, float root2 ) i = 1; j = 0;while ( i <= 10 ) 输入一元二次方程的系数 a, b, c;p = b*b 4*a*c ;if ( p < 0 ) 输出“方程 i 无实数根” else if ( p > 0 ) 求出根并输出 ;if ( p = 0 ) 求出重根并输出i = i +1 ; 输出重根的方程的个数解答】1) N-

7、S 图2) PAD 图9下图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的? (2)设计一个等价的结构化程序。( 3)在( 2)题的设计中你使用附加的标志变量flag 吗?若没用,请再设计一个使用 flag的程序;若用了,再设计一个不用 flag 的程序。STARTIF p THENWHILE q DO fEND DOELSEBLOCKgnEND BLOCKEND IFSTOP答:(1)通常所说的结构化程序, 是按照狭义的结构程序的定义衡量, 符合定义规定的程序。 图示的程序的循环控制结构有两个出口, 显然不符合狭义的结构程序的定义, 因此是非结构 化的程序。(2)

8、使用附加的标志变量 flag ,至少有两种方法可以把该程序改造为等价的结构化程序, 图 4-3 描绘了等价的结构化程序的盒图。flag=TRUEp AND flaggqFqTflag=FALSEa)解法 1flag=TRUEF p Tflag=FALSEg(NOT q)OR(NOT flag)b)解法 2图 4-3 与该图等价的结构化程序(用 flag )3)不使用 flag 把该程序改造为等价的结构化程序的方法如图 4-4 所示。FpTg(NOT q)OR(NOT flag)图 4-4 与该图等价的结构化程序(不用 flag )12.某厂对部分职工重新分配工作的政策是:年龄在伙岁以下者, 初

9、中文化程度脱产学习。 高中文化程度当电工; 年龄在 20 岁到 40 岁之 间者,中学中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。年龄在 40 岁以上者, 中学文化程度当材料员, 大学文化程序当技术员。 请用结构化语言、判定表或判 定树描述上述问题的加工逻辑。(1)结构化语言: 根据职工年龄和文化程序:REPEATIf 年龄 <=20If 初中文化 Then 脱产学习 endifelse if 高中文化 Then 电工 endif endifIf 20<年龄 <40If 中学文化If 男性 Then 钳工Else车工Endifelse if 大学文化 Then

10、 技术员 endifendifendifIf 年龄 >=40If 中学文化 Then 材料员else if 大学文化 Then 技术员 endifendifendifUntil 没有剩余未分配员工判定表1234567891011年龄CCDDDDDEEE文化GHHGGHIGHI性别-MMFF-脱产学习电工钳工车工技术员材料员条件取值表条件名取值符号取值数年龄<=20CM1=3>20,<40D>=40E文化程度中学GM2=3高中H大学I性别男MM3=2女F8画出下列伪码程序的流图, 计算它的环形复杂度。 你觉得这个程序的逻辑有什么问题吗? C EXAMPLELOOP:DO WHILE X>0A=B+1IF A>10THEN X=AELSE Y=ZEND IFIF Y<5THEN PRINT X,YELSE IF Y=2THEN GOTO LOOPELSE C=3END IFEND IFG=H+REND DOIF F>0THEN PRINT GELSE PRINT KEND IFSTOP答:(1)该伪码的流程图如图 4-8 所示:图 4-8 程序流程图 根据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论