用队列模仿银行排队叫号系统
时间: 2024-01-02 13:03:02 浏览: 129
好的,我可以为您解答这个问题。要模拟银行排队叫号系统,我们可以使用队列来代表顾客排队的队列。每当一个新的顾客来到银行,就会被加入到队列的末尾。当柜员准备好为下一个顾客服务时,就会将队列中的第一个顾客叫到柜台。以下是使用Python实现队列模拟银行排队叫号系统的示例代码:
```python
class Queue:
def __init__(self):
self.items = []
def is_empty(self):
return not bool(self.items)
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
return self.items.pop(0)
def size(self):
return len(self.items)
class Bank:
def __init__(self):
self.queue = Queue()
self.number = 0
def new_customer(self):
self.number += 1
self.queue.enqueue(self.number)
def serve_customer(self):
if self.queue.is_empty():
print("No customers to serve.")
else:
customer = self.queue.dequeue()
print("Now serving customer", customer)
def show_queue(self):
print("Current queue:", self.queue.items)
# Example usage
bank = Bank()
bank.new_customer()
bank.new_customer()
bank.new_customer()
bank.show_queue()
bank.serve_customer()
bank.show_queue()
```
在这个示例代码中,我们首先实现了一个Queue类来代表队列。然后我们实现了一个Bank类来模拟银行,其中包含了三个方法:
- new_customer:每次调用这个方法时,会为新的顾客生成一个号码,并将其加入到队列的末尾。
- serve_customer:每次调用这个方法时,会将队列中的第一个顾客叫到柜台处理。如果队列为空,则输出“No customers to serve.”的提示信息。
- show_queue:每次调用这个方法时,会输出当前队列中的顾客号码。
在示例代码的最后,我们创建了一个Bank对象,并调用了几个方法来测试它们的功能。您可以根据自己的需要修改代码来满足您的需求。
阅读全文