一个基于Python的洗衣机预约系统代码如下:
```python
import datetime
# 定义一个洗衣机预约类
class LaundryReservation:
def __init__(self):
# 初始化洗衣机预约系统
self.reservations = []
# 检查预约时间是否重叠
def is_conflict(self, start_time, end_time):
return any(
r['start_time'] for r in self.reservations
)
# 添加预约
def add_reservation(self, name, start_time, end_time):
if self.is_conflict(start_time, end_time):
print('您选择的时间段已有预约,请重新选择!')
else:
self.reservations.append({
'name': name,
'start_time': start_time,
'end_time': end_time
})
print('预约成功!')
# 取消预约
def cancel_reservation(self, name):
for i, r in enumerate(self.reservations):
if r['name'] == name:
del self.reservations[i]
print('预约取消成功!')
# 显示所有预约
def show_reservations(self):
if not self.reservations:
print('当前没有任何预约!')
else:
for r in self.reservations:
start_time = datetime.datetime.strftime(r['start_time'], '%Y-%m-%d %H:%M:%S')
end_time = datetime.datetime.strftime(r['end_time'], '%Y-%m-%d %H:%M:%S')
print('{}预约的洗衣机使用时间为:{} 至 {}'.format(r['name'], start_time, end_time))
# 实例化洗衣机预约系统
laundry_reservation = LaundryReservation()
# 模拟预约
laundry_reservation.add_reservation('小明', datetime.datetime(2022, 5, 1, 18, 0), datetime.datetime(2022, 5, 1, 19, 0))
laundry_reservation.add_reservation('小红', datetime.datetime(2022, 5, 2, 19, 0), datetime.datetime(2022, 5, 2, 20, 0))
laundry_reservation.add_reservation('小刚', datetime.datetime(2022, 5, 3, 9, 0), datetime.datetime(2022, 5, 3, 10, 0))
# 取消预约
laundry_reservation.cancel_reservation('小明')
# 显示所有预约
laundry_reservation.show_reservations()
代码中首先定义了一个`LaundryReservation`类,即洗衣机预约系统。在预约系统中,我们定义了以下几个方法:
- `__init__(self)`:初始化洗衣机预约系统,创建一个空的`reservations`列表。
- `is_conflict(self, start_time, end_time)`:检查预约时间是否与已有预约重叠,如果重叠则返回`True`,否则返回`False`。
- `add_reservation(self, name, start_time, end_time)`:向预约系统中添加一条预约记录,如果预约时间与已有预约时间重叠,则提示用户重新选择。
- `cancel_reservation(self, name)`:取消指定姓名的预约记录。
- `show_reservations(self)`:列出所有预约记录。
我们可以使用以上方法对洗衣机预约系统进行管理。例如,我们可以使用`add_reservation`方法添加一条预约记录,使用`cancel_reservation`方法取消一条预约记录,使用`show_reservations`方法列出所有预约记录。
在下面的代码中,我们使用了`datetime`模块来处理时间相关操作,例如设置预约时间等。由于以上只是一个最基本的预约系统代码,可以根据实际需求进行调整和改进。