2011-03-23 46 views
1

歐凱我的問題是,當你運行這個你沒有得到在每月CATERGORY沒有金額誰能告訴我我在做什麼wrong.Cause如果您在阿倫的名字和代碼鍵入1月銷量應該會500和佣金應該是1005.我只是無法弄清楚我做錯了什麼。問題涉及營業員

 Option Strict On 
    Option Explicit On 

     Module Module1 

Sub Main() 

    Dim salesPersonName As String 
    Dim monthlySales, SalesPersonCommission, salesmancode As Integer 
    Dim totalSales, totalCommission As Integer 
    Console.WriteLine("Please enter your name: ") 
    salesPersonName = Console.ReadLine() 
    Do While Not (salesPersonName.Equals("Eugene")) 
     Console.WriteLine("Please enter a sales code: ") 
     salesmancode = CInt(Console.ReadLine()) 
     Select Case salesmancode 
      Case 1 
       SalesPersonCommission = CInt(0.01 * monthlySales + 1000) 
      Case 2 
       SalesPersonCommission = CInt(0.03 * monthlySales) 
      Case 3 
       SalesPersonCommission = CInt(0.04 * monthlySales + 500) 
      Case Is < 3 
       SalesPersonCommission = CInt(0.02 * monthlySales + 200) 

     End Select 
     totalCommission = monthlySales + totalSales 
     Console.WriteLine("Please enter your name= " & salesPersonName) 
     Console.WriteLine("Monthly Sales= " & monthlySales) 
     Console.WriteLine("Sales Code= " & salesmancode) 
     Console.WriteLine("Sales Person Commission= " & SalesPersonCommission) 
     Console.WriteLine("Please enter your name:") 
     salesPersonName = Console.ReadLine() 
    Loop 
    Console.WriteLine("Total Commission Dollars= " & monthlySales + totalSales) 


End Sub 

前端模塊

回答

4

你不是在計算中使用它之前分配的量爲monthlySales

也許你的意思是使用那些:

Select Case salesmanCode 
    CASE 1 
    monthlySales = 500 
    .... 
End Select 

SalesPersonCommission = CInt(0.01 * monthlySales + 1000) 

取決於你想要做的事情,你可能想圍繞你的計算的一部分括號來表示清楚你想要的計算,以什麼樣的順序發生。下面的第一個計算給出與第二個不同的結果:

SalesPersonCommission = CInt(0.01 * (monthlySales + 1000)) 
SalesPersonCommission = CInt((0.01 * monthlySales) + 1000) 

第二個是你想要的。

+0

實際上,在VB做CINT(100.99)返回101,而不是100,輪,而不是截斷。至於初始化,VB自動初始化值類型,所以您不必在計算中使用它之前做到這一點。 – 2011-03-24 01:22:20

+0

@Jim:感謝您的CINT的信息() - 我會刪除編輯。雖然初始化是一個問題;如果在計算中使用它之前沒有給它一個值,那麼計算的結果就沒有意義。 :)什麼是0.01 * SomeInitializedValue + 1000? – 2011-03-24 01:31:55

2

它看起來像你忘了設置monthlySales

如果你將它設置爲500你得到你說你期待的結果。