餐厅座位分配系统:解决顾客入座与等待超时难题,附代码及优化要点
```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]
- 按键精灵实现:按F9启动,循环三次F2、X操作后再按F9的代码揭秘 (DeepSeek | 276点数解答 | 2025-02-23 00:05:43)288
- 银行服务同步:用信号量实现顾客与营业员的高效交互(阿里通义 | 539点数解答 | 2024-12-13 14:41:41)368
- 银行服务系统:用信号量实现顾客与营业员操作的互斥和同步(阿里通义 | 731点数解答 | 2024-12-13 14:42:20)214
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)211
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)414
- 解析React 15与Vue 2:从O(n^3)到O(n),Diff算法时间复杂度计算及性能对比 (阿里通义 | 379点数解答 | 2023-11-09 01:49:19)349
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)266
- 精准优化:明确需求,开启高效提升之旅! (字节豆包 | 52点数解答 | 2026-02-09 16:44:46)56
- 代码再升级:优化版“获取dump”代码,多机制保障数据读取与保存(字节豆包 | 734点数解答 | 2026-02-10 01:23:31)79
- 代码深度优化:全面检查异常、灵活读取内存,提升可读性与可维护性(字节豆包 | 959点数解答 | 2026-02-10 01:24:14)51
- C++ 实战:交通工具基类与小汽车类的继承实现及测试(字节豆包 | 391点数解答 | 2024-09-18 16:16:39)275
- Java 实现交通工具类继承:从 Vehicles 到 Car 的完整示例(字节豆包 | 289点数解答 | 2024-09-18 16:16:54)250