学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
某办事处每天都有客户来办理业务,每位客户信息包括客户编号、到达时间、办理业务所需时 长和客户等级(1 代表是 VIP ,0 代表不是 VIP) ,如图 a 所示。已将当天所有客户信息, 按照到达时间的先后顺序存储在文件中。该办事处共有 2 个窗 口,初始时仅开通 1 个窗 口,当 排队人数到达 m 时,增开 1 个窗 口,增开窗 口后,不再关闭。所有客户按照到达时间排成一队办理业务,VIP 客户优先。
客户
编号
到达
时间
办理业务所 需时长 (分)客户
等级
107:5380
207:5460
307:5770
408:0281
508:12101
....

图 a


图b


从文件中读取当天客户信息,根据上述规则,按办理业务顺序输出办理结果,如图 b 所示。
       (1) 以图 a 为例,若只开 1 个窗口,第 4 个办理业务的客户编号为______________
       (2) 实现上述功能的 Python 程序段如下,请在划线处填入合适的代码。
'''从文件中读取客户信息存入 data 中 (到达时间已转换为分钟,如 07:53 转换为 473) ,其 中 data[0]存储第 1 个客户信息,data[0][0] 、data[0][1] 、data[0][2] 、data[0][3]为分别表示第 1 个客户的客户编号、到达时间、办理业务所需时长 (分) 和客户等级,代码略。'''                 
def mt(x) :
#将分钟转换为时间格式,如 473 转换为 07:53,代码略
def gs(x):
#格式化输出,代码略
t=[[9999,9999],[9999,9999]]#t[0]代表第一个窗口的开始时间和结束时间,t[1]代表第二个窗
口的开始时间和结束时间
m=int(input("请输入 m 的值:"))
n=len(data)
t[0][0]=data[0][1]
t[0][1]=data[0][1]+data[0][2]
print("办理序号","客户编号","开始时间","结束时间","窗口编号")
print(gs(1),gs(data[0][0]),gs(mt(t[0][0])),gs(mt(t[0][1])),gs(0))
full=False                  #full 为 True 表示 2 个窗口办理业务
waitnum=0
openwin=False       #openwin 为 True 表示增开 1 个窗口
i=1;q=1;head=1;tail=1          #第一个人已经在办理业务, 队伍为空
while         _______ :
     while i < n and data [i][1] < min(t[0][1],t[1][1]):
          tail+=1
          waitnum+=1
          tmp=data[tail-1]
          j=tail-2
          while           _______ :               #根据优先级调整排队次序
               data [j+1]=data [j]
               j-= 1
          data[j+1]=tmp
          i+=1
          if waitnum==m and not full:
               full=True
               openwin=True
               break
     x=0 #办理业务的窗口编号
     if openwin or full and t[1][1] < t[0][1]:
          x= 1
          if openwin==True:            #新开一个窗口
               t[x][1]=        ________
               openwin=False
     if waitnum>0:
          t[x][0]=t[x][1]
          t[x][1]=t[x][1]+data[head][2]
          waitnum-= 1
          q+=1
          print(gs(q),gs(data[head][0]),gs(mt(t[x][0])),gs(mt(t[x][1])),gs(x))
_______
     else:
          t[x][0]=data[i][1]
          t[x][1]=data[i][1]+data[i][2]
          q+=1
          print(gs(q),gs(data[i][0]),gs(mt(t[x][0])),gs(mt(t[x][1])),gs(x))
          i+=1
          head=tail=i
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交