火车票系统的python代码
时间: 2023-10-12 15:11:52 浏览: 51
以下是一个简单的火车票系统的 Python 代码示例:
```python
class Train:
def __init__(self, train_id, departure, destination, departure_time, arrival_time, price, capacity):
self.train_id = train_id
self.departure = departure
self.destination = destination
self.departure_time = departure_time
self.arrival_time = arrival_time
self.price = price
self.capacity = capacity
self.passengers = []
def get_train_info(self):
return "Train ID: {}\nDeparture: {}\nDestination: {}\nDeparture Time: {}\nArrival Time: {}\nPrice: {}\nCapacity: {}\n".format(
self.train_id, self.departure, self.destination, self.departure_time, self.arrival_time, self.price, self.capacity)
def get_available_seats(self):
return self.capacity - len(self.passengers)
def book_ticket(self, passenger_name):
if self.get_available_seats() > 0:
self.passengers.append(passenger_name)
return True
else:
return False
class TrainSystem:
def __init__(self):
self.trains = []
def register_train(self, train):
self.trains.append(train)
def search_train(self, departure, destination):
result = []
for train in self.trains:
if train.departure == departure and train.destination == destination:
result.append(train)
return result
def book_ticket(self, train_id, passenger_name):
for train in self.trains:
if train.train_id == train_id:
return train.book_ticket(passenger_name)
return False
```
该火车票系统包括两个类:`Train` 和 `TrainSystem`。`Train` 类表示一辆火车,包括火车号、起点、终点、发车时间、到达时间、票价和最大乘客人数等属性,以及一个乘客列表,表示已经订票的乘客。`TrainSystem` 类表示整个火车票系统,包括火车列表,以及注册火车、查询火车和订票等方法。
示例代码中,我们首先定义了 `Train` 类,包括构造方法、获取火车信息方法、获取可用座位数方法、订票方法等。其中,`book_ticket` 方法会先检查是否还有空余座位,如果有则将乘客名添加到乘客列表中。
接着,我们定义了 `TrainSystem` 类,包括构造方法、注册火车方法、查询火车方法和订票方法。其中,`register_train` 方法用于将一辆火车添加到火车列表中,`search_train` 方法用于查询从起点到终点的所有火车,`book_ticket` 方法用于订票,它会遍历所有火车,找到指定火车并调用其 `book_ticket` 方法。
使用该火车票系统的示例代码如下:
```python
# 创建火车票系统
train_system = TrainSystem()
# 注册火车
train1 = Train("G1", "Beijing", "Shanghai", "08:00", "13:00", 500, 100)
train2 = Train("G2", "Shanghai", "Beijing", "14:00", "19:00", 500, 100)
train_system.register_train(train1)
train_system.register_train(train2)
# 查询火车
trains = train_system.search_train("Beijing", "Shanghai")
for train in trains:
print(train.get_train_info())
# 订票
if train_system.book_ticket("G1", "Tom"):
print("Success")
else:
print("Failed")
```
这个示例中,我们首先创建了一个 `TrainSystem` 对象,然后注册了两辆火车,接着查询从北京到上海的所有火车,并输出它们的信息。最后,我们尝试为火车 G1 的 Tom 订票,如果订票成功则输出 Success,否则输出 Failed。