请写一个面向对象的自动贩卖机的程序,实现商品的购买,商品出货等操作。要至少包含三个类
时间: 2024-05-24 17:11:16 浏览: 136
:1. VendingMachine:自动售货机类,包含属性有:商品列表、硬币列表、售货机状态等,包含方法有:添加商品、添加硬币、购买商品、退款等。
2. Product:商品类,包含属性有:商品名称、价格等,包含方法有:获取商品名称、获取商品价格等。
3. Coin:硬币类,包含属性有:硬币面额、硬币数量等,包含方法有:获取硬币面额、获取硬币数量等。
下面是一个简单的示例代码:
class VendingMachine:
def __init__(self):
self.products = [] # 商品列表
self.coins = [] # 硬币列表
self.status = 'off' # 售货机状态
def add_product(self, product):
self.products.append(product)
def add_coin(self, coin):
self.coins.append(coin)
def buy_product(self, product_index, coin_index):
if self.status == 'off':
print('售货机已关闭')
return
product = self.products[product_index]
coin = self.coins[coin_index]
if product.price > coin.denomination:
print('硬币面额不足')
else:
print('购买成功')
self.products.pop(product_index)
self.coins.pop(coin_index)
def refund(self, coin_index):
coin = self.coins[coin_index]
print('退款成功')
self.coins.pop(coin_index)
class Product:
def __init__(self, name, price):
self.name = name
self.price = price
def get_name(self):
return self.name
def get_price(self):
return self.price
class Coin:
def __init__(self, denomination, quantity):
self.denomination = denomination
self.quantity = quantity
def get_denomination(self):
return self.denomination
def get_quantity(self):
return self.quantity
# 示例用法
vm = VendingMachine()
p1 = Product('可乐', 3)
p2 = Product('雪碧', 2)
vm.add_product(p1)
vm.add_product(p2)
c1 = Coin(1, 10)
c2 = Coin(5, 5)
vm.add_coin(c1)
vm.add_coin(c2)
vm.buy_product(0, 0) # 购买可乐,投入1元硬币
vm.buy_product(1, 1) # 购买雪碧,投入5元硬币
vm.refund(1) # 退还5元硬币
阅读全文