某电影院目前正在上映贺岁大片,共有100张票,电影院提供3个售票窗口售票,请编写一个程序实现电影院售票。java
时间: 2024-09-14 10:03:27 浏览: 50
这是一个简单的Java程序,可以模拟电影院售票的过程。我们将创建一个类`TicketOffice`来代表售票窗口,包含售票的方法。假设我们有三个类`Movie`, `Ticket`和`Person`分别表示电影、票和观众。
```java
import java.util.ArrayList;
import java.util.List;
// 电影类
class Movie {
private String name;
// ... 其他属性和构造方法
// 显示电影信息的方法
public void showInfo() {
// ...
}
}
// 票类
class Ticket {
private int id;
private Person holder;
// ... 其他属性和构造方法
// 提供给持有者的信息等方法
public void infoToHolder() {
// ...
}
}
// 观众类
class Person {
private String name;
// ... 其他属性和构造方法
// 购票方法
public void buyTicket(Ticket ticket) {
// ...
}
}
// 售票办公室类
class TicketOffice {
private List<Ticket> tickets = new ArrayList<>();
// 售票方法
public boolean sellTicket(Person person, Movie movie) {
if (tickets.size() < 100) {
// 创建并分配一张票给观众
Ticket ticket = new Ticket();
ticket.holder = person;
person.buyTicket(ticket); // 观众购买票
tickets.add(ticket);
return true; // 票成功售出
} else {
return false; // 票已售罄
}
}
// 其他售票操作...
}
public class Main {
public static void main(String[] args) {
Movie movie = new Movie(); // 初始化电影
TicketOffice office = new TicketOffice();
Person customer1 = new Person("顾客A");
Person customer2 = new Person("顾客B");
// 假设这里有足够的时间让两个客户购票
while (true) {
if (office.sellTicket(customer1, movie)) {
System.out.println(customer1.getName() + "成功购买了票!");
} else {
break; // 所有的票都卖完了
}
if (office.sellTicket(customer2, movie)) {
System.out.println(customer2.getName() + "也成功购买了票!");
} else {
break; // 所有的票都卖完了
}
}
}
}
```
阅读全文