写一个机票预订系统(包括数据库代码)
时间: 2023-12-06 15:04:27 浏览: 43
好的,下面是一个简单的Java机票预订系统代码示例,包括数据库代码。
首先,我们需要创建一个名为Flight的Java类,用于表示航班信息。
```java
public class Flight {
private String flightNumber;
private String airline;
private String departureAirport;
private String arrivalAirport;
private Date departureTime;
private Date arrivalTime;
private int availableSeats;
private double price;
// 构造函数
public Flight(String flightNumber, String airline, String departureAirport, String arrivalAirport, Date departureTime,
Date arrivalTime, int availableSeats, double price) {
this.flightNumber = flightNumber;
this.airline = airline;
this.departureAirport = departureAirport;
this.arrivalAirport = arrivalAirport;
this.departureTime = departureTime;
this.arrivalTime = arrivalTime;
this.availableSeats = availableSeats;
this.price = price;
}
// getter和setter方法
// ...
}
```
然后,我们需要创建一个名为Database的Java类,用于表示数据库,并实现相关的方法。
```java
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Database {
private static Map<String, Flight> flights = new HashMap<String, Flight>();
// 添加航班信息到数据库
public static void addFlight(String flightNumber, String airline, String departureAirport, String arrivalAirport,
Date departureTime, Date arrivalTime, int availableSeats, double price) {
Flight flight = new Flight(flightNumber, airline, departureAirport, arrivalAirport, departureTime, arrivalTime,
availableSeats, price);
flights.put(flightNumber, flight);
}
// 从数据库中查询航班信息
public static Flight getFlight(String flightNumber) {
return flights.get(flightNumber);
}
// 获取所有航班信息
public static List<Flight> getAllFlights() {
return new ArrayList<Flight>(flights.values());
}
// 预订航班
public static void bookFlight(String flightNumber) {
Flight flight = flights.get(flightNumber);
int availableSeats = flight.getAvailableSeats();
if (availableSeats > 0) {
availableSeats--;
flight.setAvailableSeats(availableSeats);
flights.put(flightNumber, flight);
System.out.println("航班" + flightNumber + "预订成功!");
} else {
System.out.println("航班" + flightNumber + "没有可用座位!");
}
}
}
```
最后,我们可以创建一个名为Main的Java类,用于测试我们的机票预订系统。
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 添加航班信息到数据库
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Database.addFlight("CA1234", "Air China", "Beijing", "Shanghai", dateFormat.parse("2021-07-01 08:00:00"),
dateFormat.parse("2021-07-01 10:00:00"), 100, 500);
Database.addFlight("MU5678", "China Eastern Airlines", "Shanghai", "Beijing",
dateFormat.parse("2021-07-01 12:00:00"), dateFormat.parse("2021-07-01 14:00:00"), 80, 600);
Database.addFlight("CZ9012", "China Southern Airlines", "Guangzhou", "Shanghai",
dateFormat.parse("2021-07-01 09:00:00"), dateFormat.parse("2021-07-01 11:00:00"), 120, 400);
} catch (ParseException e) {
e.printStackTrace();
}
// 查询所有航班信息
List<Flight> flights = Database.getAllFlights();
for (Flight flight : flights) {
System.out.println(flight.getFlightNumber() + " " + flight.getAirline() + " " + flight.getDepartureAirport()
+ "-" + flight.getArrivalAirport() + " " + dateFormat.format(flight.getDepartureTime()) + "-"
+ dateFormat.format(flight.getArrivalTime()) + " " + flight.getAvailableSeats() + " "
+ flight.getPrice());
}
// 预订航班
Database.bookFlight("CA1234");
Database.bookFlight("CA1234");
Database.bookFlight("CA1234");
}
}
```
这是一个简单的机票预订系统示例代码,可以根据具体需求进行更改和扩展。