现模拟该银行排队程序,效果如下图所示,输出10个人各自的等待时间单位:
输出格式描述: (客户编号:等待的时间)
mins=3 #常用窗口3个
maxs=5 #最多可开设5个窗口
lims=7 #正常服务时每个窗口平均等待的最多人数
tm=int(input("请输人客户共多少批: "))
ps= list(map(int ,input("输人每批客户人数"). split(",")))
# list(map(int,["1","2","3"]) )返回:[1, 2, 3]
sw= mins
if len(ps)! = tm:
print("输入有误! " )
pid, cnt=0,0
head, tail=0,0
qe=[[0,0]]* 1000 #创建等待队列
def updatetime(s):
forj in range( len(s)):
s[j][1]+= 1
for i in range(tm):
for j in range(sw): #将轮到的人进行出队
if :
print(f’({qe[ head][0]} :{qe[ head][1]})',end=") #按格式出队输出
head += 1
cnt-=1
#人数减少后,检查人数和窗口数是否符合要求并按照要求减少窗口,代码略
if head!= tail:
#更新等待队列里每个人的等待时间
for j in range (ps[i]) :
pid+= 1
qe[tail]=[pid,0]
tail += 1
cnt += 1
while :
sw += 1
while cnt>0:
#最后一批人进入银行后,程序只需要处理等待队列剩余人员到出队
#和窗口的减少,直至人数为0,代码略。