2011-03-23 47 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你得到你说你期待的结果。