2013-06-27 5 views
0

Мне нужно сравнить общий годовой объем продаж не менее трех человек. Мне нужно мое приложение, чтобы рассчитать дополнительную сумму, которую каждый должен достичь, чтобы соответствовать или превышать самого высокого уровня. Я выяснил большую часть этого и знаю, как это сделать, если в сценарии было всего два человека, но третье в уравнение бросает меня за цикл! Любая помощь приветствуется и благодарит заранее! Вот что я до сих пор, но, очевидно, в конце, где расчеты не будут правильными.Я застрял на домашнем задании Расчет комиссии

package Commission3; 
import java.util.Scanner; 
public class MainClass { 

    public static void main(String[] args) { 
     // Create a new object AnnualCompensation 
     Commission3 salesPerson[] = new Commission3[2]; 
     // creat two object 
     salesPerson[0] = new Commission3(); 
     salesPerson[1] = new Commission3(); 
     salesPerson[2] = new Commission3(); 
     //new scanner input 
     Scanner keyboard = new Scanner(System.in); 

     //get salesperson1 name 
     System.out.println("What is your first salesperson's name?"); 
     salesPerson[0].name = keyboard.nextLine(); 

     //get salesperson1 sales total 
     System.out.println("Enter annual sales of first salesperson: "); 
     double val = keyboard.nextDouble(); 
     salesPerson[0].setAnnualSales(val); 

     //get salesperson2 name 
     System.out.println("What is your second salesperson's name?"); 
     salesPerson[1].name = keyboard.next(); 


     //get salesperson2 sales total 
     System.out.println("Enter annual sales of second salesperson: "); 
     val = keyboard.nextDouble(); 
     salesPerson[1].setAnnualSales(val); 

     //get salesperson3 name 
     System.out.println("What is your third salesperson's name?"); 
     salesPerson[2].name = keyboard.next(); 


     //get salesperson3 sales total 
     System.out.println("Enter annual sales of third salesperson: "); 
     val = keyboard.nextDouble(); 
     salesPerson[2].setAnnualSales(val); 


     double total1, total2, total3; 
     total1 = salesPerson[0].getTotalSales(); 
     System.out.println("Total sales of " + salesPerson[0].name +" is: $" + total1); 
     total2 = salesPerson[1].getTotalSales(); 
     System.out.println("Total sales of " + salesPerson[1].name +" is: $" + total2); 
     total3 = salesPerson[2].getTotalSales(); 
     System.out.println("Total sales of " + salesPerson[2].name +" is: $" + total3); 
     if (total1 > total2) { 
      System.out.print("Salesperson " + salesPerson[2].name + "'s additional amount 
     of sales that he must " + " achieve to match or exceed the higher of the 
     salesperson " + salesPerson[0].name); 
      System.out.println(" $" + (total1 - total2)); 
     } else if (total2 > total1) { 
      System.out.print("Salesperson " + salesPerson[0].name + "'s additional amount 
     of sales that he must " + " achieve to match or exceed the higher of the 
     salesperson " + salesPerson[1].name); 

      System.out.println(" $" + (total2 - total1)); 
     } else { 
      System.out.println("Both have same compensation $" + total1); 
     } 
    } 
} 
+1

* Получение третьего в уравнение бросает меня за цикл * В чем проблема с использованием цикла 'for'? –

+0

Действительно я не знаю ... Я попытался использовать- if (всего1> всего2, всего3) { System.out.print ("Продавец" + salesPerson [2] .name + "Дополнительная сумма продаж, что он должен «+» достичь соответствия или превышения выше продавцом «+ salesPerson [0] .name); System.out.println ("$" + (total1 - total2)); , но очевидно, что это не работает. – user2387429

+0

какая ошибка вы получаете? массив вне границ? потому что ваш массив продаж может содержать только двух человек, поскольку код существует сейчас – sunrize920

ответ

5

Когда вы берете входной сигнал от пользователя, следить за высокие продажи до сих пор, и имя продавца, с наибольшим количеством продаж.

Затем вместо проверки total1 и total2 вы можете пропустить все три и сравнить их с max. Если текущая сумма меньше максимальной, то вычислите разницу. В противном случае текущая сумма равна максимальной, и вам не нужно делать расчет.

Я оставлю фактический код для вас, чтобы выяснить.

+2

+1: * Я оставлю фактический код для вас, чтобы выяснить. * Это то, что нам нужно на этом сайте для такого рода вопросов. –

+0

Просто, чтобы быть ясным ... Я не прошу кого-либо сделать домашнее задание ... Я упомянул этот сайт для многих из моих классов, в основном читающих дискуссию. Я честно застрял и никогда не работал с java раньше. Я выясню фактический код Travis и Macie за вашу помощь. Луиджи и Лев услышали ваш вход, и я отправлю его туда, где я думаю, подходящий! – user2387429

+0

@ user2387429 Я никогда не говорил, что вы хотите, чтобы другие люди делали домашнее задание для вас. Мой комментарий был для читателей этого ответа, потому что здесь много людей, которые предпочитают давать ответ в коде вместо того, чтобы руководить OP, чтобы учиться сам (как это делает этот ответ). Кроме того, я рассмотрел ваш вопрос, потому что я думаю, что он хорошо написан (слишком плохо, что вы не можете видеть upvotes и downvotes на вопрос еще). –