Java电影院选座管理系统

在现代电影院中,选座管理是一个重要的功能。本文将指导你如何实现一个简单的Java基于控制台的选座管理系统。我们将分为几个步骤来实现这个功能。

1. 整体流程

步骤 描述
1 创建座位类
2 创建用户类
3 创建主要的电影院管理类
4 实现选座逻辑
5 编写用户交互界面

2. 每一步的实现代码

步骤 1:创建座位类

class Seat {
    private int row;       // 座位的行
    private int column;    // 座位的列
    private boolean isBooked; // 座位是否已被预订

    public Seat(int row, int column) {
        this.row = row;
        this.column = column;
        this.isBooked = false; // 初始化时未预订
    }

    // 获取座位状态
    public boolean isBooked() {
        return isBooked;
    }

    // 预订座位
    public void book() {
        this.isBooked = true;
    }

    @Override
    public String toString() {
        return (isBooked ? "X" : "O"); // O表示未预订,X表示已预订
    }
}

步骤 2:创建用户类

class User {
    private String name; // 用户名

    public User(String name) {
        this.name = name; // 初始化用户名
    }

    public String getName() {
        return name;
    }
}

步骤 3:创建电影院管理类

class Cinema {
    private Seat[][] seats; // 座位矩阵
    
    public Cinema(int rows, int columns) {
        seats = new Seat[rows][columns]; // 初始化座位数组
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < columns; j++) {
                seats[i][j] = new Seat(i, j); // 创建每个座位
            }
        }
    }

    // 打印座位图
    public void printSeats() {
        for (Seat[] row : seats) {
            for (Seat seat : row) {
                System.out.print(seat + " "); // 打印每个座位
            }
            System.out.println();
        }
    }
}

步骤 4:实现选座逻辑

public class TicketBooking {
    private Cinema cinema;

    public TicketBooking(int rows, int columns) {
        cinema = new Cinema(rows, columns);
    }

    public boolean bookSeat(int row, int column) {
        if (!cinema.seats[row][column].isBooked()) { // 检查座位是否已预订
            cinema.seats[row][column].book(); // 如果没有预订,则预订该座位
            return true;
        }
        return false; // 返回已预订状态
    }

    public void showSeats() {
        cinema.printSeats(); // 显示座位状态
    }
}

步骤 5:编写用户交互界面

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        TicketBooking booking = new TicketBooking(5, 5); // 创建5x5的座位布局
        Scanner scanner = new Scanner(System.in);
        while (true) {
            booking.showSeats(); // 显示座位图
            System.out.println("请输入要预订的座位(行 列),输入-1结束:");
            int row = scanner.nextInt();
            if (row == -1) break; // 输入-1结束
            int column = scanner.nextInt();
            if (booking.bookSeat(row, column)) {
                System.out.println("预订成功!");
            } else {
                System.out.println("座位已被预订,选择其他座位!");
            }
        }
        scanner.close(); // 关闭输入流
    }
}

类图

classDiagram
    class Seat {
        -row: int
        -column: int
        -isBooked: boolean
        +book()
        +isBooked(): boolean
        +toString(): String
    }

    class User {
        -name: String
        +getName(): String
    }

    class Cinema {
        -seats: Seat[][]
        +printSeats(): void
    }

    class TicketBooking {
        -cinema: Cinema
        +bookSeat(row: int, column: int): boolean
        +showSeats(): void
    }

旅行图

journey
    title 用户选座过程
    section 用户查看座位
      用户查看当前座位情况: 5: 用户确认可预订座位
    section 用户选择座位
      用户输入行列进行预订: 5: 预订座位
      用户选择已预订座位, 选择其他: 5: 用户重新选择
    section 结束选座
      用户输入-1结束: 5: 用户结束程序

总结

本文为你展示了如何实现一个基本的Java电影院选座管理系统,你可以根据上面的代码和说明逐步搭建这个系统。通过学习如何创建类、管理状态以及实现简单的用户交互,你对Java编程的理解会更深入。祝你编程愉快!