Моя задача создать симулятор кофемашины, используя методы. Правила заключаются в том, что в автомате изначально есть ингредиенты, и пользователь может покупать кофе, заполнять его ингредиентами или снимать с него деньги. Программа должна отображать текущее состояние машины, запрашивать у пользователя действие, которое он хочет, выполнять действие, а затем отображать состояние машины после действия. Я решил, что мне нужно использовать непустые методы, а поскольку метод может возвращать только одну переменную, я выбрал массив в качестве возвращаемого значения. Но я не знаю, как использовать этот массив для отображения измененных ингредиентов после действия, выполненного пользователем. Банкомат Я выполнил вариант покупки, когда я найду решение, остальные действия должны быть намного понятнее. Итак, вот что у меня получилось:
import java.util.Scanner;
public class CoffeeMachine {
public static void main(String[] args)
{
int waterAmount = 400;
int milkAmount = 540;
int beansAmount = 120;
int cupsAmount = 9;
int money = 550;
systemCheck(waterAmount, milkAmount, beansAmount, cupsAmount, money);
System.out.println("Write action (buy, fill, take): ");
String action = input.next();
switch (action){
case "buy":
buyDrink(waterAmount, milkAmount, beansAmount, cupsAmount, money);
break;
case "fill":
fillMachine();
break;
case "take":
getCash();
break;
default:
System.out.println("Wrong choice!");
}
systemCheck(waterAmount, milkAmount, beansAmount, cupsAmount, money);
}
public static void systemCheck(int water, int milk, int beans, int cups, int money){
System.out.println("The coffee machine has: ");
System.out.println(water + " of water");
System.out.println(milk + " of milk");
System.out.println(beans + " of coffee beans");
System.out.println(cups + " of disposable cups");
System.out.println(money + " of money");
}
public static int[] buyDrink(int water, int milk, int beans, int cups, int money){
Scanner in = new Scanner(System.in);
System.out.println("What do you want to buy? 1 - espresso, 2 - latte, 3 - cappuccino: ");
int choice = in.nextInt();
switch (choice) {
case 1:
if (water >= 250 && beans >= 16 && cups > 0){
water = water - 250;
beans = beans - 16;
money = money + 4;
cups = cups - 1;
}else
System.out.println("Not enough ingredients, fill the machine please");
break;
case 2:
if (water >= 350 && milk >= 75 && beans >= 20 && cups > 0){
water = water - 350;
milk = milk - 75;
beans = beans - 20;
money = money + 7;
cups = cups - 1;
} else
System.out.println("Not enough ingredients, fill the machine please");
break;
case 3:
if (water >= 200 && milk >= 100 && beans >= 12 && cups > 0){
water = water - 200;
milk = milk - 100;
beans = beans - 12;
cups = cups - 1;
} else
System.out.println("Not enough ingredients, fill the machine please");
break;
default:
System.out.println("Wrong choice!");
}
return new int[] {water, milk, beans, money, cups};
}
public static void fillMachine(){
}
public static void getCash(){
}
}