Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JAVA编写一个出售通行证的方法和另一个出售门票的方法_Java_Object_Methods_Constructor_Drjava - Fatal编程技术网

用JAVA编写一个出售通行证的方法和另一个出售门票的方法

用JAVA编写一个出售通行证的方法和另一个出售门票的方法,java,object,methods,constructor,drjava,Java,Object,Methods,Constructor,Drjava,您好,我正在尝试编写满足以下输出的代码: 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 pass

您好,我正在尝试编写满足以下输出的代码:

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()和MoneyMake()的方法时遇到了问题。以下是用于输出我的代码的测试仪代码:

 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
        }


    }
感谢您的帮助,谢谢

您的
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;
}

具体来说,您遇到了什么问题?我想您的
sellPass/Tickets
方法将需要一个数量。您需要检查手头是否有所需的数量,如果没有,可能会引起某种错误。按数量减少“手头数字”值,并将
价格x数量
添加到挣钱中…你怎么知道一张票多少钱和一张通行证多少钱?@Rp-我声明,一张票的价格是0.50美元,一张通行证是16美元。50@MadProgrammer它以5张通行证和50张票开始(对于booth1),对于booth2,它以1张通行证和10张票开始。在booth1中,它以3个通行证和30张票结束,而对于booth to,它以0个通行证和2张票结束。我假设编译时错误是故意存在的,因此OP需要自己解决一些问题。;)