采用面向对象的思想构建“超市购物”,任务描述如下: 超市的货物包括生活用品和学习用品等,购物者根据货物名能够查找是否有该货物,根据货号能查找该货物的价格,打印购物清单。统计货品销售的数量。
时间: 2023-05-13 21:06:05 浏览: 81
超市管理面向对象设计
5星 · 资源好评率100%
好的,这是一个典型的面向对象编程问题。我们可以定义一个商品类,包含属性:货号、货物名、价格、销售数量等。然后定义一个超市类,包含属性:商品列表、购物清单等。购物者可以通过超市类的方法查找商品,添加商品到购物清单中,并统计销售数量。以下是示例代码:
```python
class Commodity:
def __init__(self, id, name, price):
self.id = id
self.name = name
self.price = price
self.sales = 0
class Supermarket:
def __init__(self):
self.commodities = []
self.shopping_list = {}
def add_commodity(self, commodity):
self.commodities.append(commodity)
def find_commodity_by_name(self, name):
for commodity in self.commodities:
if commodity.name == name:
return commodity
return None
def find_commodity_by_id(self, id):
for commodity in self.commodities:
if commodity.id == id:
return commodity
return None
def add_to_shopping_list(self, commodity):
if commodity.name in self.shopping_list:
self.shopping_list[commodity.name]['quantity'] += 1
else:
self.shopping_list[commodity.name] = {'price': commodity.price, 'quantity': 1}
def print_shopping_list(self):
print('购物清单:')
for name, info in self.shopping_list.items():
print(f'{name} x {info["quantity"]},单价:{info["price"]}元')
def update_sales(self, commodity, quantity):
commodity.sales += quantity
if __name__ == '__main__':
# 创建超市对象
supermarket = Supermarket()
# 添加商品
commodity1 = Commodity('001', '牙刷', 5)
commodity2 = Commodity('002', '笔记本', 3000)
supermarket.add_commodity(commodity1)
supermarket.add_commodity(commodity2)
# 查找商品
commodity = supermarket.find_commodity_by_name('牙刷')
print(f'商品名为“牙刷”的商品价格为{commodity.price}元')
commodity = supermarket.find_commodity_by_id('002')
print(f'货号为“002”的商品价格为{commodity.price}元')
# 添加商品到购物清单
commodity = supermarket.find_commodity_by_name('笔记本')
supermarket.add_to_shopping_list(commodity)
supermarket.add_to_shopping_list(commodity)
# 打印购物清单
supermarket.print_shopping_list()
# 更新销售数量
supermarket.update_sales(commodity1, 10)
print(f'商品“{commodity1.name}”销售数量为{commodity1.sales}个')
```
这个程序可以实现超市购物的基本功能,包括查找商品、添加商品到购物清单、打印购物清单、统计销售数量等。当然,实际的超市购物系统可能还需要更多的功能,比如结算、优惠券等,这些可以根据实际需求进行扩展。
阅读全文