采用面向对象的思想构建“超市购物”,任务描述如下: 超市的货物包括生活用品和学习用品等,购物者根据货物名能够查找是否有该货物,根据货号能查找该货物的价格,打印购物清单。 ,统计货品销售的数量
时间: 2023-05-23 07:03:34 浏览: 59
可以使用面向对象的思想来构建“超市购物”程序。我们可以先定义两个类,一个是商品类,一个是购物者类。商品类中包含属性货物名、货号、价格和数量等信息,还包含获取货物名和价格的方法。购物者类中包含购物清单和购买商品等方法。在购物者类中先定义购物清单列表,再根据购买的商品名称查找商品的价格并计算出总价格。每次购买商品时,还需要统计相应商品的销售数量。
下面是一个示例代码:
```python
class Commodity:
def __init__(self, name, code, price, quantity):
self.name = name
self.code = code
self.price = price
self.quantity = quantity
def get_name(self):
return self.name
def get_price(self):
return self.price
class Shopper:
def __init__(self):
self.shopping_list = [] # 初始化购物清单
def add_item(self, commodity, quantity):
# 添加购买的商品和对应数量
self.shopping_list.append((commodity, quantity))
def print_receipt(self):
# 打印购物清单和总价格
total_price = 0
for commodity, quantity in self.shopping_list:
name = commodity.get_name()
price = commodity.get_price()
sub_total = price * quantity
total_price += sub_total
print(f"{name} x {quantity} = {sub_total}")
print(f"Total price: {total_price}")
# 统计销售数量
for commodity, quantity in self.shopping_list:
commodity.quantity += quantity
# 定义一些商品
commodity1 = Commodity("soap", "A1001", 10, 100)
commodity2 = Commodity("pen", "A1002", 5, 200)
# 创建购物者并购买商品
shopper = Shopper()
shopper.add_item(commodity1, 2)
shopper.add_item(commodity2, 3)
# 打印购物清单并统计销售数量
shopper.print_receipt()
print(commodity1.quantity)
print(commodity2.quantity)
```
运行结果:
```
soap x 2 = 20
pen x 3 = 15
Total price: 35
102
203
```