伪代码实例介绍ppt课件.ppt

上传人:飞****2 文档编号:69258659 上传时间:2023-01-01 格式:PPT 页数:65 大小:245.50KB
返回 下载 相关 举报
伪代码实例介绍ppt课件.ppt_第1页
第1页 / 共65页
伪代码实例介绍ppt课件.ppt_第2页
第2页 / 共65页
点击查看更多>>
资源描述

《伪代码实例介绍ppt课件.ppt》由会员分享,可在线阅读,更多相关《伪代码实例介绍ppt课件.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人第第2章章 伪代码实例介绍伪代码实例介绍主讲:黄明琼主讲:黄明琼烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人第第2章章 伪代码实例介绍伪代码实例介绍2.1 伪代码介绍伪代码介绍2.2 三角形问题三角形问题2.3 NextDate函数问题函数问题2.4 佣金问题佣金问题2.5 简单简单ATM系统系统2.6 货币转换器货币转换器烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积

2、烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人本章教学目标本章教学目标n正确理解伪代码的概念n正确理解伪代码的规则n正确理解伪代码实例中的逻辑n能够看懂实例中的伪代码所表达的含义烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1 伪代码介绍伪代码介绍2.1.1 伪代码概念伪代码概念2.1.2 一种伪代码规则一种伪代码规则烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1 伪代码介绍伪代码介绍伪代码伪代码引言:引言:n在

3、单元测试中,我们会用到三个例子,分别是:三角形问题;逻辑比较复杂的函数,NextDate();有代表性的MIS测试,佣金问题。这三个例子合在一起,可以说明测试人员在单元级别上会遇到的大多数问题,而在讨论这几个问题时,我们会用到伪代码这个工具,因此今天我们先介绍伪代码的概念和一种伪代码规则。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.1 伪代码概念伪代码概念n伪代码实际上是计算机代码的简略形式,它比流程图更像计算机代码。n伪代码必须结构清晰,代码简单,可读性好。n伪代码要求程序设计人员集中于解决问题而不是计

4、算机语言。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.1 伪代码概念伪代码概念(续)(续)n伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。好,并且类似自然语言。介于自然语言与介于自然语言与编程语言之间。编程语言之间。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健

5、康皮肤很有限,请同学们想一想如何来治疗该病人2.1.1 伪代码概念伪代码概念(续)(续)n例如例如,类类Pascal语言的伪代码的语法规则是语言的伪代码的语法规则是:在伪代码中,每一条指令占一行(elseif,例外)。指令后不跟任何符号(Pascal和C中语句要以分号结尾)。书写上的“缩进”表示程序中的分支程序结构。这种缩进风格也适用于if-then-else语句。用缩进取代传统Pascal中的begin和end语句来表示程序的块结构可以大大提高代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大

6、面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.1 伪代码概念伪代码概念(续)(续)n伪代码只是像流程图一样用在程序设计的初期,帮助写出程序流程。简单的程序一般都不用写流程、写思路,但是复杂的代码,最好还是把流程写下来,总体上去考虑整个功能如何实现。写完以后不仅可以用来作为以后测试,维护的基础,还可用来与他人交流。但是,如果把全部的东西写下来必定可能会浪费很多时间,那么这个时候可以采用伪代码方式。比如:比如:IF九点以前THENdo私人事务;ELSF9点到18点THEN工作;ELSE下班;ENDIF这样不但可以达到文档的效果,同时可以节约时间.更重要的是,使结构比较清晰

7、,表达方式更加直观.烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则n变量声明n符号后的内容表示注释n数据结构声明n赋值语句n输入n输出n简单条件n复合条件n顺序结构n简单选择n选择n多重选择n计数循环nWhile循环nUnitl循环n过程定义n过程调用n程序n练习n小结烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n变量声明用:变量声明用:Dim A

8、s 例如例如:DimaAsINTEGER意思是:声明a为整形变量Dima,b,c,matchAsINTEGER意思是:声明a,b,c,match都为整形变量n符号符号后的内容表示注释;后的内容表示注释;例如:例如:Dima,b,cAsINTEGER定义三角形的三条边烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n数据结构声明:数据结构声明:TypeEnd例如例如:TypeSTUDENTDimnameAsSTRINGDimageAsINTEGERDimNOAsSTRIN

9、GDimteleAsSTRINGEndSTUDENT烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n赋值语句:赋值语句:=例如例如:tomorrowDay=day+1tomorrowMonth=month+1n输入:输入:Input()例如例如:Input(a)Input(a,b,c)烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n输出输出O

10、utput()例如例如:Output(“SideAis”,a)Output(“SideBis”,b)Output(“SideCis”,c)Output(“Error!pleaseagain!”)烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n简单条件:简单条件:例如例如:Stud.age=0Stud.agec烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码

11、规则(续续)n复合条件:复合条件:例如例如:(ab+c)AND(ba+c)AND(ca+b)烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n顺序结构顺序结构语句按照串行顺序排列。语句按照串行顺序排列。例如:例如:Output(“Enter3integerswhicharesidesofatriangle)Input(a,b,c)Output(“SideAis”,a)Output(“SideBis”,b)Output(“SideCis”,c)烧伤病人的治疗通常是取烧伤病

12、人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n简单选择简单选择nIf ThennnEndIf例如例如:ifa=bThenmatch=match+1EndIf烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n选择选择If ThenElse EndIf例如例如:if(ab+c)AND(ba+c)AND(ca+b)ThenIsTriangle=TrueElseIsTriang

13、le=FalseEndIf烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n多重选择多重选择Case ofCase 1:Case n:EndCase例如:例如:CasescoreofCase1:score=90Output(“Good!”)Case2:60=score=89Output(“Pass!”)Case3:0=score=59Output(“NotPass!”)EndCase烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤

14、很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n计数循环计数循环For=ToEndFor例如例如:Fori=1to100sum=sum+iEndFor烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)nWhile循环循环Do WhileEndWhile例如例如:DoWhilestature=165Output(“Stop!”)EndWhile烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有

15、限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)nUntil循环循环DoUntil 例如例如:sum=0i=1Dosum=sum+ii=i+1Untili=100烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n过程定义过程定义(函数和面向对象方法的定义类似函数和面向对象方法的定义类似)(Input:;Output:)End烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何

16、来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n过程调用过程调用(函数和面向对象方法的定义类似函数和面向对象方法的定义类似)Call(;)n程序:程序:Program End 烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n伪代码课堂练习伪代码课堂练习问题:计算并报告一个班学生的平均分数。讨论:平均分数等于所有学生分数的和除以学生数。我们需要一个循环然后加班中每位学生的分数。在循环内仍需要班内学生的总数。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移

17、植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)ProgramaveragegradeDimgrade,sum,averageAsRealDimcounterAsintegersum=0.0counter=0Dowhiletherenomoredatainput(grade)sum=sum+gradecounter=counter+1EndWhileaverage=sum/counterOutput(average)Endaveragegrade烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人

18、来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.1.2 一种伪代码规则一种伪代码规则(续续)n小结这里介绍的伪代码提供了表示程序源代码的“独立于语言”的方式。伪代码有两层结构:单元和程序组建。单元既可以解释为传统组件(过程和函数),也可以解释为面向对象组件(类和对象)。使用伪代码可以使程序设计人员集中于解决问题而不是计算机语言。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2 三角形问题三角形问题2.2.1 三角形问题陈述三角形问题陈述2.2.2 三角形问题实现三角形问题实现烧伤病人的治疗通常是取烧伤病

19、人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2 三角形问题三角形问题n引言:引言:三角形问题是软件测试中一个经久不衰的例子,它包含了清晰而且复杂的逻辑。比如说三角形的性质:任何两边之和必须要严格大于第三条边。我们在讲述这个问题的时候还给出了三角形三条边的上限值,这主要是为了以后在讲黑盒测试时要用到这个上限值。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2 三角形问题三角形问题n三角形问题是在软件测试文献中使用最广的一个例子,这个例子经久不衰的原因之一是

20、,它包含了清晰而又复杂的逻辑。它还是削弱客户、开发人员和测试人员沟通的不完整定义的典型例子。n三角形问题之所以复杂,是因为输入与正确输出之间的关系复杂。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2.1 三角形问题陈述三角形问题陈述简单版本简单版本:三角形问题接受三个整数a、b和c作为输入,用作三角形的边。程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。有时这个问题被扩展为将直角三角形作为第五类,在有些练习中会使用这种扩展。改进版本改进版本:三角形问题接受三个整数a、b

21、和c作为输入,用作三角形的边。整数整数a、b和和c必须满足以必须满足以下条件:下条件:c1:1=a=200c4:ab+cc2:1=b=200c5:ba+cc3:1=c=200c6:ca+b烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2.1 三角形问题陈述三角形问题陈述(续续)程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。如果输入值没有满足这些条件中的任何一个,则程序会通过输出消息来进行通知,例如,例如,“b的取值不在允许范围内”,若若c1、c2、c3满足,则给出以下四

22、种相互排斥输出的一个满足,则给出以下四种相互排斥输出的一个:1.如果三条边相等,则程序的输出是等边三角形。2.如果两条边相等,则程序的输出是等腰三角形。3.如果没有两条边相等,则程序的输出是不等边三角形。4.如果c4、c5和c6中有一个条件不满足,则程序的输出是非三角形。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2.2 三角形问题实现三角形问题实现n以下是三角形问题的数据流图描述以下是三角形问题的数据流图描述。可以把这个程序实现为一个主程序和三个简单的过程。在后续章节里我们还要用到这个例子,现在将它的实现用

23、伪代码表示。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2.2 三角形问题实现三角形问题实现(续续)三角形程序实现的数据流图三角形程序实现的数据流图烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2.2 三角形问题实现三角形问题实现(续续)n三角形问题实现的伪代码三角形问题实现的伪代码Programtriangle2versionofsimpleDima,b,cAsIntegerDimIsATriangleAsBooleanSt

24、ep1:GetInputOutput(“Enter3integerswhicharesidesofatriangle”)Input(a,b,c)Output(“SideAis”,a)Output(“SideBis”,b)Output(“SideCis”,c)Step2:IsATriangle?If(ab+c)AND(ba+c)AND(ca+b)ThenIsATriangle=TrueElseIsATriangle=FalseEndIfstep3:DetermineTriangleTypeIfIsATrangleThenif(a=b)AND(b=c)ThenOutput(“Equilateral

25、”)ElseIf(ab)AND(ac)AND(bc)ThenOutput(“Scalence”)ElseOutput(“Isosecles”)EndIfEndIfElseOutput(“NOTaTriangle”)EndIfEndtriangle2烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.2.2 三角形问题实现三角形问题实现(续续)n三角形问题实现的伪代码续三角形问题实现的伪代码续Programtriangle3improvedversionDima,b,cAsIntegerDimIsATriangleAs

26、BooleanStep1:GetInputDoOutput(“Enter3integerswhicharesidesofatriangle”)Input(a,b,c)c1=(1=200)c2=(1=200)c3=(1=200)IfNOT(c1)ThenOutput(“Valueofaisnotintherangeofpermittedvalues”)EndIfIfNOT(c2)ThenOutput(“Valueofbisnotintherangeofpermittedvalues”)EndIfIfNOT(c3)ThenOutput(“Valueofcisnotintherangeofpermi

27、ttedvalues”)EndIfUntilc1ANDc2ANDc3Output(“SideAis”,a)Output(“SideBis”,b)Output(“SideCis”,c)Step2Step3Endtriangle3烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.3 NextDate函数问题函数问题2.3.1 NextDate 问题陈述问题陈述2.3.2 NextDate 的伪代码实现的伪代码实现2.3.3 NextDate 小结小结烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤

28、病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.3 NextDate函数问题函数问题n引言:引言:NextDate问题说明了输入变量之间的逻辑关系复杂性。n输入变量之间的逻辑比较复杂n有两种复杂性来源:输入域和闰年规则n80%活动出现在20%的空间烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.3.1 NextDate 问题陈述问题陈述nNextDate是一个有三个变量(月份、日期和年)的函数。函数返回输入日期后面的那个日期。变量月份、日期和年都是整数值,并满足以下条件:c1:1=月份=12c2:1=

29、日期=31c3:1812=年=2012n我们的处理要包括对月份、日期和年的无效输入值的响应处理,还要对无效逻辑处理,例如例如任意年的4月31日。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.3.1 NextDate 问题陈述问题陈述(续)(续)n在NextDate函数中有两种复杂性来源:输入域和闰年规则。关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,

30、这一年有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如例如1900年、2100年就不是闰年。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.3.2 NextDate 的伪代码实现的伪代码实现Ifday31thentomorrowDay=day+1elsetomorrowDay=1tomorrowMonth=mon

31、th+1EndIfCase2:monthIs4,6,9or1130daymonthIfday30thentomorrowDay=day+1elsetomorrowDay=1tomorrowMonth=month+1EndIfProgramNextDate1SimpleversionDimtomorrowDay,tomorrowMonth,tomorrowYearAsIntegerDimday,month,yearAsIntegerOutput(“EntertodaysdateintheformMMDDYYYY”)Input(month,day,year)CasemonthOfCase1:mon

32、thIs1,3,5,7,8,or10:31daymonths(excpet12)烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.3.2 NextDate 的伪代码实现的伪代码实现(续)Case3:monthIs12:Ifday31thentomorrowDay=day+1elsetomorrowDay=1tomorrowMonth=1Ifyear=2012thenOutput(“2012isover”)elsetomorrowYear=year+1EndIfEndIfCase4:monthIs2:Ifday450

33、00.0)then commission=0.04*20000.0 commission=commission+0.01*25000.0 commission=commission+0.005*(sales-45000.0)else If(sales20000)then commission=0.04*commission commission=commission+0.01*(sales-20000)else commission=0.04*sales EndIfEndIfOutput(“Commission is”,commission,”元”)EndCommission烧伤病人的治疗通常

34、是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.5 简单简单ATM系统系统2.5.1 SATM的问题描述的问题描述2.5.2 SATM问题分析问题分析2.5.3 SATM问题实现问题实现烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.5 简单简单ATM系统系统引言:引言:n为了方便同学们了解集成测试和系统测试,我们介绍一个简单的自动柜员机系统,n包含各种功能和交互,是一个典型的客户/服务系统的客户端。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移

35、植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.5.1 SATM的问题描述的问题描述nSATM客户可以选择三种交易中的任意一种:存款、取款和查询余额。这些交易可以在信用帐户和储蓄帐户上完成。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.5.1 SATM的问题描述的问题描述(续续)烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.5.2 SATM问题分析问题分析n有大量的信息隐藏在刚刚给出的系统描述中。

36、例如例如,100元的整数倍,这种文字描述可能比实际问题中更加精确。nSATM-简单ATMn透支额度?放入多少现金?何种现金?烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.5.3 SATM问题实现问题实现Programme teller(input,output)ATMDim balance,inputMoney,outputMoney,currentMoney As IntegerDim password As StringDim inquire,fetch,deposit As StringDim isPas

37、swordRight As BooleancurrentMoney=balance+inputMoneyoutput(“please input your card!”)input(“password”)for n=1 to 3if isPasswordRight=False then if n=2 then output(“The password is wrong,insert again please”)else output(“Youve input wrong password 3 times,take the card down”)End if烧伤病人的治疗通常是取烧伤病人的健康皮

38、肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.5.3 SATM问题实现问题实现(续续)续续 ifisPasswordRight=Truethenoutput(“choosethetypeofdeal”)Endififinquirethenoutput(“Yourbalanceis”,balance)iffetchthenoutput(“inputyournumberwanttofetch”)input(“outputMoney”)ifoutputMoney=balancethenoutput(“pleasetakeyourmoneyaway”)cu

39、rrentMoney=balance+inputMoneyelseoutput(“yourbalanceisnotenough”)EndifIfdepositthen存款不足Output(“insertyourmoney”)EndifEndif烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.6 货币转换器货币转换器2.6.1 问题陈述问题陈述2.6.2 问题实现问题实现 2.6.3 小结小结烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病

40、人2.6 货币转换器货币转换器n引言:引言:货币转换程序是另外一种事件驱动的程序。强调与图形用户界面(GUI)关联的代码。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.6.1 问题陈述问题陈述n这个应用程序将人民币任意转换为美元、加拿大元、欧元和日元。货币选择用单选按钮控制。选择外币之前或之后,用户在输入人民币金额,就可以点击“计算”、“清除”、“退出”按钮,来完成相应得工作。我们将在面向对象的测试中用到这个实例。n货币转换器是另一种事件驱动的程序。n它强调图形用户界面关联的代码。n这个例子很好的说明了UML描

41、述和一个面向对象的实现。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.6.2 问题实现问题实现 n我们在VisualBasic中可以用Radio按钮控制货币选择,这些按钮之间相互排斥,即一次只有一个按钮可见。当用户选择完要换算的外币之后,程序通过标签Label做出应答,例如如果选择的是美元按钮,则“等价于”就会变成“等于美元”,而且在等价金额输出位置的旁边会显示一面很小的美国国旗。在外币选择之前或者之后,用户输入人民币金额,就可以按下三个命令按钮做相应得处理了。若按下“计算”按钮,可以将人民币金额转换为所选外币

42、的等价金额;若按下“清除”按钮,那么程序的焦点落在人民币的输入框中,而且程序界面如图2-4一样,这时用户可以重新输入参数;若按下“退出”按钮,则结束该应用程序。n请同学们试着写出伪代码烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人2.6.3 小结小结n本章我们介绍了几个例子。针对单元测试中,我们介绍的分别是:三角形问题;NextDate;佣金问题。这三个例子合在一起,可以说明测试人员在单元级别上会遇到的大多数问题。对于集成测试和系统测试,我们讲了另外两个例子:一个简单自动柜员机(SATM);货币转换器,一个是事件驱

43、动的应用程序,另一个是典型的GUI应用程序。同学们学习本章后,对计算机问题实现应该有了认识,可以为我们以后的学习打下伏笔。烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人习题习题伪代码的规则有哪些?根据伪代码的规则,写出下表的伪代码。列名说明数据类型Sno学号字符串Sname姓名字符串Ssex性别字符串Sage年龄整数Sdept所在系字符串列名说明数据类型Cno课程号字符串Cname课程名字符串Ccredit学分整数Semester学期整数Period学时整数烧伤病人的治疗通常是取烧伤病人的健康皮肤进行自体移植,但对于大面积烧伤病人来讲,健康皮肤很有限,请同学们想一想如何来治疗该病人

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁