我的意思是写图书馆座位预约系统的代码
时间: 2024-05-16 22:14:04 浏览: 13
好的,那我们可以开始写图书馆座位预约系统的代码了。
首先,我们需要定义一个座位类(Seat),它包括座位编号、座位状态(已预约或未预约)以及预约时间等属性。代码如下:
```python
class Seat:
def __init__(self, seat_id):
self.seat_id = seat_id
self.is_reserved = False
self.reserved_time = None
```
接下来,我们需要定义一个图书馆类(Library),它包括座位列表、预约时间间隔、最长预约时间等属性,以及预约座位和取消预约的方法。代码如下:
```python
from datetime import datetime, timedelta
class Library:
def __init__(self, seats_num, interval=30, max_time=180):
self.seats = [Seat(i+1) for i in range(seats_num)]
self.interval = timedelta(minutes=interval)
self.max_time = timedelta(minutes=max_time)
def reserve_seat(self, seat_id):
seat = self.seats[seat_id-1]
if seat.is_reserved:
return False, "The seat is already reserved."
else:
seat.is_reserved = True
seat.reserved_time = datetime.now()
return True, "Seat reserved successfully."
def cancel_reservation(self, seat_id):
seat = self.seats[seat_id-1]
if seat.is_reserved:
seat.is_reserved = False
seat.reserved_time = None
return True, "Reservation canceled successfully."
else:
return False, "The seat is not reserved."
```
在图书馆类中,我们定义了一个reserve_seat方法和一个cancel_reservation方法,用于预约座位和取消预约。reserve_seat方法首先检查座位是否已经被预约,如果是则返回False和错误信息,否则将座位状态设为已预约,并记录预约时间。cancel_reservation方法检查座位是否已经被预约,如果是则将座位状态设为未预约,并清除预约时间,否则返回False和错误信息。
现在我们可以创建一个图书馆对象,并测试预约和取消预约的功能了,代码如下:
```python
lib = Library(100)
# 预约座位
success, message = lib.reserve_seat(1)
if success:
print(message)
else:
print(message)
# 取消预约
success, message = lib.cancel_reservation(1)
if success:
print(message)
else:
print(message)
```
这里我们创建了一个拥有100个座位的图书馆对象,然后测试了预约座位和取消预约的功能。你可以根据需要修改座位数量、预约时间间隔和最长预约时间等参数。