编号登记:为n位体检者设置体检编号1~n。
体检呼叫:体检项目处空闲时呼叫下一个体检者(编号小的优先),若多个项目同时呼叫,体 检者到优先级小的项目处体检。仅考虑常规体检项目,各个项目的优先级及体检时间如表1所示:
前去体检:各个体检项目之间相互独立,互不影响;病人排队体检和体检完毕到下一科室之 间没有时间延迟。
deflst(n):
que=[]
que.append(temp)
return que
若加框处语句改为:
则执行语句lst(4),que的生成结果 (选填:是/否)相同。
Python部分程序如下 , 请在划线处填入合适的代码。
n=10
head=0
que=lst(n)
tail=10
dis=[['B超', 12],[ '心电图' , 5],['抽血', 2],['尿常规' , 2],['C14检测', 2],['胸透' , 2], ['一般常规(身高体重血压)', 1]]
t=[-1]*7 #t记录各个项目当前体检的开始时间
f=[-1]*7 #f记录各个项目当前体检人员编号
def jh(num):
global tail #global能够实现在自定义函数中改变公共变量tail
p=head
while p<tail:
if que[p][0]not in fand num not in que[p][1]: #p体检者等待中且未体检num项目
que[p][1].append(num)
t[num]=time
if len(que[p][1])==7:
temp=que[p]
for i in range(p , tail-1):
que[i]=que[i+1]
que[tail-1]=temp
tail-=1
break
p=p+1
time=0
while tail! =head:
i=0
while i<7:
if t[i]==-1:
jh(i)
elif :
t[i]=-1
f[i]=-1
i-=1
i+=1
time+=1
print('体检完成顺序:')
for i in range( ): #按体检完成顺序输出体检者及其的体检项目顺序
item= que[i][1]
s= ' '
for j in item:
s+=dis[j][0]+'→'
print('编号%d:%s'%(que[i][0], s[:-1]))