diff --git a/VendingMachine.java b/VendingMachine.java new file mode 100644 index 0000000..8d84e58 --- /dev/null +++ b/VendingMachine.java @@ -0,0 +1,190 @@ +package apo; + +import java.util.ArrayList; +import java.util.Scanner; + +public class VendingMachine { + private final ArrayList drinks = new ArrayList<>(); + private final ArrayList sweets = new ArrayList<>(); + private final ArrayList hotMeals = new ArrayList<>(); + + private final Scanner scanner = new Scanner(System.in); + + public void init() { + initProducts(); + start(); + } + + + private void start() { + System.out.println("======= MENU ======="); + + System.out.println("- NAPOJE -"); + for (Drink drink : drinks) { + System.out.println(drink.getName() + ", " + drink.getPrice() + "zl"); + } + System.out.println(); + + System.out.println("- SLODYCZE -"); + for (Sweets sweet : sweets) { + System.out.println(sweet.getName() + ", " + sweet.getPrice() + "zl"); + } + System.out.println(); + + System.out.println("- CIEPLE POSILKI -"); + for (HotMeals hotMeal : hotMeals) { + System.out.println(hotMeal.getName() + ", " + hotMeal.getPrice() + "zl"); + } + System.out.println(); + + System.out.println("Prosze wybrac produkt"); + String userChoice = scanner.nextLine(); + + paymentMethod(userChoice); + } + + private void paymentMethod(String userChoice) { + String payment; + switch (userChoice) { + case "Coca-cola" -> { + System.out.println("WYBRANO: " + userChoice + ", " + drinks.get(0).getPrice()); + System.out.println("Prosze wybrac metode platnosci: GOTOWKA / KARTA"); + payment = scanner.nextLine(); + if (payment.equals("gotowka")) { + double cashFromUser = scanner.nextDouble(); + cash(cashFromUser, drinks.get(0).getPrice()); + } else if (payment.equals("karta")) { + creditCard(); + } + } + case "Sprite" -> { + System.out.println("WYBRANO: " + userChoice + ", " + drinks.get(1).getPrice()); + System.out.println("Prosze wybrac metode platnosci: GOTOWKA / KARTA"); + payment = scanner.nextLine(); + if (payment.equals("gotowka")) { + double cashFromUser = scanner.nextDouble(); + cash(cashFromUser, drinks.get(1).getPrice()); + } else if (payment.equals("karta")) { + creditCard(); + } + } + case "Woda" -> { + System.out.println("WYBRANO: " + userChoice + ", " + drinks.get(2).getPrice()); + System.out.println("Prosze wybrac metode platnosci: GOTOWKA / KARTA"); + payment = scanner.nextLine(); + if (payment.equals("gotowka")) { + double cashFromUser = scanner.nextDouble(); + cash(cashFromUser, drinks.get(2).getPrice()); + } else if (payment.equals("karta")) { + creditCard(); + } + } + case "Snickers" -> { + System.out.println("WYBRANO: " + userChoice + ", " + sweets.get(0).getPrice()); + System.out.println("Prosze wybrac metode platnosci: GOTOWKA / KARTA"); + payment = scanner.nextLine(); + if (payment.equals("gotowka")) { + double cashFromUser = scanner.nextDouble(); + cash(cashFromUser, sweets.get(0).getPrice()); + } else if (payment.equals("karta")) { + creditCard(); + } + } + case "Bounty" -> { + System.out.println("WYBRANO: " + userChoice + ", " + sweets.get(1).getPrice()); + System.out.println("Prosze wybrac metode platnosci: GOTOWKA / KARTA"); + payment = scanner.nextLine(); + if (payment.equals("gotowka")) { + double cashFromUser = scanner.nextDouble(); + cash(cashFromUser, sweets.get(1).getPrice()); + } else if (payment.equals("karta")) { + creditCard(); + } + } + case "Lion" -> { + System.out.println("WYBRANO: " + userChoice + ", " + sweets.get(2).getPrice()); + System.out.println("Prosze wybrac metode platnosci: GOTOWKA / KARTA"); + payment = scanner.nextLine(); + if (payment.equals("gotowka")) { + double cashFromUser = scanner.nextDouble(); + cash(cashFromUser, sweets.get(2).getPrice()); + } else if (payment.equals("karta")) { + creditCard(); + } + } + case "Spaghetti" -> { + System.out.println("WYBRANO: " + userChoice + ", " + hotMeals.get(0).getPrice()); + System.out.println("Prosze wybrac metode platnosci: GOTOWKA / KARTA"); + payment = scanner.nextLine(); + if (payment.equals("gotowka")) { + double cashFromUser = scanner.nextDouble(); + cash(cashFromUser, hotMeals.get(0).getPrice()); + } else if (payment.equals("karta")) { + creditCard(); + } + System.out.println("W magazynie zostało: " + updateStorage()); + } + case "Zupa" -> { + System.out.println("WYBRANO: " + userChoice + ", " + hotMeals.get(1).getPrice()); + System.out.println("Prosze wybrac metode platnosci: GOTOWKA / KARTA"); + payment = scanner.nextLine(); + if (payment.equals("gotowka")) { + double cashFromUser = scanner.nextDouble(); + cash(cashFromUser, hotMeals.get(1).getPrice()); + } else if (payment.equals("karta")) { + creditCard(); + } + System.out.println("W magazynie zostało: " + updateStorage()); + } + case "Frytki z kurczakiem" -> { + System.out.println("WYBRANO: " + userChoice + ", " + hotMeals.get(2).getPrice()); + System.out.println("Prosze wybrac metode platnosci: GOTOWKA / KARTA"); + payment = scanner.nextLine(); + if (payment.equals("gotowka")) { + double cashFromUser = scanner.nextDouble(); + cash(cashFromUser, hotMeals.get(2).getPrice()); + } else if (payment.equals("karta")) { + creditCard(); + } + System.out.println("W magazynie zostało: " + updateStorage()); + } + default -> System.out.println("NIEZNANY PRODUKT!"); + } + } + + private int updateStorage() { + int storage = 100; + return storage - 1; + } + + private void cash(double cashFromUser, double price) { + if (cashFromUser == price) { + System.out.println("GOTOWKA PRZYJETA!"); + System.out.println("Prosze odebrac produkt"); + } else if (cashFromUser < price) { + System.out.println("Za malo gotowki!"); + } else { + System.out.println("Reszta: " + (cashFromUser - price) + "zl"); + } + + } + + private void creditCard() { + System.out.println("TRANSAKCJA ZAAKCEPTOWANA!"); + System.out.println("Prosze odebrac produkt"); + } + + private void initProducts() { + drinks.add(new Drink("Coca-cola", 3.99, 500)); + drinks.add(new Drink("Sprite", 2.99, 330)); + drinks.add(new Drink("Woda", 1.49, 500)); + + sweets.add(new Sweets("Snickers", 1.99)); + sweets.add(new Sweets("Bounty", 2.49)); + sweets.add(new Sweets("Lion", 1.49)); + + hotMeals.add(new HotMeals("Spaghetti", 9.99)); + hotMeals.add(new HotMeals("Zupa", 8.99)); + hotMeals.add(new HotMeals("Frytki z kurczakiem", 19.99)); + } +}