Das ganze Reservierungssystem implementiert.

master
PC 2025-01-11 17:25:23 +01:00
parent a0e53bef20
commit d1dd6486fb
5 changed files with 159 additions and 22 deletions

View File

@ -1,4 +1,4 @@
class Reservation {
public class Reservation implements Comparable<Reservation>{
private int tableNumber;
private String customerName;
@ -6,4 +6,24 @@ class Reservation {
this.tableNumber = tableNumber;
this.customerName = customerName;
}
}
public int getTableNumber() {
return tableNumber;
}
public void setTableNumber(int tableNumber) {
this.tableNumber = tableNumber;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
@Override
public int compareTo(Reservation other) {
return Integer.compare(this.tableNumber, other.tableNumber);
}
}

View File

@ -0,0 +1,77 @@
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ReservationManager {
private List<Reservation> reservations;
private final String filePath = "src/Reservations.txt";
public ReservationManager() {
reservations = new ArrayList<>();
loadReservations();
}
public void createReservation(int tableNumber, String customerName) {
Reservation reservation = new Reservation(tableNumber, customerName);
reservations.add(reservation);
saveReservations(); // Reservierungen nach jedem Erstellen speichern
}
public void editReservation(int tableNumber, String newCustomerName) {
for (Reservation reservation : reservations) {
if (reservation.getTableNumber() == tableNumber) {
reservation.setCustomerName(newCustomerName);
saveReservations(); // Reservierungen nach Bearbeitung speichern
break;
}
}
}
public void cancelReservation(int tableNumber) {
reservations.removeIf(reservation -> reservation.getTableNumber() == tableNumber);
saveReservations();
}
private void saveReservations() {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
for (Reservation reservation : reservations) {
writer.write(reservation.getTableNumber() + "," + reservation.getCustomerName());
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void loadReservations() {
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
String[] data = line.split(",");
int tableNumber = Integer.parseInt(data[0]);
String customerName = data[1];
Reservation reservation = new Reservation(tableNumber, customerName);
reservations.add(reservation);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public List<Reservation> getReservations() {
return reservations;
}
public void displayTableOverview() {
if (reservations.isEmpty()) {
System.out.println("Keine Reservierungen vorhanden.");
} else {
Collections.sort(reservations);
for (Reservation reservation : reservations) {
System.out.println("Tischnummer: " + reservation.getTableNumber() + " | Kundenname: " + reservation.getCustomerName());
}
}
}
}

View File

@ -0,0 +1,2 @@
1,Dimimtry
2,Ali und Arim

View File

@ -8,6 +8,7 @@ class SystemController {
public static Inventory inventory = new Inventory();
private Menu menu = new Menu();
private FinancialManager financialManager = new FinancialManager();
private ReservationManager reservationManager = new ReservationManager();
public SystemController() {
loadUsersFromFile();
@ -38,43 +39,80 @@ class SystemController {
return null;
}
private void displayMainMenu(User user) {
public void displayMainMenu(User user) {
boolean running = true;
while (running) {
inventory.loadStockFromFile();
System.out.println("\n--- Hauptmenü ---");
System.out.println("1. Bestand verwalten");
System.out.println("2. Neuer Nutzer erstellen");
System.out.println("3. Menü anzeigen");
System.out.println("4. Bestellungen verwalten");
System.out.println("5. Finanzbericht anzeigen");
System.out.println("6. Beenden");
System.out.println("6. Reservierungen verwalten");
System.out.println("7. Beenden");
System.out.print("Bitte wähle eine Option: ");
int choice = scanner.nextInt();
scanner.nextLine(); // Eingabepuffer leeren
scanner.nextLine();
switch (choice) {
case 1 -> manageInventory();
case 2 -> {
if (user.role == Role.MANAGER) {
createUser();
} else {
System.out.println("Keine Rechte, um neue Nutzer zu erstellen.");
}
}
case 2 -> { if (user.role == Role.MANAGER) { createUser(); } else { System.out.println("Keine Rechte, um neue Nutzer zu erstellen."); } }
case 3 -> menu.displayMenu(inventory);
case 4 -> manageOrders(); // Übergibt an Bestellsystem
case 5 -> showFinancialReports(); // Anzeige der Finanzberichte
case 6 -> {
running = false;
System.out.println("System wird beendet. Auf Wiedersehen!");
}
case 4 -> manageOrders();
case 5 -> showFinancialReports();
case 6 -> manageReservations();
case 7 -> { running = false; System.out.println("System wird beendet. Auf Wiedersehen!"); }
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
}
}
}
private void manageReservations() {
boolean managingReservations = true;
while (managingReservations) {
System.out.println("\n--- Reservierungen verwalten ---");
System.out.println("1. Reservierung erstellen");
System.out.println("2. Reservierung bearbeiten");
System.out.println("3. Reservierung stornieren");
System.out.println("4. Reservierungen anzeigen");
System.out.println("5. Zurück zum Hauptmenü");
System.out.print("Bitte wähle eine Option: ");
int choice = scanner.nextInt();
scanner.nextLine(); // Eingabepuffer leeren
switch (choice) {
case 1 -> createReservation();
case 2 -> editReservation();
case 3 -> cancelReservation();
case 4 -> reservationManager.displayTableOverview();
case 5 -> managingReservations = false;
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
}
}
}
private void createReservation() {
System.out.print("Tischnummer: ");
int tableNumber = scanner.nextInt();
scanner.nextLine();
System.out.print("Kundenname: ");
String customerName = scanner.nextLine();
reservationManager.createReservation(tableNumber, customerName);
}
private void editReservation() {
System.out.print("Tischnummer der Reservierung: ");
int tableNumber = scanner.nextInt();
scanner.nextLine();
System.out.print("Neuer Kundenname: ");
String newCustomerName = scanner.nextLine();
reservationManager.editReservation(tableNumber, newCustomerName);
}
private void cancelReservation() {
System.out.print("Tischnummer der Reservierung: ");
int tableNumber = scanner.nextInt();
reservationManager.cancelReservation(tableNumber);
}
private void manageInventory() {
boolean managingInventory = true;
while (managingInventory) {

View File

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