分析以下需求,并用代码实现 1.定义一个超市的储物柜类(Locker),属性:柜子的容量(柜子的格数)、存储物品的集合; 2.储物柜最大容量为20;为储物柜对象提供存物和取物方法; 3.在测试类(LockerTest)中,通过键盘录入,模拟存物品和取物品的过程。 要求: (1)调用存放物品方法时,传入要存入的物品名称,判断储物柜是否有空余容量,有空余则提示存放物品成功,返回一个随机的四位数字的取货码。 (2)调用取物方法时,传入取货码,打印出对应的物品名称,若无对应的物品则提示取货码不正确;
时间: 2023-04-07 21:03:42 浏览: 141
以下是代码实现:
```python
class Locker:
def __init__(self):
self.capacity = 20
self.items = {}
def store(self, item):
if len(self.items) < self.capacity:
code = str(random.randint(1000, 9999))
self.items[code] = item
print("存放物品成功,取货码为:", code)
else:
print("储物柜已满,无法存放物品。")
def retrieve(self, code):
if code in self.items:
item = self.items[code]
del self.items[code]
print("取出物品:", item)
else:
print("取货码不正确。")
class LockerTest:
def __init__(self):
self.locker = Locker()
def run(self):
while True:
action = input("请输入操作(存放/取出/退出):")
if action == "存放":
item = input("请输入要存放的物品名称:")
self.locker.store(item)
elif action == "取出":
code = input("请输入取货码:")
self.locker.retrieve(code)
elif action == "退出":
break
else:
print("无效的操作。")
if __name__ == "__main__":
test = LockerTest()
test.run()
```
在测试类中,通过键盘录入模拟存物品和取物品的过程。调用存放物品方法时,传入要存入的物品名称,判断储物柜是否有空余容量,有空余则提示存放物品成功,返回一个随机的四位数字的取货码。调用取物方法时,传入取货码,打印出对应的物品名称,若无对应的物品则提示取货码不正确。