用python写一个航班预订系统包括新建订单、打开订单、更新订单、删除订单功能。 其中新建订单要求如下 (1)航班日期 输入框存在默认的日期格式:__/__/__ 表示mm/dd/yy,必须填系统当前时间以后的时间,如果不符合,系统弹出提示框“此日期后的航班日期有效+系统时间”。 (2)起点和终点不能为同一城市。。 (3)选中一个航班后,会自动填入,航班号、起飞时间、到达时间、航空公司、价格、总计的订单信息。机票数默认为1,舱位种类默认为经济舱,如果更改机票数,总计会自动更新,更新仓位种类,价格也会更新。 (4)不输入名称,插入订单按钮为不可用。 (5)信息填完整后,点击插入订单。系统会自动生成唯一订单号
时间: 2023-11-27 11:53:10 浏览: 36
好的,我可以为您提供一些参考代码,但是需要注意的是,由于航班信息和订单信息需要从数据库中读取和写入,所以代码可能比较复杂。以下是一个简单的示例:
```python
import datetime
import random
class Flight:
def __init__(self, flight_number, departure_city, arrival_city, departure_time, arrival_time, airline, price):
self.flight_number = flight_number
self.departure_city = departure_city
self.arrival_city = arrival_city
self.departure_time = departure_time
self.arrival_time = arrival_time
self.airline = airline
self.price = price
class Order:
def __init__(self, order_id, flight, passenger_name, ticket_num=1, cabin_type='Economy'):
self.order_id = order_id
self.flight = flight
self.passenger_name = passenger_name
self.ticket_num = ticket_num
self.cabin_type = cabin_type
self.total_price = self.ticket_num * self.flight.price
class BookingSystem:
def __init__(self):
self.flights = []
self.orders = []
self.current_order = None
def add_flight(self, flight):
self.flights.append(flight)
def search_flight(self, departure_city, arrival_city, date):
available_flights = []
for flight in self.flights:
if flight.departure_city == departure_city and flight.arrival_city == arrival_city and flight.departure_time.date() == date.date():
available_flights.append(flight)
return available_flights
def create_order(self, flight, passenger_name):
order_id = str(datetime.datetime.now().timestamp()) + str(random.randint(100, 999))
order = Order(order_id, flight, passenger_name)
self.orders.append(order)
self.current_order = order
return order
def update_order(self, ticket_num, cabin_type):
self.current_order.ticket_num = ticket_num
self.current_order.cabin_type = cabin_type
self.current_order.total_price = self.current_order.ticket_num * self.current_order.flight.price
return self.current_order
def delete_order(self, order):
self.orders.remove(order)
def generate_order_id(self):
order_id = str(datetime.datetime.now().timestamp()) + str(random.randint(100, 999))
return order_id
# Example usage:
booking_system = BookingSystem()
# Add flights
flight1 = Flight('CA123', 'Shanghai', 'Beijing', datetime.datetime(2022, 1, 1, 8, 0), datetime.datetime(2022, 1, 1, 10, 30), 'Air China', 800)
flight2 = Flight('MU456', 'Shanghai', 'Guangzhou', datetime.datetime(2022, 1, 1, 12, 0), datetime.datetime(2022, 1, 1, 14, 0), 'China Eastern', 600)
booking_system.add_flight(flight1)
booking_system.add_flight(flight2)
# Search for available flights
available_flights = booking_system.search_flight('Shanghai', 'Beijing', datetime.datetime(2022, 1, 1, 0, 0))
for flight in available_flights:
print(flight.flight_number, flight.departure_time, flight.price)
# Create an order
order = booking_system.create_order(flight1, 'John Smith')
print(order.order_id, order.passenger_name, order.flight.flight_number, order.total_price)
# Update the order
updated_order = booking_system.update_order(2, 'Business')
print(updated_order.ticket_num, updated_order.cabin_type, updated_order.total_price)
# Delete the order
booking_system.delete_order(order)
# Generate a unique order ID
order_id = booking_system.generate_order_id()
print(order_id)
```
此代码只是一个简单的示例,实际的系统可能需要更多的功能和错误处理。此外,需要将航班和订单信息存储在数据库中,以便可以随时检索和更新它们。