mainmnu
unknown
java
a year ago
5.4 kB
4
Indexable
package assignments.assignment3; import java.util.ArrayList; import java.util.NoSuchElementException; import java.util.Scanner; import assignments.assignment3.payment.DebitPayment; import assignments.assignment3.payment.CreditCardPayment; import assignments.assignment3.systemCLI.AdminSystemCLI; import assignments.assignment3.systemCLI.CustomerSystemCLI; import assignments.assignment3.systemCLI.UserSystemCLI; public class MainMenu { private static final Scanner input = new Scanner(System.in); // Keep this scanner open private final LoginManager loginManager; private static ArrayList<Restaurant> restaurants = new ArrayList<>(); private static ArrayList<User> users = new ArrayList<>(); public MainMenu(LoginManager loginManager) { this.loginManager = loginManager; initUsers(); } public static void main(String[] args) { AdminSystemCLI adminCLI = new AdminSystemCLI(restaurants); CustomerSystemCLI customerCLI = new CustomerSystemCLI(restaurants, null); LoginManager loginManager = new LoginManager(adminCLI, customerCLI); new MainMenu(loginManager).run(); } public void run() { try { printHeader(); boolean exit = false; while (!exit) { startMenu(); try { int choice = Integer.parseInt(input.nextLine().trim()); switch (choice) { case 1: login(); break; case 2: exit = true; System.out.println("Terima kasih telah menggunakan DepeFood!"); break; default: System.out.println("Pilihan tidak valid, silakan coba lagi."); } } catch (NumberFormatException e) { System.out.println("Silakan masukkan angka yang valid."); } catch (NoSuchElementException e) { System.out.println("No further input available."); exit = true; // Exit if no more input is available } } } finally { input.close(); // Ensure the scanner is closed only once when all operations are done } } private void login() { System.out.println("\nSilakan Login:"); System.out.print("Nama: "); String name = input.nextLine(); System.out.print("Nomor Telepon: "); String phone = input.nextLine(); User user = getUser(name, phone); if (user != null) { System.out.println("Selamat Datang " + user.getNama() + "!"); UserSystemCLI userSystem = loginManager.getSystem(user.getRole()); if (userSystem instanceof CustomerSystemCLI) { ((CustomerSystemCLI) userSystem).setUser(user); } userSystem.run(); } else { System.out.println("Pengguna tidak ditemukan atau data salah."); } } private User getUser(String name, String phone) { return users.stream() .filter(u -> u.getNama().equalsIgnoreCase(name) && u.getNomorTelepon().equals(phone)) .findFirst() .orElse(null); } private static void printHeader() { System.out.println("\n>>=======================================<<"); System.out.println("|| ___ ___ _ ||"); System.out.println("||| . \\ ___ ___ ___ | __>___ ___ _| |||"); System.out.println("||| | |/ ._>| . \\/ ._>| _>/ . \\/ . \\/ . |||"); System.out.println("|||___/\\___.| _/\\___.|_| \\___/\\___/\\___|||"); System.out.println("|| |_| ||"); System.out.println(">>=======================================<<"); } private void startMenu() { System.out.println("Selamat datang di DepeFood!"); System.out.println("--------------------------------------------"); System.out.println("Pilih menu:"); System.out.println("1. Login"); System.out.println("2. Keluar"); System.out.println("--------------------------------------------"); System.out.print("Pilihan menu: "); } private static void initUsers() { users.add(new User("Thomas N", "9928765403", "thomas.n@gmail.com", "P", "Customer", new DebitPayment(), 500000)); users.add(new User("Sekar Andita", "089877658190", "dita.sekar@gmail.com", "B", "Customer", new CreditCardPayment(), 2000000)); users.add(new User("Sofita Yasusa", "084789607222", "sofita.susa@gmail.com", "T", "Customer", new DebitPayment(), 750000)); users.add(new User("Dekdepe G", "080811236789", "ddp2.gampang@gmail.com", "S", "Customer", new CreditCardPayment(), 1800000)); users.add(new User("Aurora Anum", "087788129043", "a.anum@gmail.com", "U", "Customer", new DebitPayment(), 650000)); users.add(new User("Admin", "123456789", "admin@gmail.com", "-", "Admin", new CreditCardPayment(), 0)); users.add(new User("Admin Baik", "9123912308", "admin.b@gmail.com", "-", "Admin", new CreditCardPayment(), 0)); } }
Editor is loading...
Leave a Comment