佣金问题时典型的商务计算问题,会引申出很多重要的测试问题
一个销售人员代销步枪,包括枪机(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