diff --git a/Restaurantverwaltung/.classpath b/Restaurantverwaltung/.classpath index 639689c..9e7b461 100644 --- a/Restaurantverwaltung/.classpath +++ b/Restaurantverwaltung/.classpath @@ -1,10 +1,6 @@ - - - - - + diff --git a/Restaurantverwaltung/.settings/org.eclipse.jdt.core.prefs b/Restaurantverwaltung/.settings/org.eclipse.jdt.core.prefs index a9bbf2d..3c6dfcf 100644 --- a/Restaurantverwaltung/.settings/org.eclipse.jdt.core.prefs +++ b/Restaurantverwaltung/.settings/org.eclipse.jdt.core.prefs @@ -1,8 +1,8 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=22 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=22 +org.eclipse.jdt.core.compiler.compliance=21 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate @@ -11,4 +11,4 @@ org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=22 +org.eclipse.jdt.core.compiler.source=21 diff --git a/Restaurantverwaltung/src/Bestellsystem.java b/Restaurantverwaltung/src/Bestellsystem.java new file mode 100644 index 0000000..2d83726 --- /dev/null +++ b/Restaurantverwaltung/src/Bestellsystem.java @@ -0,0 +1,117 @@ +import java.util.Scanner; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class Bestellsystem { + + private static List bestellungen = new ArrayList<>(); + private static Scanner scanner = new Scanner(System.in); + + + public static void erstelleBestellung() { + System.out.print("Bitte gib die Tischnummer ein: "); + String tischNummer = scanner.nextLine(); + + Bestellung bestellung = new Bestellung(tischNummer); + + while (true) { + System.out.print("Bitte bestelle ein Gericht (oder 'fertig', um abzuschließen): "); + String gericht = scanner.nextLine(); + + if (gericht.equalsIgnoreCase("fertig")) { + break; + } + + bestellung.addGericht(gericht); + + while (true) { + System.out.print("Möchte der Kunde noch einen Zusatzwunsch für dieses Gericht? (ja/nein): "); + String wunschAntwort = scanner.nextLine(); + + if (wunschAntwort.equalsIgnoreCase("ja")) { + System.out.print("Bitte gib den Zusatzwunsch ein (z.B. 'keine Tomaten'): "); + String zusatzWunsch = scanner.nextLine(); + bestellung.addZusatzWunsch(zusatzWunsch); + } else if (wunschAntwort.equalsIgnoreCase("nein")) { + break; + } + } + } + + + + bestellungen.add(bestellung); + System.out.println("Bestellung wurde erfolgreich aufgenommen."); + System.out.println(bestellung.getBestellungDetails()); + } + + public static void speichereBestellung(Bestellung bestellung) { + try { + + File file = new File("Bestellungen.txt"); + FileWriter writer = new FileWriter(file, true); + writer.write(bestellung.getBestellungDetails()); + writer.write("\n--------------------------\n"); + writer.close(); + System.out.println("Bestellung wurde erfolgreich gespeichert."); + } catch (IOException e) { + System.out.println("Fehler beim Speichern der Bestellung: " + e.getMessage()); + } + } + + public static void ladeUndZeigeBestellungen() { + try { + FileReader fileReader = new FileReader("Bestellungen.txt"); + BufferedReader bufferedReader = new BufferedReader(fileReader); + String zeile; + + + while ((zeile = bufferedReader.readLine()) != null) { + System.out.println(zeile); + } + + bufferedReader.close(); + } catch (IOException e) { + System.out.println("Fehler beim Laden der Bestellungen: " + e.getMessage()); + } + } + + + public static void zeigeAlleBestellungen() { + if (bestellungen.isEmpty()) { + System.out.println("Keine Bestellungen vorhanden."); + } else { + for (Bestellung bestellung : bestellungen) { + System.out.println(bestellung.getBestellungDetails()); + } + } + } + + public static void main(String[] args) { + while (true) { + System.out.println("\n--- Restaurant Bestellsystem ---"); + System.out.println("1. Bestellung aufnehmen"); + System.out.println("2. Alle Bestellungen anzeigen"); + System.out.println("3. Beenden"); + + System.out.print("Bitte wähle eine Option: "); + String option = scanner.nextLine(); + + if (option.equals("1")) { + erstelleBestellung(); + } else if (option.equals("2")) { + zeigeAlleBestellungen(); + } else if (option.equals("3")) { + System.out.println("Programm wird beendet."); + break; + } else { + System.out.println("Ungültige Eingabe. Bitte versuche es erneut."); + } + } + } +} diff --git a/Restaurantverwaltung/src/Bestellung.java b/Restaurantverwaltung/src/Bestellung.java new file mode 100644 index 0000000..e957dfc --- /dev/null +++ b/Restaurantverwaltung/src/Bestellung.java @@ -0,0 +1,41 @@ +import java.util.ArrayList; +import java.util.List; + +public class Bestellung { + private String tischNummer; + private List bestellteGerichte; + private List zusatzWuensche; + + public Bestellung(String tischNummer) { + this.tischNummer = tischNummer; + this.bestellteGerichte = new ArrayList<>(); + this.zusatzWuensche = new ArrayList<>(); + } + + public void addGericht(String gericht) { + this.bestellteGerichte.add(gericht); + } + + public void addZusatzWunsch(String wunsch) { + this.zusatzWuensche.add(wunsch); + } + + + public String getBestellungDetails() { + StringBuilder details = new StringBuilder(); + details.append("Tisch Nummer: ").append(tischNummer).append("\nBestellte Gerichte:\n"); + + for (String gericht : bestellteGerichte) { + details.append("- ").append(gericht).append("\n"); + } + + if (!zusatzWuensche.isEmpty()) { + details.append("Zusätzliche Wünsche:\n"); + for (String wunsch : zusatzWuensche) { + details.append("- ").append(wunsch).append("\n"); + } + } + + return details.toString(); + } +} diff --git a/Restaurantverwaltung/src/Bestellungen.txt b/Restaurantverwaltung/src/Bestellungen.txt new file mode 100644 index 0000000..e69de29 diff --git a/Restaurantverwaltung/src/RestaurantManagement.java b/Restaurantverwaltung/src/RestaurantManagement.java index ba45311..69232c9 100644 --- a/Restaurantverwaltung/src/RestaurantManagement.java +++ b/Restaurantverwaltung/src/RestaurantManagement.java @@ -1,5 +1,4 @@ - public class RestaurantManagement { public static void main(String[] args) { SystemController systemController = new SystemController(); diff --git a/Restaurantverwaltung/src/SystemController.java b/Restaurantverwaltung/src/SystemController.java index 548c73f..4486f9a 100644 --- a/Restaurantverwaltung/src/SystemController.java +++ b/Restaurantverwaltung/src/SystemController.java @@ -1,5 +1,7 @@ +import java.util.Scanner; +import java.util.Map; +import java.util.HashMap; import java.io.*; -import java.util.*; class SystemController { private Scanner scanner = new Scanner(System.in); @@ -9,20 +11,17 @@ class SystemController { private Menu menu = new Menu(); public SystemController() { - // Benutzer aus Datei laden loadUsersFromFile(); } public void startSystem() { System.out.println("Willkommen im Restaurant Management System!"); System.out.println("Bitte loggen Sie sich ein: "); - - System.out.println("Username --------------->"); + System.out.print("Username ---------------> "); String username = scanner.nextLine(); - - System.out.println("Passwort --------------->"); - + + System.out.print("Passwort ---------------> "); String password = scanner.nextLine(); User user = authenticate(username, password); @@ -43,14 +42,16 @@ class SystemController { private void displayMainMenu(User user) { boolean running = true; while (running) { - System.out.println("Hauptmenü:"); + System.out.println("\n--- Hauptmenü ---"); System.out.println("1. Bestand ansehen"); System.out.println("2. Neuer Nutzer erstellen"); System.out.println("3. Menü anzeigen"); - System.out.println("4. Beenden"); + System.out.println("4. Bestellungen verwalten"); + System.out.println("5. Beenden"); + System.out.print("Bitte wähle eine Option: "); int choice = scanner.nextInt(); - scanner.nextLine(); + scanner.nextLine(); // Eingabepuffer leeren switch (choice) { case 1 -> inventory.viewStock(); @@ -58,18 +59,51 @@ class SystemController { if (user.role == Role.MANAGER) { createUser(); } else { - System.out.println("Keine Rechte du hs"); + System.out.println("Keine Rechte, um neue Nutzer zu erstellen."); } } case 3 -> menu.displayMenu(inventory); - case 4 -> running = false; - default -> System.out.println("Ungültige Auswahl."); + case 4 -> manageOrders(); // Übergibt an Bestellsystem + case 5 -> { + running = false; + System.out.println("System wird beendet. Auf Wiedersehen!"); + } + default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut."); + } + } + } + + private void manageOrders() { + boolean managingOrders = true; + while (managingOrders) { + System.out.println("\n--- Bestellungen verwalten ---"); + System.out.println("1. Bestellung aufnehmen"); + System.out.println("2. Alle Bestellungen anzeigen"); + System.out.println("3. Bestellungen aus Datei anzeigen"); + System.out.println("4. Zurück zum Hauptmenü"); + + System.out.print("Bitte wähle eine Option: "); + int choice = scanner.nextInt(); + scanner.nextLine(); // Eingabepuffer leeren + + switch (choice) { + case 1 -> { + Bestellsystem.erstelleBestellung(); // Neue Bestellung erstellen + } + case 2 -> { + Bestellsystem.zeigeAlleBestellungen(); // Bestellungen im Speicher anzeigen + } + case 3 -> { + Bestellsystem.ladeUndZeigeBestellungen(); // Bestellungen aus Datei anzeigen + } + case 4 -> managingOrders = false; + default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut."); } } } private void createUser() { - System.out.println("Neuen Nutzer erstellen:"); + System.out.println("\n--- Neuen Nutzer erstellen ---"); System.out.print("Benutzername: "); String username = scanner.nextLine(); System.out.print("Passwort: "); @@ -119,4 +153,4 @@ class SystemController { users.put("Dimitry", defaultManager); saveUserToFile(defaultManager); } -} \ No newline at end of file +} diff --git a/Restaurantverwaltung/src/users.txt b/Restaurantverwaltung/src/users.txt index 4863871..7be35a6 100644 --- a/Restaurantverwaltung/src/users.txt +++ b/Restaurantverwaltung/src/users.txt @@ -1,3 +1,3 @@ Dimitry:1234:MANAGER -Abbas Kronboch:Araber:SERVICE +Abbas Kronboch:1234:SERVICE Ananas Kopf:Bananenbieger:KITCHEN