软件测试经典问题——佣金问题
2014-01-12 17:24 youxin 阅读(4831) 评论(0) 编辑 收藏 举报佣金问题时典型的商务计算问题,会引申出很多重要的测试问题
一个销售人员代销步枪,包括枪机(locks)、枪托(stocks)、枪管(barrels),枪机45美元、枪托30美元、枪管25美元;销售每走访一个城市就要向厂家发一封电报,汇报销售数量,月末会发一封电报,当发送“枪机销售数量为-1”时结算。佣金计算方法为:销售总额在1000元以下部分(含1000元)佣金为10%;1000至1800之间部分佣金为15%,超过1800元部分佣金为20%,
佣金报表汇出销售的枪机、枪托、枪管总数量、总销售额及佣金额.
在这个佣金问题示例中,我们一下子就能看明白佣金的计算方法。在现实生活中会遇到其他一些有多个变量的累加函数,例如在填写U.S.1040收入报税表时遇到的各种计算就是这样。(所以我们还是继续讨论步枪吧。)这个佣金程序可分为三个部分:输入数据处理部分,验证输入数据的有效性(同三角形问题和NextDate函数一样);销售额统计计算部分;佣金计算部分。此处我们省略了对输入数据有效性的验证,借用了典型的管理信息系统(MIS)的数据采集功能中所常用的条件循环语句While来模拟对电报的处理。
Program Commission (INPUT, OUTPUT) ‘ Dim locks, stocks, barrels As Integer Dim lockPrice, stockPrice, barrelPrice As Real Dim totalLocks, totalStocks, totalBarrels As Integer Dim lockSales, stockSales, barrelSales As Real Dim sales, commission: REAL ‘ lockPrice = 45.0 stockPrice = 30.0 barrelPrice = 25.0 totalLocks = 0 totalStocks = 0 totalBarrels = 0 ‘ Input (locks) While NOT(locks = -1) ‘Input device uses -1 to indicate end of data Input (stocks, barrels) totalLockstotalLocks = totalLocks + locks totalStockstotalStocks = totalStocks + stocks totalBarrelstotalBarrels = totalBarrels + barrels Input (locks) EndWhile ‘ Output ("Locks sold: ", totalLocks) Output ("Stocks sold: ", totalStocks) Output ("Barrels sold: ", totalBarrels) ‘ lockSales = lockPrice * totalLocks stockSales = stockPrice * totalStocks barrelSales = barrelPrice * totalBarrels sales = lockSales + stockSales + barrelSales Output ("Total sales: ", sales) ‘ If (sales > 1800.0) Then commission = 0.10 * 1000.0 commissioncommission = commission + 0.15 * 800.0 commissioncommission = commission + 0.20 * (sales-1800.0) Else If (sales > 1000.0) Then commission = 0.10 * 1000.0 commissioncommission = commission + 0.15* (sales-1000.0) Else commission = 0.10 * sales EndIf EndIf Output ("Commission is $", commission) ‘ End Commission
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2013-01-12 mfc更改背景色
2013-01-12 (转)VC单选按钮控件(Radio Button)用法
2013-01-12 VC中Edit控件和Spin控件的使用
2013-01-12 vc获取程序当前路径
2013-01-12 windows 注册表的编程
2013-01-12 windows 对 win.ini 文件访问