java_简单的售票系统

通过对多线程的学习,模拟了一个简单的售票系统


class Ticket implements Runnable
{
 private int tick=TicketSealCenter.num;
 Object obj = new Object();
 public void run()
 {
  while(true)
  {
   synchronized(obj)
   {
    if(tick>0)
    {
     String name = Thread.currentThread().getName();
     int windows = Integer.parseInt(name.substring(7, name.length()));
     try{Thread.sleep(100);}catch(Exception e){}
     System.out.println("第"+(windows+1)+"窗口卖出了第"+tick--+"张票");
    }
   }
   
  }
 }
}
//售票窗口通过for循环控制窗口数量
class SealWindow
{
 public static void addWindow()
 {
  Ticket t = new Ticket();
  for(int x=1;x<=4;x++)
  {
   Thread t1 = new Thread(t);
   t1.start();
  }
 }
}

//售票中心控制票数
class TicketSealCenter
{
 public static int num=100;
}

public class ThreadDemo2
{
 public static void main(String[] args)
 {
  SealWindow.addWindow();
 }
}

 

以下是一个简单Java实现电影院订票系统的代码示例: ```java import java.util.Scanner; public class MovieTicketSystem { private static int[][] seats = new int[10][10]; // 电影院座位,0表示空位,1表示已售 public static void main(String[] args) { Scanner input = new Scanner(System.in); while (true) { System.out.println("欢迎使用电影院订票系统!"); System.out.println("请输入功能序号:"); System.out.println("1. 显示座位情况"); System.out.println("2. 选座购票"); System.out.println("3. 退出系统"); int choice = input.nextInt(); switch (choice) { case 1: displaySeats(); break; case 2: buyTicket(); break; case 3: System.out.println("欢迎下次使用!"); System.exit(0); default: System.out.println("输入错误,请重新输入!"); } } } // 显示座位情况 private static void displaySeats() { System.out.println("正在显示座位情况:"); System.out.println(" 1 2 3 4 5 6 7 8 9 10"); for (int i = 0; i < seats.length; i++) { System.out.print((i + 1) + " "); for (int j = 0; j < seats[i].length; j++) { if (seats[i][j] == 0) { System.out.print("○ "); } else { System.out.print("● "); } } System.out.println(); } } // 选座购票 private static void buyTicket() { Scanner input = new Scanner(System.in); System.out.println("正在进行选座购票:"); while (true) { System.out.println("请输入行号(1-10):"); int row = input.nextInt() - 1; System.out.println("请输入列号(1-10):"); int col = input.nextInt() - 1; if (row < 0 || row >= seats.length || col < 0 || col >= seats[0].length) { System.out.println("输入座位号错误,请重新输入!"); } else if (seats[row][col] == 1) { System.out.println("该座位已售出,请重新选择!"); } else { System.out.println("购票成功!"); seats[row][col] = 1; break; } } } } ``` 这个例子中,我们使用一个二维数组来表示电影院座位,其中0表示空位,1表示已售。程序提供两个功能,一个是显示座位情况,另一个是选座购票。在选座购票功能中,用户需要输入所选座位的行号和列号,程序会判断该座位是否已售出,如果没有售出则将其标记为已售,并输出购票成功的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值