佣金問題時典型的商務計算問題,會引申出很多重要的測試問題
一個銷售人員代銷步槍,包括槍機(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
