剧院座位布尔数组管理及显示功能实现求助
没问题,我来帮你搞定这个剧院座位预订的功能!用布尔一维数组完全能满足你的需求,下面我给你详细的代码实现和解释:
核心实现思路
- 用布尔数组
seatArray存储座位状态:false代表空座,true代表已被预订 - 初始化时,布尔数组的默认值就是
false,刚好直接对应所有座位为空的初始状态,不用额外循环赋值 - 预订座位时,先校验座位号的合法性,再通过数组元素的布尔值判断是否已被占用,未占用则修改为
true - 显示功能通过遍历数组,把抽象的布尔值转换成用户易懂的符号(比如
O表示空座,X表示已预订)来展示
完整代码示例(Java)
public class TheaterSeating { // 存储座位状态的布尔数组 private boolean[] seatArray; // 构造方法:初始化剧院的总座位数 public TheaterSeating(int totalSeats) { // 创建数组,默认所有元素为false(空座) seatArray = new boolean[totalSeats]; } // 预订座位方法:seatNumber为用户输入的座位号(从1开始计数) public boolean bookSeat(int seatNumber) { // 先检查座位号是否在合法范围内 if (seatNumber < 1 || seatNumber > seatArray.length) { System.out.println("错误:这个座位号不存在哦!"); return false; } // 数组索引从0开始,所以要把座位号减1 int seatIndex = seatNumber - 1; if (!seatArray[seatIndex]) { // 座位为空(false) seatArray[seatIndex] = true; System.out.println("座位" + seatNumber + "预订成功!"); return true; } else { // 座位已被占用(true) System.out.println("抱歉,座位" + seatNumber + "已经被别人预订啦!"); return false; } } // 显示所有座位状态的方法 public void displaySeats() { System.out.println("\n当前剧院座位状态:"); for (int i = 0; i < seatArray.length; i++) { // 把布尔值转换成直观符号:O=空座,X=已预订 String seatStatus = seatArray[i] ? "X" : "O"; System.out.print("座" + (i + 1) + ":" + seatStatus + " "); // 每5个座位换行,排版更清晰 if ((i + 1) % 5 == 0) { System.out.println(); } } System.out.println(); } // 测试用主方法 public static void main(String[] args) { // 创建一个有15个座位的剧院 TheaterSeating myTheater = new TheaterSeating(15); // 显示初始空座状态 myTheater.displaySeats(); // 尝试预订几个座位 myTheater.bookSeat(3); myTheater.bookSeat(7); myTheater.bookSeat(3); // 重复预订同一个座位 myTheater.bookSeat(20); // 预订不存在的座位 // 再次显示更新后的座位状态 myTheater.displaySeats(); } }
关键代码解释
- 数组初始化:Java中创建布尔数组时,所有元素默认值就是
false,所以我们不需要手动循环设置每个座位为空,直接new boolean[totalSeats]就搞定了,非常省心。 - 预订逻辑:用户习惯从1开始数座位号,但数组索引是从0开始的,所以要做
seatNumber - 1的转换。先判断座位号是否合法,再检查状态,确保不会出现数组越界或者重复预订的问题。 - 显示优化:把布尔值转换成
O和X比直接打印true/false更直观,同时每5个座位换行,避免一行显示太长,用户查看起来更舒服。
扩展建议
- 可以添加取消预订的方法,把对应座位的布尔值改回
false即可 - 增加统计空座数量的功能:遍历数组统计
false的个数 - 如果需要支持多厅,可以把座位数组封装成厅类,扩展更灵活
内容的提问来源于stack exchange,提问作者Cem Koçak
相关产品推荐
相关产品推荐

