我需要一个Python简易的火车购票系统
时间: 2024-03-01 16:54:32 浏览: 15
好的,我可以帮你设计一个简易的火车购票系统,使用 Python 编写。该系统可以实现以下功能:
1. 查询车票余量:根据用户选择的出发地、目的地、日期和车次,查询该车次的余票数量。
2. 选择乘客类别:根据用户选择的乘客类别(如成人、儿童、学生等),显示相应的票价和折扣信息。
3. 选择票等:根据用户选择的票等(如硬座、软座、硬卧、软卧等),显示相应的票价和余票数量。
4. 购票:用户选择乘客姓名、证件号码和座位号后,可以进行支付,系统会生成相应的订单并发送确认信息给用户。
以下是一个简单的示例代码:
```python
class Train:
def __init__(self, train_num, start_station, end_station, depart_date, hard_seat_num, soft_seat_num, hard_berth_num, soft_berth_num):
self.train_num = train_num
self.start_station = start_station
self.end_station = end_station
self.depart_date = depart_date
self.hard_seat_num = hard_seat_num
self.soft_seat_num = soft_seat_num
self.hard_berth_num = hard_berth_num
self.soft_berth_num = soft_berth_num
def check_ticket(self, seat_type):
if seat_type == 'hard_seat':
return self.hard_seat_num
elif seat_type == 'soft_seat':
return self.soft_seat_num
elif seat_type == 'hard_berth':
return self.hard_berth_num
elif seat_type == 'soft_berth':
return self.soft_berth_num
else:
return 0
class Ticket:
def __init__(self, train_num, seat_type, passenger_type, passenger_name, passenger_id, seat_num, price):
self.train_num = train_num
self.seat_type = seat_type
self.passenger_type = passenger_type
self.passenger_name = passenger_name
self.passenger_id = passenger_id
self.seat_num = seat_num
self.price = price
class TicketSystem:
def __init__(self):
self.trains = []
self.tickets = []
def add_train(self, train):
self.trains.append(train)
def query_ticket(self, train_num, seat_type):
for train in self.trains:
if train.train_num == train_num:
ticket_num = train.check_ticket(seat_type)
return ticket_num
return 0
def buy_ticket(self, train_num, seat_type, passenger_type, passenger_name, passenger_id, seat_num):
for train in self.trains:
if train.train_num == train_num:
ticket_num = train.check_ticket(seat_type)
if ticket_num > 0:
ticket_price = self.calculate_price(seat_type, passenger_type)
ticket = Ticket(train_num, seat_type, passenger_type, passenger_name, passenger_id, seat_num, ticket_price)
self.tickets.append(ticket)
train.hard_seat_num -= 1
return ticket
return None
def calculate_price(self, seat_type, passenger_type):
# 根据不同的座位类型和乘客类型计算票价
pass
# 示例代码
system = TicketSystem()
train = Train('G1234', '北京', '上海', '2022-01-01', 100, 50, 50, 20)
system.add_train(train)
ticket_num = system.query_ticket('G1234', 'hard_seat')
if ticket_num > 0:
ticket = system.buy_ticket('G1234', 'hard_seat', 'adult', '张三', '110101199001010001', 'A1')
print('购票成功,订单号为:{}'.format(ticket.order_id))
else:
print('该车次{}硬座已售罄'.format(train.train_num))
```
以上是一个简单的 Python 火车购票系统示例,你可以根据自己的需求进行修改和完善。