




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实例介绍 软件外包教研室 xiangr 2 第2章实例介绍 2 1三角形问题2 2NextDate问题2 3佣金问题2 4简单ATM系统2 5货币转换器 xiangr 3 2 1三角形问题 三角形问题是在软件测试文献中使用最广的一个例子 这个例子经久不衰的原因之一是 它包含了清晰而又复杂的逻辑 它还是削弱客户 开发人员和测试人员沟通的不完整定义的典型例子 三角形问题之所以复杂 是因为输入与正确输出之间的关系复杂 xiangr 4 2 1 1三角形问题陈述 简单版本 三角形问题接受三个整数a b和c作为输入 用作三角形的边 程序的输出是由这三条边确定的三角形类型 等边三角形 等腰三角形 不等边三角形或非三角形 有时这个问题被扩展为将直角三角形作为第五类 在有些练习中会使用这种扩展 改进版本 三角形问题接受三个整数a b和c作为输入 用作三角形的边 整数a b和c必须满足以下条件 c1 1 a 200c4 a b cc2 1 b 200c5 b a cc3 1 c 200c6 c a b xiangr 5 续 程序的输出是由这三条边确定的三角形类型 等边三角形 等腰三角形 不等边三角形或非三角形 如果输入值没有满足这些条件中的任何一个 则程序会通过输出消息来进行通知 例如 b的取值不在允许范围内 若c1 c2 c3满足 则给出以下四种相互排斥输出的一个 如果三条边相等 则程序的输出是等边三角形 如果两条边相等 则程序的输出是等腰三角形 如果没有两条边相等 则程序的输出是不等边三角形 如果c4 c5和c6中有一个条件不满足 则程序的输出是非三角形 xiangr 6 2 1 2三角形问题实现 以下是三角形问题的数据流图描述 可以把这个程序实现为一个主程序和三个简单的过程 在后续章节里我们还要用到这个例子 现在将它的实现用伪代码表示 xiangr 7 三角形程序实现的数据流图 xiangr 8 三角形问题实现的伪代码 Programtriangle2 versionofsimpleDima b cAsIntegerDimIsATriangleAsBoolean Step1 GetInputOutput Enter3integerswhicharesidesofatriangle Input a b c Output SideAis a Output SideBis b Output SideCis c Step2 IsATriangle If a b c AND b a c AND c a b ThenIsATriangle TrueElseIsATriangle FalseEndIf step3 DetermineTriangleTypeIfIsATrangleThenif a b AND b c ThenOutput Equilateral ElseIf ab AND ac AND bc ThenOutput Scalence ElseOutput Isosecles EndIfEndIfElseOutput NOTaTriangle EndIfEndtriangle2 xiangr 9 三角形问题实现的伪代码 Programtriangle3 improvedversionDima b cAsIntegerDimIsATriangleAsBoolean Step1 GetInputDoOutput Enter3integerswhicharesidesofatriangle Input a b c c1 1 200 c2 1 200 c3 1 200 IfNOT c1 ThenOutput Valueofaisnotintherangeofpermittedvalues EndIf IfNOT c2 ThenOutput Valueofbisnotintherangeofpermittedvalues EndIfIfNOT c3 ThenOutput Valueofcisnotintherangeofpermittedvalues EndIfUntilc1ANDc2ANDc3Output SideAis a Output SideBis b Output SideCis c Step2 Step3Endtriangle3 xiangr 10 2 2NextDate函数 输入变量之间的逻辑比较复杂有两种复杂性来源 输入域和闰年规则80 活动出现在20 的空间 xiangr 11 2 2 1NextDate问题陈述 NextDate是一个有三个变量 月份 日期和年 的函数 函数返回输入日期后面的那个日期 变量月份 日期和年都是整数值 并满足以下条件 c1 1 月份 12c2 1 日期 31c3 1812 年 2012我们的处理要包括对月份 日期和年的无效输入值的响应处理 还要对无效逻辑处理 例如任意年的4月31日 xiangr 12 2 2 2NextDate的伪代码实现 ProgramNextDate1 SimpleversionDimtomorrowDay tomorrowMonth tomorrowYearAsIntegerDimday month yearAsIntegerOutput Entertoday sdateintheformMMDDYYYY Input month day year CasemonthOfCase1 monthIs1 3 5 7 8 or10 31daymonths excpet12 Ifday 31thentomorrowDay day 1elsetomorrowDay 1tomorrowMonth month 1EndIfCase2 monthIs4 6 9or11 30daymonthIfday 30thentomorrowDay day 1elsetomorrowDay 1tomorrowMonth month 1EndIf xiangr 13 续NextDate ssimpleversion Case3 monthIs12 Ifday 31thentomorrowDay day 1elsetomorrowDay 1tomorrowMonth 1Ifyear 2012thenOutput 2012isover elsetomorrowYear year 1EndIfEndIfCase4 monthIs2 Ifday 28thentomorrowDay day 1elseifday 28Thenif yearisaleapyear thentomorrowDay 29 elsetomorrowDay 1tomorrowMonth 3EndIfelseifday 29thentomorrowDay 1tomorrowMonth 3elseOutput CannothaveFeb day EndifEndifEndIfEndCaseOutput Tomorrowdateis tomorrowMonth tomorrowDay tomorrowYear EndNextDate1 xiangr 14 2 3佣金问题 这是一个典型的商务计算例子 包含了计算和决策 因此引出有意思的测试问题 xiangr 15 2 3 1佣金问题陈述 一酒水销售公司指派销售员销售各种酒水 白酒卖168元 瓶 红酒卖120元 瓶 啤酒卖5元 瓶 白酒每月的供应量为5000瓶 红酒为3000瓶 啤酒为30000瓶 各个销售员每月至少要售出白酒50瓶 红酒30瓶 啤酒300瓶 月末 每个销售员上报他所在区域的销售业绩 这样酒水销售公司就知道了当月的销售情况 并根据销售额计算佣金提成如下 2万以下 含 4 2万 不含 4 5万 含 1 4 5万以上 不含 0 5 这样 佣金程序生成月份销售报告 汇总售出的白酒 红酒和啤酒总数 销售公司的总销售额和各个销售员的佣金 xiangr 16 2 3 2佣金问题分析 这个问题分为三个不同的部分 输入数据部分 用来处理输入数据的有效性 与前面讲的2个问题一样 在这里 我们略过不再重复这个内容 销售额计算部分 佣金 提成 计算部分 补充内容 什么叫哨兵控制 xiangr 17 2 3 3佣金问题的伪代码实现 ProgramCommisson Input Output Dimtipple wine beerAsIntegerDimtipplePrice winePrice beerPriceAsRealDimtotalTipple totalWine totalBeerAsIntegerDimtippleSales wineSales beerSalesAsRealDimsales commissionAsRealtipplePrice 168 00winePrice 120 00beerPrice 5 00totalTipple 0totalWine 0totalBeer 0 xiangr 18 续 Input tipple WhileNOT tipple 1 指出边界Input wine beer totalTipple totalTipple tippletotalWine totalWine winetotalBeer totalBeer beerInput tipple EndWhileOutput tipplesold totalTipple Output winesold totalwinee Output beersold totalbeer tippleSales tipplePrice totalTipplewineSales winePrice totalWnebeerSales beerPrice totalBeer xiangr 19 续 sales tippleSales wineSales beerSalesOutput TotalSales sales If sales 45000 0 thencommission 0 04 20000 0commission commission 0 01 25000 0commission commission 0 005 sales 45000 0 elseIf sales 20000 thencommission 0 04 commissioncommission commission 0 01 sales 20000 elsecommission 0 04 salesEndIfEndIfOutput Commissionis commission 元 EndCommission xiangr 20 2 4SATM系统 为了方便同学们了解集成测试和系统测试 我们介绍一个简单的自动柜员机系统 包含各种功能和交互 是一个典型的客户 服务系统的客户端 xiangr 21 2 4 1SATM的问题描述 SATM客户可以选择三种交易中的任意一种 存款 取款和查询
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中考历史总复习世界历史全册知识提纲(下)
- 城市交通规划合同管理知识产权咨询重点基础知识点
- 车辆质押合同和借款协议
- 转让京东店铺合同协议
- 道路绿化树木合同协议
- 涂改离婚协议书
- 进口食品代理合同协议
- 车位物业服务合同协议
- 民生保险协议书
- 品牌市场推广战略合作合同书及保密条款
- 2025年保密观知识竞赛题库完整答案带答案详解
- 云南建筑文化课件
- 2025森林消防考试试题及答案
- 2025年下半年山东淄博师范高等专科学校高层次人才招聘16人(第二批)易考易错模拟试题(共500题)试卷后附参考答案
- 购羊协议书范本
- 2025年安徽蚌埠市东方投资集团有限公司招聘笔试参考题库附带答案详解
- 武汉四调高中数学试卷及答案
- 液压与气压传动(第5版)课件:气动控制阀及基本回路
- 2025年福建省电子信息集团有限责任公司招聘笔试参考题库附带答案详解
- 2025年国家保安员试考试题库(附答案)
- 2025年消费电子行业分析报告
评论
0/150
提交评论