用队列的知识编写火车订票退票系统的代码
时间: 2024-02-29 16:52:58 浏览: 19
好的,下面是一个简单的火车订票退票系统的代码,使用队列来管理火车的座位。
```python
class Train:
def __init__(self, num_seats):
self.num_seats = num_seats
self.available_seats = list(range(1, num_seats + 1))
self.reserved_seats = []
def book_seat(self):
if not self.available_seats:
return None
seat = self.available_seats.pop(0)
self.reserved_seats.append(seat)
return seat
def return_seat(self, seat):
if seat in self.reserved_seats:
self.reserved_seats.remove(seat)
self.available_seats.append(seat)
self.available_seats.sort()
return True
return False
```
在这个火车订票退票系统中,我们使用了一个 Train 类来表示火车。当一个座位被预订时,我们将其从可用座位列表中删除,并将其添加到已预订座位列表中。当一个座位被退回时,我们将其从已预订座位列表中删除,并将其添加回可用座位列表中。
我们使用 available_seats 列表来管理可用座位,使用 reserved_seats 列表来管理已预订座位。在 book_seat() 方法中,我们从可用座位列表的开头获取一个座位,并将其添加到已预订座位列表的末尾。在 return_seat() 方法中,我们检查该座位是否在已预订座位列表中,如果是,则将其从该列表中删除,并将其添加回可用座位列表中。
这个简单的火车订票退票系统可以根据需要进行扩展,以更好地满足实际需求。