某校图书馆管理系统中,工作人员通过计算机终端上的扫描仪扫描图书条形码,录入图书信息后完成入库。师生借阅时,通过校园一卡通识别身份,利用 RFID 读写器识别图书中的电子标签以获取图书信息,完成借阅后相关数据保存在服务器中。该系统所在的局域网接入因特网,图书查询功能基于 B/S 架构开发,师生在馆内外都可使用计算机、手机等查询图书信息。
图 a | 图 b |
t=h
p=d[h][1]
while p != -1 :
q=d[p][1]
p=q
d[t][-1]=-1
d[q][1]=p
d[t][1]=q
else:
d[h][1]=q
h=p
B . if d[p][0]>0:d[t][1]=q
t=q
else:
h=p
d[p][1]=t
C . if d[p][0]>0:d[t][1]=p
t=p
else:
d[p][1]=h
h=p
D . if d[p][0]>0:d[t][1]=q
d[q][1]=p
else:
d[p][1]=h
h=q
#导入相关库,并从服务器获取阈值,保存在 h 中,代码略
lasth=h
s=0
while True:
#从传感器获取湿度值,保存在 newh 中,代码略
If s==0:
if newh<h and lasth<h:
s=1
#打开加湿器,代码略
else:
if newh>h and lasth>h:
#关闭加湿器,代码略
#将 newh,s 等数据传输到服务器。代码略
sleep(1000*60) #延时 1 分钟
图 a | 图 b |
import pandas as pd
import matplotlib.pyplot as plt
#读取如图 b 所示数据,保存到 DataFrame 对象 df1 中,代码略
f = [9, 7, 6, 5, 4, 3, 2, 1]
for i in range(0,len(dfl)):
rank = df1.at[i,"名次"] #通过行、列标签取单个值
score = 0
if rank <= 8:
df1.at[i,"得分"] = score
df2 = dfl.groupby(" ▲ ",as_index=False).sum() #分组求和
#设置绘图参数,代码略
plt.bar(x,y) #绘制柱形图
①请在程序中划线处填入合适的代码。
②程序的方框中应填入的正确代码为 (单选,填字母)
A.x = df1["专业"]
y = df1["总分"]
B.x = df2["专业"]
y = df2["得分"]
C.df1["专业"] = "专业"
df1["总分"] = "总分"
D.Df2["专业"] = "专业"
Df2["得分"] = "得分"
若某单位剩余员工人数为k,则分配方法为:在已建的小组中查找空位数(该小组还可容纳的人数)大于或等于k的小组,如果找到的小组有多个,则选择空位数最少的小组,将此k人分配到该小组中;如果没有找到,则新建一个小组,将此k人分配到该小组中。
设n为5,m为20,各单位员工人数及单位内部的分组过程如图a所示,各单位剩余员工的分组过程如图b所示。
编写程序:给定各单位编号及员工人数,根据上述方法进行分组处理,按单位编号次序输出各单位所分配的分组编号。请回答下列问题:
def bubble_sort(lst):
n=len(lst)
for i in range(0, n-1):
return
调用该函数,若 lst 为[[1,0],[2,0],[3,18],[4,0],[5,19],[6,17]],请回答①和②两个问题。
①虚线框中的程序段第 1 次执行后,关于 lst 中的剩余员工人数,下列说法正确的是(单选,填字母)。
A.lst[0][1]数值最小 B.lst[0][1]数值最大
C.lst[5][1]数值最小 D.lst[5][1]数值最大
②虚线框中的程序段执行的次数为。
函数与方法 | 功能 |
w.append(x) | 在列表 w 末尾添加元素 x |
x.w.pop() | 将列表 w 末尾元素赋值给 x,并将其从 w 中删除 |
def group(data, m):
n=len(data)
a=[]
for i in range(n+1):
a.append([]) # a[i]初始化为空列表,存放编号为 i 的单位所分配的分组编号
gnum=0
for i in range(n): #各单位内部分组
while data[i][1]>=m:
gnum+=1
k=data[i][0]
a[k].append(gnum)
bubble_sort(data) #根据每个单位的剩余员工人数,对 data 进行降序排序
b=[]
for i in range(m):
b.append([])
i=0 #对剩余员工分组
while i<n and data[i][1]!=0:
while j<m and len(b[j])==0:
j+=1
if j<m:
v=b[j].pop()
else:
gnum+=1
v=gnum
a[data[i][0]].append(v)
i+=1
#输出各单位的分组编号,代码略
'''
读取小组人数上限存入 m;读取 1 至 n 号单位的数据,依次存入列表 data 的 data[0]至 data[n-1]中。
Data[i]包含 2 个数据项,data[i][0],data[i][1]分别存放单位编号及员工人数,代码略
'''
group(lst, m)