2014-01-30 2 views
0

Привет Я пытаюсь написать код, который удовлетворяет следующий вывод:Дать способ продажи пассы, и другой метод для продажи билетов в JAVA

Here are the booths at the start: 
   Ticket booth with 5 passes and 50 tickets 
   Ticket booth with 1 passes and 10 tickets 
Booth 1 has made $43.0 
Booth 2 has made $20.5 
Here are the booths at the end: 
   Ticket booth with 3 passes and 30 tickets 
   Ticket booth with 0 passes and 2 tickets 

я был в состоянии сделать это в течение первых трех линий но мне трудно писать свои методы для sellPass(), sellTickets() и moneyMade(). Вот следующий код тестер, который должен выводить мой код:

public class TicketBoothTestProgram 
{ 
    public static void main(String args[]) 
    { 
     TicketBooth booth1, booth2; 

     booth1 = new TicketBooth(5, 50); 
     booth2 = new TicketBooth(1, 10); 

     System.out.println("Here are the booths at the start:"); 
     System.out.println(" " + booth1); 
     System.out.println(" " + booth2); 

     // Simulate selling 2 passes, 5 tickets, 12 tickets and 3 tickets from booth1 
     booth1.sellPass(); 
     booth1.sellPass(); 
     booth1.sellTickets(5); 
     booth1.sellTickets(12); 
     booth1.sellTickets(3); 

     // Simulate selling 2 passes, 5 tickets, 12 tickets and 3 tickets from booth2 
     booth2.sellPass(); 
     booth2.sellPass(); 
     booth2.sellTickets(5); 
     booth2.sellTickets(12); 
     booth2.sellTickets(3); 

     // Make sure that it all worked 
     System.out.println("\nBooth 1 has made $" + booth1.moneyMade); 
     System.out.println("Booth 2 has made $" + booth2.moneyMade); 
     System.out.println("\nHere are the booths at the end:"); 
     System.out.println(" " + booth1); 
     System.out.println(" " + booth2); 
    } 
} 

и вот код, в котором я пытаюсь писать свои методы:

public class TicketBooth 
    { 
     float moneyMade; 
     int availablePasses; 
     int availableTickets; 

     static float TICKET_PRICE = 0.50f; 
     static float PASS_PRICE = 16.50f; 

     public TicketBooth() 
     { 
     moneyMade = 0.0f; 
     availablePasses = 0; 
     availableTickets = 0; 
     } 

     public TicketBooth(int p) 
     { 
     moneyMade = 0.0f; 
     availablePasses = p; 
     availableTickets = 0; 
     } 

     public TicketBooth(int p, int t) 
     { 
     moneyMade = 0.0f; 
     availablePasses = p; 
     availableTickets = t; 
     } 

     public String toString() 
     { 
      return("Ticket booth with " + this.availablePasses + " passes and " + this.availableTickets + 
     " tickets"); 
     } 

     public sellPass() 
     { 
      //INSERT CODE HERE FOR SELLING A PASS 
     } 

     public sellTickets() 
     { 
      //INSERT CODE HERE FOR SELLING A TICKET 
     } 


    } 

Любая помощь приветствуется спасибо!

+2

У вас возникли проблемы с конкретным? – neminem

+1

Я бы предположил, что вашим методам 'sellPass/Tickets' понадобится количество, с которого нужно начать. Вам нужно будет проверить, есть ли у вас необходимое количество под рукой, возможно, при возникновении какой-либо ошибки, если вы этого не сделаете. Уменьшите значение «количество на руке» на количество и добавьте «price x quantity» в деньги, сделанные ... – MadProgrammer

+0

Откуда вы знаете, сколько билетов и сколько пропусков? –

ответ

1

Ваш метод sellPass() довольно прост. Я добавил boolean типы возврата, которые будут перенастроены false, если у вас заканчиваются билеты или пропуски.

public boolean sellPass() { 
    //Check if you have a pass to sell 
    if (availablePasses > 0) { 
     //you have passes to sell 
     moneyMade += moneyPerPass; // add the money 
     availablePass--; //decrement pass counter 
     return true; 
    } 
    return false; // not enough passes to sell 
} 

Таким же образом ваш sellTickets(int noOfTickets), ваш метод должен позволить, сколько билетов вы хотите продать.

public boolean sellTickets(int noOfTickets) { 
    if(availableTickets >= noOfTickets) { 
     moneyMade += noOfTickets * pricePerTicket; 
     availableTickets -= noOfTickets; 
     return true; 
    } 
    return false; 
} 
+0

Я предполагаю, что ошибка времени компиляции существует специально, поэтому OP имеет возможность самостоятельно разобраться. ;) – Radiodef

+0

спасибо, что это сработало! @ RP- –

 Смежные вопросы

  • Нет связанных вопросов^_^