java电影院售票系统
时间: 2023-08-02 16:09:44 浏览: 188
java 电影院售票系统
Java电影院售票系统可以分为前台和后台两个部分。
前台主要是顾客购票的操作界面,包括:
1. 影片列表展示:根据当前时间和影片上映时间,展示影片列表;
2. 选座:顾客选择影片后,可以选择座位,座位状态需要实时显示;
3. 确认订单:顾客选好座位后,需要确认订单信息,包括影片名称、放映时间、座位号等;
4. 支付:完成订单后,需要支付购票费用。
后台主要是管理员管理影片、场次、座位等信息的界面,包括:
1. 影片管理:管理员可以添加、修改、删除影片信息;
2. 场次管理:管理员可以添加、修改、删除影片场次信息;
3. 座位管理:管理员可以添加、修改、删除座位信息;
4. 订单管理:管理员可以查看已完成订单信息。
下面是一个简单的Java电影院售票系统示例代码:
```java
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class MovieTicketSystem {
// 影片类
public static class Movie {
private String name; // 影片名称
private String description; // 影片描述
private Date releaseDate; // 上映时间
private int duration; // 时长(分钟)
public Movie(String name, String description, Date releaseDate, int duration) {
this.name = name;
this.description = description;
this.releaseDate = releaseDate;
this.duration = duration;
}
// getter、setter方法
}
// 场次类
public static class Showtime {
private Movie movie; // 影片
private Date startTime; // 开始时间
private List<Seat> seats; // 座位列表
private boolean[][] seatMap; // 座位状态矩阵
public Showtime(Movie movie, Date startTime) {
this.movie = movie;
this.startTime = startTime;
this.seats = new ArrayList<>();
this.seatMap = new boolean[10][10]; // 假设有10排10座
}
// getter、setter方法
}
// 座位类
public static class Seat {
private int row; // 排数
private int col; // 座位号
private boolean available; // 是否可用
public Seat(int row, int col, boolean available) {
this.row = row;
this.col = col;
this.available = available;
}
// getter、setter方法
}
// 顾客类
public static class Customer {
private String name; // 姓名
private List<Showtime> showtimes; // 场次列表
private List<Seat> seats; // 座位列表
public Customer(String name) {
this.name = name;
this.showtimes = new ArrayList<>();
this.seats = new ArrayList<>();
}
// getter、setter方法
}
// 电影院类
public static class Cinema {
private List<Movie> movies; // 影片列表
private List<Showtime> showtimes; // 场次列表
private List<Customer> customers; // 顾客列表
public Cinema() {
this.movies = new ArrayList<>();
this.showtimes = new ArrayList<>();
this.customers = new ArrayList<>();
}
// 添加影片
public void addMovie(Movie movie) {
this.movies.add(movie);
}
// 添加场次
public void addShowtime(Showtime showtime) {
this.showtimes.add(showtime);
}
// 添加顾客
public void addCustomer(Customer customer) {
this.customers.add(customer);
}
// 获取指定场次的座位状态矩阵
public boolean[][] getSeatMap(Showtime showtime) {
return showtime.seatMap;
}
// 选择座位
public void selectSeat(Customer customer, Showtime showtime, int row, int col) {
Seat seat = new Seat(row, col, false);
showtime.seats.add(seat);
showtime.seatMap[row][col] = true;
customer.showtimes.add(showtime);
customer.seats.add(seat);
}
// 获取指定顾客的订单信息
public String getOrderInfo(Customer customer) {
StringBuilder sb = new StringBuilder();
sb.append("顾客姓名:").append(customer.getName()).append("\n");
sb.append("订单信息:\n");
for (int i = 0; i < customer.showtimes.size(); i++) {
Showtime showtime = customer.showtimes.get(i);
sb.append("影片名称:").append(showtime.getMovie().getName())
.append(",放映时间:").append(showtime.getStartTime())
.append(",座位号:").append(customer.seats.get(i).getRow())
.append("排").append(customer.seats.get(i).getCol()).append("座\n");
}
return sb.toString();
}
}
public static void main(String[] args) {
// 创建电影院
Cinema cinema = new Cinema();
// 添加影片
Movie movie1 = new Movie("复仇者联盟", "漫威超级英雄电影", new Date(), 180);
cinema.addMovie(movie1);
Movie movie2 = new Movie("速度与激情7", "极速飞车动作电影", new Date(), 140);
cinema.addMovie(movie2);
// 添加场次
Showtime showtime1 = new Showtime(movie1, new Date());
cinema.addShowtime(showtime1);
Showtime showtime2 = new Showtime(movie2, new Date());
cinema.addShowtime(showtime2);
// 创建顾客
Customer customer1 = new Customer("张三");
Customer customer2 = new Customer("李四");
// 顾客购票
cinema.selectSeat(customer1, showtime1, 1, 1);
cinema.selectSeat(customer2, showtime2, 2, 3);
// 查看订单信息
System.out.println(cinema.getOrderInfo(customer1));
System.out.println(cinema.getOrderInfo(customer2));
}
}
```
在这个示例中,我们定义了影片、场次、座位、顾客和电影院等类,并在`main`方法中模拟了一个购票场景。通过这个示例,我们可以清楚地了解到Java电影院售票系统的整体框架和实现方式。
阅读全文