pyhton实现自动贩卖机
时间: 2024-10-09 20:05:28 浏览: 31
Python实现自动贩卖机的基本步骤可以分为几个部分:
1. **设计模块**:首先,我们需要定义一些核心模块,如`Product`(商品类)、`VendingMachine`(自动贩卖机类)以及`CoinHandler`(硬币处理器类)。
```python
class Product:
def __init__(self, name, price):
self.name = name
self.price = price
class VendingMachine:
def __init__(self, products):
self.products = products
self.stock = {product.name: product for product in products}
class CoinHandler:
def insert_coin(self, coin_value):
# 硬币处理逻辑
```
2. **交互界面**:创建用户界面,让顾客选择商品并插入硬币。
```python
def select_product(machine):
while True:
choice = input("请输入你要购买的商品编号 (退出请输入 'q'):")
if choice == 'q':
break
try:
selected_product = machine.stock[choice]
return selected_product
except KeyError:
print(f"抱歉,商品{choice}不存在.")
def insert_coins(coin_handler):
inserted_coins = 0
while True:
coin_value = int(input("请输入投入的硬币金额:"))
if coin_handler.insert_coin(coin_value):
inserted_coins += coin_value
else:
print("无效的硬币,请继续投币...")
if inserted_coins >= selected_product.price:
break
return inserted_coins
```
3. **交易逻辑**:检查库存和付款,完成交易。
```python
def buy_product(vending_machine, product, inserted_coins):
if not vending_machine.has_stock(product):
print("该商品已售罄。")
return
if inserted_coins < product.price:
print("硬币不足,请补足费用。")
return
vending_machine.sell_product(product)
change = inserted_coins - product.price
if change > 0:
print(f"找零 {change} 元。")
else:
print("无需找零。")
# 使用示例
machine = VendingMachine([Product('可乐', 3), Product('薯片', 2)])
handler = CoinHandler()
selected_product = select_product(machine)
inserted_coins = insert_coins(handler)
buy_product(machine, selected_product, inserted_coins)
```
阅读全文