酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

餐厅座位分配系统:解决顾客入座与等待超时难题,附代码及优化要点

```python class Restaurant: def __init__(self, num_tables, dining_time): self.num_tables = num_tables # 餐桌数量 self.dining_time = dining_time # 用餐时间 self.available_tables = num_tables # 初始可用餐桌数量 self.customers = [] # 顾客列表 def add_customer(self, arrival_time, max_waiting_time, customer_id): if self.available_tables > 0: # 有空桌 self.available_tables -= 1 # 占用一张桌子 sitting_time = arrival_time # 入座时间 leaving_time = arrival_time + self.dining_time # 离开时间 self.customers.append((customer_id, sitting_time, leaving_time)) print(f"顾客{customer_id} 入座时间:{sitting_time} 离开时间:{leaving_time}") else: # 无空桌 if (arrival_time - self.customers[0][1]) > max_waiting_time: # 等待超时 print(f"顾客{customer_id} 未入座") else: waiting_time = self.customers[0][2] # 前面顾客的离开时间 self.available_tables += 1 # 释放一张桌子 self.add_customer(arrival_time, max_waiting_time, customer_id) # 重新安排 # 输入处理 num_tables, dining_time = map(int, input().split()) restaurant = Restaurant(num_tables, dining_time) customer_id = 1 while True: try: arrival_time, max_waiting_time = map(int, input().split()) restaurant.add_customer(arrival_time, max_waiting_time, customer_id) customer_id += 1 except EOFError: break ``` 额外需要注意的逻辑点: 1. 对于输入数据的合法性检查,比如到达时间和最大等待时间应为非负整数。 2. 考虑处理多个相同到达时间的顾客情况。 3. 可以添加日志输出,方便调试和查看程序运行过程中的状态变化。 ######[AI写代码神器 | 485点数解答 | 2025-03-28 15:31:09]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]