设计一个处理单价为5角钱的饮料的自动售货机程序,相应规格说明如下: 若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。(每次只投入一个硬币,只押下一种饮料的按钮) 如投入5角的硬币,按下按钮后,总有饮料送出。 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。 若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币的代码,用java实现
时间: 2024-03-13 22:44:44 浏览: 409
以下是一个处理单价为5角钱的饮料的自动售货机程序的Java实现,实现了相应规格说明:
```java
public class VendingMachine {
private int change = 0; // 零钱数量,初始为0
public void buyDrink(String drink) {
if (change < 5) { // 如果没有5角钱零钱,需要找零
System.out.println("零钱找完");
return;
}
if (drink.equals("橙汁")) {
System.out.println("送出橙汁");
} else if (drink.equals("啤酒")) {
System.out.println("送出啤酒");
}
change -= 5; // 5角钱零钱数量减1
}
public boolean insertCoin(double coin) {
if (coin == 0.5 || coin == 1) {
change += 5; // 投入5角钱或1元钱,零钱数量加1
return true;
} else {
System.out.println("不支持此种硬币");
return false;
}
}
public void start() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请投入5角或1元硬币:");
double coin = scanner.nextDouble();
if (!insertCoin(coin)) {
continue;
}
System.out.print("请选择饮料:橙汁/啤酒");
String drink = scanner.next();
buyDrink(drink);
if (change == 0) {
System.out.println("零钱找完");
return;
}
}
}
public static void main(String[] args) {
VendingMachine vendingMachine = new VendingMachine();
vendingMachine.start();
}
}
```
使用时,可以创建一个`VendingMachine`对象,通过调用`start()`方法启动自动售货机程序,程序会循环等待用户投入硬币和选择饮料,如果没有零钱找,则红灯亮,需要投入1元钱硬币。如果有零钱找,则红灯不亮,投入1元钱硬币后能够找回5角钱硬币,同时送出饮料。
阅读全文