用java写火车订票管理系统
时间: 2023-09-28 18:12:25 浏览: 39
好的,下面是一个简单的火车订票管理系统的Java代码示例:
```
import java.util.*;
public class TrainTicketBookingSystem {
private Map<String, Train> trains;
public TrainTicketBookingSystem() {
trains = new HashMap<String, Train>();
}
public void addTrain(String trainNumber, int numOfSeats) {
if (trains.containsKey(trainNumber)) {
System.out.println("Train already exists.");
return;
}
Train train = new Train(trainNumber, numOfSeats);
trains.put(trainNumber, train);
System.out.println("Train added successfully.");
}
public void bookTicket(String trainNumber, int numOfSeats) {
if (!trains.containsKey(trainNumber)) {
System.out.println("Train does not exist.");
return;
}
Train train = trains.get(trainNumber);
if (train.getNumOfAvailableSeats() < numOfSeats) {
System.out.println("Not enough available seats.");
return;
}
train.bookSeats(numOfSeats);
System.out.println("Ticket booked successfully.");
}
public void cancelTicket(String trainNumber, int numOfSeats) {
if (!trains.containsKey(trainNumber)) {
System.out.println("Train does not exist.");
return;
}
Train train = trains.get(trainNumber);
if (train.getNumOfBookedSeats() < numOfSeats) {
System.out.println("Invalid number of seats to cancel.");
return;
}
train.cancelSeats(numOfSeats);
System.out.println("Ticket cancelled successfully.");
}
public void displayTrainDetails(String trainNumber) {
if (!trains.containsKey(trainNumber)) {
System.out.println("Train does not exist.");
return;
}
Train train = trains.get(trainNumber);
System.out.println("Train Number: " + train.getTrainNumber());
System.out.println("Number of Seats: " + train.getNumOfSeats());
System.out.println("Number of Booked Seats: " + train.getNumOfBookedSeats());
System.out.println("Number of Available Seats: " + train.getNumOfAvailableSeats());
}
public static void main(String[] args) {
TrainTicketBookingSystem bookingSystem = new TrainTicketBookingSystem();
bookingSystem.addTrain("1234", 100);
bookingSystem.bookTicket("1234", 50);
bookingSystem.displayTrainDetails("1234");
bookingSystem.cancelTicket("1234", 20);
bookingSystem.displayTrainDetails("1234");
}
}
class Train {
private String trainNumber;
private int numOfSeats;
private int numOfBookedSeats;
public Train(String trainNumber, int numOfSeats) {
this.trainNumber = trainNumber;
this.numOfSeats = numOfSeats;
this.numOfBookedSeats = 0;
}
public String getTrainNumber() {
return trainNumber;
}
public int getNumOfSeats() {
return numOfSeats;
}
public int getNumOfBookedSeats() {
return numOfBookedSeats;
}
public int getNumOfAvailableSeats() {
return numOfSeats - numOfBookedSeats;
}
public void bookSeats(int numOfSeats) {
numOfBookedSeats += numOfSeats;
}
public void cancelSeats(int numOfSeats) {
numOfBookedSeats -= numOfSeats;
}
}
```
这个代码示例中,TrainTicketBookingSystem 类实现了添加火车、订票、取消订票和显示火车信息等功能。Train 类表示一辆火车,包含火车编号、座位数、已订座位数等信息。在 main 函数中,我们演示了如何使用 TrainTicketBookingSystem 类的各个方法。当然,这只是一个简单的示例,实际的火车订票管理系统可能还需要更多的功能和复杂性。