自动售货机投币编程怎么写

时间:2025-01-28 06:01:17 网络游戏

自动售货机的投币编程可以通过多种编程语言实现,例如Python、VHDL、Verilog等。下面我将分别提供Python和VHDL的示例代码。

Python示例代码

```python

商品信息字典,键为商品编号,值为包含商品名称和价格的字典

goods = {

"1": {"name": "可乐", "price": 3},

"2": {"name": "薯片", "price": 5},

"3": {"name": "巧克力", "price": 8}

}

记录投币金额

total_money = 0

def display_goods():

"""显示商品信息"""

print("商品列表:")

for code, info in goods.items():

print(f"{code}: {info['name']}, 价格: {info['price']} 元")

def insert_money():

"""投币功能"""

global total_money

while True:

try:

money = float(input("请投入硬币或纸币(输入金额,输入负数或非数字结束投币): "))

if money < 0:

break

total_money += money

except ValueError:

print("请输入有效的金额")

def select_product(product_code):

"""选择商品"""

if product_code in goods:

product = goods[product_code]

print(f"您选择了 {product['name']},价格: {product['price']} 元")

if total_money >= product['price']:

total_money -= product['price']

print(f"找零: {total_money} 元")

这里可以添加出货逻辑

else:

print("余额不足,请继续投币")

else:

print("商品编号无效")

def main():

display_goods()

insert_money()

while total_money > 0:

product_code = input("请选择商品编号(输入Q结束): ")

if product_code.upper() == 'Q':

break

select_product(product_code)

if __name__ == "__main__":

main()

```

VHDL示例代码