主题:编程
假定一个银行有k个出纳,客户来到银行时,如果所有的出纳都处于忙状态,则客户需排在队尾等待,直到k个出纳的其中之一能为其服务。同
样,当有多个出纳处于空闲状态,现有一个客户到达,则派空闲时间最长的出纳为其服务。
这类模拟系统一般由下面两个事件构成:
(1) 客户到达事件
(2) 客户离开事件
这类模拟称之为离散事件模拟,因为所模拟的事件是离散发生的事件。
我们可作如下模拟:
1. 客户到达事件(用命令a表示):客户自动获得顺序号,首先检查有无空闲的出纳,有则该客户获得服务,并打印“xxx号客户在i号柜台
得到服务”的信息;无则排到队尾等候。
2. 客户离开事件(用命令i表示,i为1到k之间的数,表示客户刚才是在i号柜台完成服务):检查有无等待服务的客户,有则排在队首的客
户得到服务,并打印“xxx号客户在i号柜台得到服务”的信息;无则该出纳处于空闲状态。
3. 结束模拟(用命令q表示)
请编写一个算法实现之。
样,当有多个出纳处于空闲状态,现有一个客户到达,则派空闲时间最长的出纳为其服务。
这类模拟系统一般由下面两个事件构成:
(1) 客户到达事件
(2) 客户离开事件
这类模拟称之为离散事件模拟,因为所模拟的事件是离散发生的事件。
我们可作如下模拟:
1. 客户到达事件(用命令a表示):客户自动获得顺序号,首先检查有无空闲的出纳,有则该客户获得服务,并打印“xxx号客户在i号柜台
得到服务”的信息;无则排到队尾等候。
2. 客户离开事件(用命令i表示,i为1到k之间的数,表示客户刚才是在i号柜台完成服务):检查有无等待服务的客户,有则排在队首的客
户得到服务,并打印“xxx号客户在i号柜台得到服务”的信息;无则该出纳处于空闲状态。
3. 结束模拟(用命令q表示)
请编写一个算法实现之。