Vollständiges Bestellsystem implementiert (Bestellungen aufgeben,

anzeigen usw.)
master
PC 2024-12-10 22:15:21 +01:00
parent c813b1efd7
commit 0faefb5179
8 changed files with 212 additions and 25 deletions

View File

@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-22">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-21"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -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

View File

@ -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<Bestellung> 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.");
}
}
}
}

View File

@ -0,0 +1,41 @@
import java.util.ArrayList;
import java.util.List;
public class Bestellung {
private String tischNummer;
private List<String> bestellteGerichte;
private List<String> 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();
}
}

View File

@ -1,5 +1,4 @@
public class RestaurantManagement {
public static void main(String[] args) {
SystemController systemController = new SystemController();

View File

@ -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);
}
}
}

View File

@ -1,3 +1,3 @@
Dimitry:1234:MANAGER
Abbas Kronboch:Araber:SERVICE
Abbas Kronboch:1234:SERVICE
Ananas Kopf:Bananenbieger:KITCHEN