题目三: 车票管理系统 一车站每天有n个发车班次,每个班次都有一个班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载容量。如: 用java写
时间: 2024-03-10 12:47:22 浏览: 12
以下是一个简单的Java车票管理系统的示例代码,其中包括车次信息的存储、查询和售票功能:
```java
import java.util.ArrayList;
import java.util.Scanner;
public class TicketManagementSystem {
// 车次信息列表
private ArrayList<Ticket> tickets = new ArrayList<>();
// 添加车次信息
public void addTicket(Ticket ticket) {
tickets.add(ticket);
}
// 根据班次号查询车次信息
public Ticket findTicket(int number) {
for (Ticket ticket : tickets) {
if (ticket.getNumber() == number) {
return ticket;
}
}
return null; // 没有找到对应的车次信息
}
// 售票
public void sellTicket(int number, int count) {
Ticket ticket = findTicket(number);
if (ticket == null) {
System.out.println("没有该班次的车票信息!");
} else if (ticket.getSoldCount() + count > ticket.getCapacity()) {
System.out.println("该班次车票数量不足!");
} else {
ticket.setSoldCount(ticket.getSoldCount() + count);
System.out.println("售票成功!");
}
}
public static void main(String[] args) {
// 创建车票管理系统对象
TicketManagementSystem system = new TicketManagementSystem();
// 添加车次信息
Ticket ticket1 = new Ticket(1, "北京", "上海", "08:00", 500, 100);
Ticket ticket2 = new Ticket(2, "上海", "广州", "10:00", 600, 150);
Ticket ticket3 = new Ticket(3, "北京", "广州", "12:00", 800, 200);
system.addTicket(ticket1);
system.addTicket(ticket2);
system.addTicket(ticket3);
// 显示菜单
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("========车票管理系统========");
System.out.println("1. 查询车次信息");
System.out.println("2. 购买车票");
System.out.println("0. 退出系统");
System.out.print("请选择操作:");
choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.print("请输入班次号:");
int number = scanner.nextInt();
Ticket ticket = system.findTicket(number);
if (ticket == null) {
System.out.println("没有找到对应的车次信息!");
} else {
System.out.println(ticket);
}
break;
case 2:
System.out.print("请输入班次号:");
number = scanner.nextInt();
System.out.print("请输入购买数量:");
int count = scanner.nextInt();
system.sellTicket(number, count);
break;
case 0:
System.out.println("谢谢使用!");
break;
default:
System.out.println("无效的操作!");
break;
}
} while (choice != 0);
}
}
class Ticket {
private int number; // 班次号
private String start; // 起始站
private String end; // 终点站
private String time; // 发车时间
private int distance; // 行车距离(公里)
private int capacity; // 额定载容量
private int soldCount; // 已售车票数量
public Ticket(int number, String start, String end, String time, int distance, int capacity) {
this.number = number;
this.start = start;
this.end = end;
this.time = time;
this.distance = distance;
this.capacity = capacity;
this.soldCount = 0;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
public String getEnd() {
return end;
}
public void setEnd(String end) {
this.end = end;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public int getDistance() {
return distance;
}
public void setDistance(int distance) {
this.distance = distance;
}
public int getCapacity() {
return capacity;
}
public void setCapacity(int capacity) {
this.capacity = capacity;
}
public int getSoldCount() {
return soldCount;
}
public void setSoldCount(int soldCount) {
this.soldCount = soldCount;
}
@Override
public String toString() {
return "班次号:" + number + "\n" +
"起始站:" + start + "\n" +
"终点站:" + end + "\n" +
"发车时间:" + time + "\n" +
"行车距离:" + distance + "公里\n" +
"额定载容量:" + capacity + "人\n" +
"已售车票数量:" + soldCount + "张\n" +
"可用车票数量:" + (capacity - soldCount) + "张";
}
}
```
在上面的代码中,`TicketManagementSystem`类表示车票管理系统,其中包括车次信息列表的存储、查询和售票功能。`Ticket`类表示单个车次信息,包括班次号、起始站、终点站、发车时间、行车距离、额定载容量、已售车票数量等属性。在`main()`方法中,我们创建了一个`TicketManagementSystem`对象,并添加了三个车次信息。然后,通过显示菜单的方式,让用户选择查询车次信息或购买车票。在查询车次信息时,用户需要输入班次号,然后系统会根据班次号查询对应的车次信息并显示。在购买车票时,用户需要输入班次号和购买数量,如果该班次车票数量不足,则购买失败。