窗口售票系统1.0版本

本窗口售票系统实现了三个售票窗口的随机售票,实现随机到某一个窗口买票,总票余量都会减少,即三个窗口共享同一个票余量。若票余量小于一次性购票量,则提示报错;若车票售罄,则代码结束运行。

代码实现:

java 复制代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.Random;

public class Main {
    //首先设置总票量
    public static int totalTickets = 100;
    public static void main(String[] args) {
        List<TicketOffice> list = new ArrayList<>();
        TicketOffice t1 = new TicketOffice("SC01", "1号负责人", "1号位");
        TicketOffice t2 = new TicketOffice("SC02", "2号负责人", "2号位");
        TicketOffice t3 = new TicketOffice("SC03", "3号负责人", "3号位");

        list.add(t1);
        list.add(t2);
        list.add(t3);

        Scanner sc = new Scanner(System.in);

        while (totalTickets > 0) {
            System.out.println("请输入你要购票的数量:");
            int num = sc.nextInt();

            // 检查输入的车票数量是否有效
            if (num <= 0) {
                System.out.println("请输入有效的车票数量!");
                continue;
            }

            // 随机选择一个售票窗口
            Random random = new Random();
            int randomIndex = random.nextInt(list.size());
            TicketOffice selectedOffice = list.get(randomIndex);

            try {
                selectedOffice.saleTicket(num);
                //totalTickets -= num; // 更新剩余车票总数
                System.out.println("成功从 "+selectedOffice.getOfficeId()+" 窗口售出 "+num+" 张车票。剩余车票:"+totalTickets);
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }

        System.out.println("所有车票已售罄!");
        sc.close();
    }
}



class TicketOffice {
    private String officeId;
    private String administor;
    private String address;

    public TicketOffice() {}

    public TicketOffice(String officeId, String administor, String address) {
        this.officeId = officeId;
        this.administor = administor;
        this.address = address;
    }

    public void saleTicket(int ticketNum) throws Exception {
        if (Main.totalTickets >= ticketNum) {
            Main.totalTickets -= ticketNum;
            System.out.println("售出 " + ticketNum + " 张车票。");
        } else {
            throw new Exception("票余量不足!");
        }
    }

    public String getOfficeId() {
        return officeId;
    }
}

部分运行结果:

相关推荐
wjs20249 小时前
JavaScript 条件语句
开发语言
lulu12165440789 小时前
Claude Code Harness架构技术深度解析:生产级AI Agent工程化实践
java·人工智能·python·ai编程
阿里加多9 小时前
第 1 章:Go 并发编程概述
java·开发语言·数据库·spring·golang
一 乐9 小时前
物流信息管理|基于springboot + vue物流信息管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·物流信息管理系统
2301_7926748610 小时前
java学习day29(juc)
java·开发语言·学习
周末也要写八哥10 小时前
MATLAB R2025a超详细下载与安装教程(附安装包)
开发语言·matlab
希望永不加班10 小时前
SpringBoot 自动配置类加载顺序与优先级
java·spring boot·后端·spring·mybatis
纸鸢|11 小时前
从“一锤子买卖“到“持续价值共生“:物联网软件产品如何做到“叫好又叫座“
java·物联网·struts
blog_wanghao11 小时前
基于Qt的串口调试助手
开发语言·qt
云霄IT12 小时前
安卓开发之java转dex再转smali
android·java·python