Создание Автомата с Напитками java
Всем привет. Помогите исправить. Не могу понять, как прописать чтоб в конце подсчитывало сумму и названия выбранных напитков (Например: Вы заказали 5 напитков. Общая стоимость - 200). А так же сканер позволяет вводить только один напиток.
инструменты для использования:
1) enum (напитки)
2) константы (цены)
3) static (общая стоимость)
4) switch (выбор напитка)
Задание:
#1 сделайте enum DrinksMachine, умеющего делать КОФЕ, ЧАЙ, ЛИМОНАД, МОХИТО, МИНЕРАЛКУ, КОКА_КОЛУ;
#2 Сделайте класс Drinks, где константами задайте цену напитку;
#3 Произведите подсчет количества изготовленных напитков и общей суммы, которую должен заплатить клиент;
#4 Сделайте способ приготовления каждого напитка;
#5 Сделайте switch-case оператор, который будет производить напиток (вызывая соответствующий метод) в зависимости от выбора клиента;
#6 Разместите возможность выбора напитка для пользователя и в зависимости от выбора делайте ему напиток;
#7 Пользователь должен иметь возможность заказать несколько напитков
#8 И наконец клиент должен увидеть, сколько денег он должен заплатить;
Мое Решение:
Вот enum:
COFFEE("Кофе"),
TEA("Чай"),
LEMONADE("Лимонад"),
MOJITO("Мохито"),
MINERAL("Минералка"),
COLA("Кока-кола");
private String title;
DrinksMachine(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
}
Вот клас Drinks:
public class Drinks {
final double coffee = 19.99;
final double tea = 11.99;
final double lemonade = 15.00;
final double mojito = 29.50;
final double mineral = 9.99;
final double cola = 10.00;
public double getCoffee() {
return coffee;
}
public double getTea() {
return tea;
}
public double getLemonade() {
return lemonade;
}
public double getMojito() {
return mojito;
}
public double getMineral() {
return mineral;
}
public double getCola() {
return cola;
}
}
public class Drinks {
final double coffee = 19.99;
final double tea = 11.99;
final double lemonade = 15.00;
final double mojito = 29.50;
final double mineral = 9.99;
final double cola = 10.00;
public double getCoffee() {
return coffee;
}
public double getTea() {
return tea;
}
public double getLemonade() {
return lemonade;
}
public double getMojito() {
return mojito;
}
public double getMineral() {
return mineral;
}
public double getCola() {
return cola;
}
}
public class Drinks {
final double coffee = 19.99;
final double tea = 11.99;
final double lemonade = 15.00;
final double mojito = 29.50;
final double mineral = 9.99;
final double cola = 10.00;
public double getCoffee() {
return coffee;
}
public double getTea() {
return tea;
}
public double getLemonade() {
return lemonade;
}
public double getMojito() {
return mojito;
}
public double getMineral() {
return mineral;
}
public double getCola() {
return cola;
}
}
Вот main:
public class Main {
public static void main(String[] args) {
runApp();
System.out.println("Колличество напитков: " + DrinkPreparing.getCounter());
}
public static void runApp() {
Scanner scanner = new Scanner(System.in);
DrinksMachine[] drinkTypes = DrinksMachine.values();
DrinksMachine userDrinkType = null;
System.out.println("count license: " + DrinkPreparing.getCounter());
while (true) {
System.out.println("Please enter drink type from list: " + Arrays.toString(drinkTypes));
String userValue = scanner.nextLine();
userValue = userValue.toUpperCase();
for (DrinksMachine drinkType : drinkTypes) {
if (drinkType.toString().equals(userValue)) {
userDrinkType = DrinksMachine.valueOf(userValue);
break;
}
}
if (userDrinkType != null) {
break;
}
}
switch (userDrinkType) {
case COFFEE: {
new DrinkPreparing();
System.out.println("Возьмите Ваш " + DrinksMachine.COFFEE.getTitle());
System.out.println("Стоимость: ");
}
case TEA: {
new DrinkPreparing();
System.out.println("Возьмите Ваш " + DrinksMachine.TEA.getTitle());
break;
}
case LEMONADE: {
new DrinkPreparing();
System.out.println("Возьмите Ваш " + DrinksMachine.LEMONADE.getTitle());
break;
}
case MOJITO: {
new DrinkPreparing();
System.out.println("Возьмите Ваш " + DrinksMachine.MOJITO.getTitle());
break;
}
case MINERAL: {
new DrinkPreparing();
System.out.println("Возьмите Ваш " + DrinksMachine.MINERAL.getTitle());
System.out.println("Стоимость: ");
break;
}
case COLA: {
new DrinkPreparing();
System.out.println("Возьмите Ваш " + DrinksMachine.COLA.getTitle());
System.out.println("Стоимость: ");
break;
}
}
}
}
Счетчик:
public class DrinkPreparing {
private static int counter;
public DrinkPreparing() {
counter++;
}
public static int getCounter() {
return counter;
}
}
Источник: Stack Overflow на русском