一个简单的仓库管理系统
小白纪念自己写的第一个代码,里面的内容略显冗杂,希望有大神批评指正。这个代码不涉及数据库,全部用字典和列表代替,也仅仅是简单的循环遍历。
"""简易物流操作"""
"""基本功能:
1、仓库的入库(名称和数量)
2、仓库的出库(名称和数量)
3、物流状态的查询
4、查询库存
5、员工调度查询
技术:数据类型(字典列表)、循环、条件语句
"""
"""设计思路:
1、仓库的入库出库
1)创建一个空字典当作库用于存储商品名称及数量
2)创建两个列表,分别用来存储字典中的key和value
3)输入的元素作为字典中的key和存储key值的列表进行比对。
<1>输入元素已存在于列表中,则遍历算出找到该元素的步长,存储value值的列表根据步长寻到对应的值,
并根据入库还是出库,算出新的value,分别在字典和列表中将原有value进行替换
<2>输入元素不存在于列表中,入库操作时,添加新的kv对;出库操作则提示错误
2、查询库存
通过print直接在控制面板上输出字典
3、物流状态查询
1)创建一个字典当作库,单号与状态形成kv对,提前将订单号及状态写入
2)创建两个列表,分别用来存储字典中的key和value
3)输入的元素作为字典中的key和存储key值的列表进行比对。
<1>输入元素已存在于列表中,则遍历算出找到该元素的步长,存储value值的列表根据步长寻到对应的值,
并将该值打印输出
<2>输入元素不存在于列表中,则提示该货物不存在
4、岗位人员数量安排查询
1)创建一个字典当作库,岗位与人数形成kv对,提前将岗位及人数写入
2)创建两个列表,分别用来存储字典中的key和value
3)输入的元素作为字典中的key和存储key值的列表进行比对。
<1>输入元素已存在于列表中,则遍历算出找到该元素的步长,存储value值的列表根据步长寻到对应的值,
并将该值打印输出
<2>输入元素不存在于列表中,则提示该岗位不存在
"""
"""代码开始"""
#coding=UTF-8
lst={}#创建库存字典
aa=[]#创建入库存储货物名的列表
bb=[]#创建入库存储数量的列表
aaa=[]#创建出库存储货物名的列表
bbb=[]#创建出库存储数量的列表
d={"123115":"已到达送货地址","21561":"到达济南","35958":"离开济南发往北京"}#创建字典当作物流状态库
gg=[]#存储订单号的列表
ww=[]#存储运输状态的列表
#创建工作岗位库
ff={"仓库人员":"100","电脑技术维修工":"1","运输车司机":"30","客服人员":"20","业务经理":"3","市场营销人员":"15","仓库主管":"1","电子商务人员":"10","美工":"1",}
ga=[]#存储岗位名的列表
wb=[]#存储岗位人员数量的列表
flag=True
"""循环开始"""
while flag:
t=input("请选择操作类型:1 入库 2 出库 3 物流状态查询 4 查询库存 5 岗位人员数量安排查询")#给出操作提示
"""入库开始"""
if str(t)=="1":
f=True
"""循环开始"""
while f:
la=str(input("请输入货物名称(E退出):"))
if la=="E":
f=False
else :
for a in lst.keys():# a是字典lst的key,相当于库中的货物名
aa.append(a)# 将货物名存入列表aa中
for b in lst.values():# b是字典lst的value,相当于库中的数量
bb.append(b)# 将数量存入列表bb中
"""遍历求列表aa找到输入的货物名la用的步长,求列表bb中对应的步长的值"""
if la in aa:#输入的货物名在库中
c = -1
for ca in aa:#给定库中的一个元素,并进行遍历
c = c + 1
if ca == la:#当给定元素与输入相同时,遍历结束,求出步长c
n = bb[c]#入库前的货物数量
t=input("请输入入库数量:")
x = int(n) + int(t)#入库后的货物数量
lst[la]=x#将仓库中原数量替换为入库后的
bb[c]=x#将给定元素替换为入库后的数量
print("入库成功")
else:
lb = input("请输入入库数量:")
lst[la] = lb#在库中添加货物名及数量
print("入库成功")
"""出库开始"""
if str(t)=="2":
l=str(input("请输入货物名称:"))
for ad in lst.keys():# ad是字典lst的key,相当于库中的货物名
aaa.append(ad)# 将货物名存入列表aaa中
for bd in lst.values():# bd是字典lst的value,相当于库中的数量
bbb.append(bd)# 将数量存入列表bbb中
"""遍历求列表aaa找到输入的货物名l用的步长,求列表bbb中对应的步长的值"""
if l in aaa:#输入的货物名在库中
c = -1
for cc in aaa:#给定库中的一个元素,并进行遍历
c = c + 1#c为步长
if cc == l:#当给定元素与输入相同时,遍历结束,求出步长c
nn = bbb[c]#nn为出库前的数量
tt = input("请输入出库数量:")
ttt=int(nn)-int(tt)#ttt为出库后的数量
if ttt<0:
print("货物不足,请及时补货!!!")
print("货物余量:")
print(lst[l])#打印出库前的数量
else:
lst[l]=ttt#将库中原有数量改成出库后的数量
bbb[c] = ttt#在列表原来的数量位置替换为出库后的数量
print("出库成功,货物余量:")
print(lst[l])#打印出库后的数量
else:
print("货物不存在")
"""物流状态查询开始"""
if str(t) == "3":
lc = input("请输入货物单号:")
for ab in d.keys(): # ab是字典d的key,相当于库中的单号
gg.append(ab) # 将单号存入列表gg中
for ba in d.values(): # ba是字典d的value,相当于库中的物流状态
ww.append(ba) # 将物流状态存入列表ww中
"""遍历求列表gg找到输入的单号lc用的步长,求列表ww中对应的步长的值"""
if lc in gg: # 当输入的单号在列表gg中
c = -1
for ca in gg: # 当输入的单号在列表gg中
c = c + 1 # c为步长
if ca == lc: # ca=lc时,求得步长,算出输入的单号在列表gg的位置
vb = ww[c] # 根据求得的位置找出ww列表对应的信息
print(vb)
else:
print("货物不存在,请重新输入!")
"""库存查询开始"""
if str(t) == "4":
print(lst)#输出打印字典lst
"""岗位及人员数量查询开始"""
if str(t) == "5":
print("仓库人员"+" "+"电脑技术维修工"+" "+"运输车司机"+" "+"客服人员"+" "+"业务经理"+" "+"市场营销人员"+" "+"仓库主管"+" "+"电子商务人员"+" "+"美工")
lg = input("请输入查询岗位:")
for ag in ff.keys():# ag是字典d的key,相当于库中的岗位名
ga.append(ag)# 将岗位名存入列表ga中
for bg in ff.values():# bg是字典d的key,相当于库中的岗位人员数量
wb.append(bg)# 将岗位人员数量存入列表wb中
"""遍历求列表ga找到输入的岗位名lg用的步长,求列表wb中对应的步长的值"""
if lg in ga:#输入的岗位名在库中
c = -1
for cg in ga:
c = c + 1
if cg == lg:
vg = wb[c]#vg为员工数量
print("员工人数为:"+vg + "人")
else:
print("岗位不存在,请重新输入!")
"""程序结束"""