您好,我正在尝试编写满足以下输出的代码:
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
}
}
感谢任何帮助,谢谢!
最佳答案
您的 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;
}
关于java - 用JAVA写一个卖通票的方法,另一个卖票的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21469599/