资源简介

模拟三个人排队买票,张某、李某、赵某买电影票、售票员只有3张5元的钱, 电影票5元钱一张。张某拿20元一张的新人民币排在李的钱买票, 李某排在赵的前面拿一张10元的人民币买票,赵某拿一张5元的人民币买票 (课堂作业)

资源截图

代码片段和文件信息

package 售票问题;

public class TicketHouse implements Runnable{
private int fiveAccount = 3;//售票员只有3张5元
private int tenAccount = 0;//可能收到10元
private int twentyAccount = 0;//可能收到20元
public void run()
{
if(Thread.currentThread().getName().equals(“张某“))
{
saleTicket(20);//张某拿着一张20元
}
else
{
if(Thread.currentThread().getName().equals(“李某“))
{
saleTicket(10);//李某拿着一张10元
}
else
{
if(Thread.currentThread().getName().equals(“赵某“))
{
saleTicket(5);//赵某拿着一张5元
}
}
}
}
public synchronized void saleTicket(int money){
String person = Thread.currentThread().getName();
if(money == 5){//不用找零,不用等待
fiveAccount++;
System.out.println(“卖给“+person+“电影票,无需找零“+“,现有5元“+fiveAccount+“张\n“);
}
else{
if(money == 10){//需找零,可能等待
while(fiveAccount<1){//无法找零时,需等待
try {
System.out.println(“10元,零钱不够,“+person+“需等待“+“现有5元“+fiveAccount+“张\n“);
wait();
System.out.println(person+“继续买票\n“);
}catch(InterruptedException e) {}
}
tenAccount++;
fiveAccount = fiveAccount-1;
System.out.println(“卖给“+person+“电影票,找零5元“+“,现有5元“+fiveAccount+“张\n“);
}
else{
if(money == 20) {//需找零,可能等待
while(fiveAccount<3){//无法找零时,需等待
try {System.out.println(“20元,零钱不够,“+person+“需等待,“+“现有5元“+fiveAccount+“张\n“);
wait();
System.out.println(person+“继续买票\n“);
}catch(InterruptedException e) {}
}
twentyAccount++;
fiveAccount = fiveAccount-3;
System.out.println(“卖给“+person+“电影票,找零15元,“+“现有5元“+fiveAccount+“张\n“);
}
}

}
notifyAll();
}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-12 20:11  售票问题\
     目录           0  2018-04-12 20:11  售票问题\.settings\
     文件         598  2018-04-12 20:11  售票问题\.settings\org.eclipse.jdt.core.prefs
     目录           0  2018-05-01 17:33  售票问题\bin\
     目录           0  2018-05-01 17:33  售票问题\bin\售票问题\
     文件        2233  2018-05-01 17:33  售票问题\bin\售票问题\TicketHouse.class
     文件         928  2018-05-01 17:33  售票问题\bin\售票问题\Ticketing.class
     目录           0  2018-04-13 11:32  售票问题\src\
     目录           0  2018-04-13 11:33  售票问题\src\售票问题\
     文件        1827  2018-04-13 14:36  售票问题\src\售票问题\TicketHouse.java
     文件         714  2018-04-13 16:13  售票问题\src\售票问题\Ticketing.java
     文件         301  2018-04-12 20:11  售票问题\.classpath
     文件         388  2018-04-12 20:11  售票问题\.project

评论

共有 条评论