5、商品货架管理 [问题描述] 商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。 [基本要求] 针对一种特定商品,实现上述管理过程。 [实现提示] 用栈模拟货架和周转空间。 [测试数据] 由学生依据软件工程的测试技术自己确定。注意测试边界数据,如空栈。
时间: 2023-11-22 20:54:10 浏览: 29
以下是一种基于Python语言的商品货架管理代码实现:
```python
class Goods:
def __init__(self, name, production_date):
self.name = name
self.production_date = production_date
class Shelf:
def __init__(self):
self.stack = []
def is_empty(self):
return self.stack == []
def push(self, item):
self.stack.append(item)
def pop(self):
return self.stack.pop()
def peek(self):
return self.stack[-1]
def size(self):
return len(self.stack)
def display(self):
print([item.name for item in self.stack])
def load_goods(self, goods_list):
for goods in goods_list:
self.push(goods)
def unload_goods(self, num):
for i in range(num):
self.pop()
def reverse(self):
self.stack.reverse()
# 测试代码
if __name__ == "__main__":
goods_list = [
Goods("apple", "2022-01-01"),
Goods("banana", "2022-02-01"),
Goods("pear", "2022-03-01"),
Goods("orange", "2022-04-01")
]
shelf = Shelf()
shelf.load_goods(goods_list)
print("上货前货架:")
shelf.display()
shelf.reverse()
print("倒货架后货架:")
shelf.display()
shelf.unload_goods(2)
print("下货后货架:")
shelf.display()
```
以上代码实现了一个商品货架管理系统,其中`Goods`类表示商品,包括名称和生产日期两个属性;`Shelf`类表示货架,利用栈的数据结构进行管理,包括上货、下货、倒货架等操作。测试代码中,首先创建了一个商品列表,然后将商品上货到货架上,输出货架上的商品,接着倒货架以保证生产日期较近的商品在较下的位置,再次输出货架上的商品,最后下货并输出货架上的商品。