如仓库有m=10个货柜,依次进行以下3次操作:
入库:[ ['A',3],[B',1] ],表示把货物A入库3件,货物B入库1件;
出库:[ ['A',1]],表示把货物A出库1件;
入库:[['C',2],['A',1]],表示把货物C入库2件,货物A入库1件
操作结束后,仓库的存储模拟视图如图所示:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
C | A | A | B | C | A |
(2)函数finde() 可以在仓库中查找空货柜的位置,加框处代码应改为
def finde():
j = 0
while:
j += 1
if j == m:
return -1
c[j] = -1
return j
(3)函数putin实现将列表a中的货物入库,如a=[['A',3],['B',1]]。
def putin():
for i in range(len(a)):
p=finde()
if p==-1:
#仓库已满,后续操作代码略
return
if a[i][0] not in info: #当前货物没出现过
info[a[i] [0]] =[p, p]
else:
c[info[a[i][0]][1]]=p
for j in range(a[i][1] -1):
p=c[p]
info[a[i][0]][1] =p
(4)函数getout实现将列表a中的货物出库操作。
def getout():
for i in range(len(a)):
if a[i][0] not in info:
print("提示:该货物已无存量! ")
continue
p=info[a[i][0]][0] ; r= 0
while p! =-1 and r<a[i][1]:
t=c[p] ; c[p]=-2 ; p=t
①
if p==-1:
info.pop(a[i][0]) #删除字典中指定的键值对
else:
②
print("提示:该货物已出库"+str(r) +"件")
m=500#货柜个数
c=[-2] *m ; info={} #c[i]=-2,表示i号货柜为空
while True:
print("仓库管理系统操作菜单:1.入库2.出库3.查询4.存储现状图5.退出")
t=int(input("请输入操作步骤:(选择数字1~5) "))
#读入货物数据到列表a,调用相应函数,代码略
同类型试题
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
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