用python定义一个TicketSystem()类,包含添加车次、查询余票、购买车票、取消车票等方法;
时间: 2024-01-29 13:02:44 浏览: 23
好的,下面是Python代码实现:
```
class TicketSystem:
def __init__(self):
self.trains = {}
def add_train(self, train_num, capacity):
self.trains[train_num] = {"capacity": capacity, "tickets": []}
print("车次" + train_num + "添加成功!")
def query_tickets(self, train_num):
if train_num not in self.trains:
print("该车次不存在!")
else:
available_tickets = self.trains[train_num]["capacity"] - len(self.trains[train_num]["tickets"])
print("车次" + train_num + "的余票数量为:" + str(available_tickets))
def buy_ticket(self, train_num):
if train_num not in self.trains:
print("该车次不存在!")
return
available_tickets = self.trains[train_num]["capacity"] - len(self.trains[train_num]["tickets"])
if available_tickets == 0:
print("车次" + train_num + "的余票不足!")
else:
self.trains[train_num]["tickets"].append("ticket")
print("购票成功!")
def cancel_ticket(self, train_num):
if train_num not in self.trains:
print("该车次不存在!")
return
if len(self.trains[train_num]["tickets"]) == 0:
print("该车次没有已购车票!")
else:
self.trains[train_num]["tickets"].pop()
print("退票成功!")
```
以上代码实现了一个基本的Ticket System类,包含添加车次、查询余票、购买车票、取消车票等方法。请注意,这些方法都是基于self.trains字典进行操作的。其中,self.trains的key为车次编号,value为一个包含capacity(该车次的容量)和tickets的字典,tickets记录该车次已经售出的车票数量。当有乘客购买车票时,程序会先查询该车次的余票数量,若余票不足则购票失败。购票成功后,程序会将该乘客的车票添加到tickets列表中;当乘客要退票时,程序会先判断该车次是否有乘客购买车票,并将该乘客的车票从tickets列表中删除。