佣金问题时典型的商务计算问题,会引申出很多重要的测试问题

一个销售人员代销步枪,包括枪机(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