1.完成下面的程序设计: 设计一个处理单价为5角钱的饮料的自动售货机程序,相应规格说明如下: 若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。(每次只投入一个硬币,只押下一种饮料的按钮) 如投入5角的硬币,按下按钮后,总有饮料送出。 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。 若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。
时间: 2024-03-11 11:46:49 浏览: 128
以下是一个简单的自动售货机程序设计,实现了上述的功能要求:
```python
class VendingMachine:
def __init__(self):
self.balance = 0
self.change = 0
self.change_available = False
def insert_coin(self, coin):
if coin == 0.5 or coin == 1:
self.balance += coin
return True
else:
return False
def select_product(self, product):
if product == "orange_juice" and self.balance >= 0.5:
self.balance -= 0.5
self.change = 0
return True
elif product == "beer" and self.balance >= 0.5:
self.balance -= 0.5
self.change = 0.5
return True
elif product == "beer" and self.balance == 0.25 and self.change_available:
self.balance = 0
self.change_available = False
return True
else:
return False
def make_change(self):
if self.change_available:
self.balance -= 1
self.change_available = False
return self.change
else:
return 0
def return_coin(self):
coin = self.balance
self.balance = 0
return coin
def has_change(self):
return self.change_available
def set_change(self):
self.change_available = True
```
使用时,可以按照以下步骤:
```python
vm = VendingMachine()
# 插入硬币
vm.insert_coin(0.5)
# 选择饮料
if vm.select_product("orange_juice"):
print("Enjoy your orange juice!")
else:
print("Please insert 50 cents.")
# 如果找不了零,再插入1元硬币
if not vm.has_change():
vm.insert_coin(1)
# 再次选择饮料
if vm.select_product("beer"):
print("Enjoy your beer and your 50 cents change!")
else:
print("Please insert 50 cents.")
# 查看是否有零钱找
if vm.has_change():
vm.make_change()
else:
print("Sorry, no change available.")
# 退回硬币
coin = vm.return_coin()
print("You got", coin, "cents back.")
```
阅读全文