2011-03-23 5 views
1

Okey 제 질문은 당신이 이것을 실행할 때 월별 catergory에서 달러 금액을받지 못하는 것입니다. 누군가 내가 잘못하고있는 것을 말해 줄 수 있습니까? 이름과 코드로 알렌을 입력하면 월 매출액이 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 

당신이 monthlySales을 설정 잊고있는 것 같습니다

답변

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는 값 유형을 자동으로 초기화하므로 계산에 사용하기 전에 값 유형을 초기화 할 필요가 없습니다. –

+0

@ 짐 : CInt()에 대한 정보를 보내 주셔서 감사합니다. - 편집을 제거하겠습니다. 그러나 초기화가 문제입니다. 계산에 사용하기 전에 값을주지 않으면 계산 결과가 의미가 없습니다. :) 0.01 * SomeInitializedValue + 1000은 무엇입니까? –

2

엔드 모듈.

500으로 설정하면 기대하는 결과를 얻을 수 있습니다.