以下是一个根据给定的类图编写的Python程序示例,用于在线巴士订票生成车票:
class Ticket:
def __init__(self, passenger_name, bus_route, seat_number):
self.passenger_name = passenger_name
self.bus_route = bus_route
self.seat_number = seat_number
def display_ticket(self):
print("Passenger Name:", self.passenger_name)
print("Bus Route:", self.bus_route)
print("Seat Number:", self.seat_number)
class Bus:
def __init__(self, bus_number, bus_route):
self.bus_number = bus_number
self.bus_route = bus_route
self.seats_available = 30
self.seats_booked = []
def book_ticket(self, passenger_name):
if self.seats_available > 0:
seat_number = self.get_next_available_seat()
ticket = Ticket(passenger_name, self.bus_route, seat_number)
self.seats_booked.append(ticket)
self.seats_available -= 1
print("Ticket booked successfully!")
ticket.display_ticket()
else:
print("No seats available on this bus.")
def get_next_available_seat(self):
seat_number = 1
for ticket in self.seats_booked:
if ticket.seat_number == seat_number:
seat_number += 1
return seat_number
# 测试代码
bus = Bus("B001", "Route A")
bus.book_ticket("John")
bus.book_ticket("Mary")
运行上述代码,将生成输出如下:
Ticket booked successfully!
Passenger Name: John
Bus Route: Route A
Seat Number: 1
Ticket booked successfully!
Passenger Name: Mary
Bus Route: Route A
Seat Number: 2
该程序创建了一个Ticket
类,表示车票,包含乘客姓名、巴士路线和座位号等属性,并且具有显示车票信息的方法。
另外,该程序还创建了一个Bus
类,表示巴士,包含巴士编号、巴士路线、可用座位数和已预订座位列表等属性。Bus
类具有预订车票的方法book_ticket
,会根据可用座位数生成一个新的Ticket
对象,并将其添加到已预订座位列表中。
在测试代码中,首先创建了一个Bus
对象bus
,表示一辆巴士,其巴士编号为"B001",路线为"Route A"。然后,通过调用book_ticket
方法,预订了两张车票,分别为乘客"John"和"Mary"。每次预订车票成功后,会显示生成的车票信息。
注意:上述代码只是一个示例,具体实现根据个人需求可能会有所不同。