Das ganze Reservierungssystem implementiert.
parent
a0e53bef20
commit
d1dd6486fb
|
|
@ -1,4 +1,4 @@
|
||||||
class Reservation {
|
public class Reservation implements Comparable<Reservation>{
|
||||||
private int tableNumber;
|
private int tableNumber;
|
||||||
private String customerName;
|
private String customerName;
|
||||||
|
|
||||||
|
|
@ -6,4 +6,24 @@ class Reservation {
|
||||||
this.tableNumber = tableNumber;
|
this.tableNumber = tableNumber;
|
||||||
this.customerName = customerName;
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
1,Dimimtry
|
||||||
|
2,Ali und Arim
|
||||||
|
|
@ -8,6 +8,7 @@ class SystemController {
|
||||||
public static Inventory inventory = new Inventory();
|
public static Inventory inventory = new Inventory();
|
||||||
private Menu menu = new Menu();
|
private Menu menu = new Menu();
|
||||||
private FinancialManager financialManager = new FinancialManager();
|
private FinancialManager financialManager = new FinancialManager();
|
||||||
|
private ReservationManager reservationManager = new ReservationManager();
|
||||||
|
|
||||||
public SystemController() {
|
public SystemController() {
|
||||||
loadUsersFromFile();
|
loadUsersFromFile();
|
||||||
|
|
@ -38,43 +39,80 @@ class SystemController {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayMainMenu(User user) {
|
public void displayMainMenu(User user) {
|
||||||
boolean running = true;
|
boolean running = true;
|
||||||
while (running) {
|
while (running) {
|
||||||
inventory.loadStockFromFile();
|
|
||||||
System.out.println("\n--- Hauptmenü ---");
|
System.out.println("\n--- Hauptmenü ---");
|
||||||
System.out.println("1. Bestand verwalten");
|
System.out.println("1. Bestand verwalten");
|
||||||
System.out.println("2. Neuer Nutzer erstellen");
|
System.out.println("2. Neuer Nutzer erstellen");
|
||||||
System.out.println("3. Menü anzeigen");
|
System.out.println("3. Menü anzeigen");
|
||||||
System.out.println("4. Bestellungen verwalten");
|
System.out.println("4. Bestellungen verwalten");
|
||||||
System.out.println("5. Finanzbericht anzeigen");
|
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: ");
|
System.out.print("Bitte wähle eine Option: ");
|
||||||
int choice = scanner.nextInt();
|
int choice = scanner.nextInt();
|
||||||
scanner.nextLine(); // Eingabepuffer leeren
|
scanner.nextLine();
|
||||||
|
|
||||||
switch (choice) {
|
switch (choice) {
|
||||||
case 1 -> manageInventory();
|
case 1 -> manageInventory();
|
||||||
case 2 -> {
|
case 2 -> { if (user.role == Role.MANAGER) { createUser(); } else { System.out.println("Keine Rechte, um neue Nutzer zu erstellen."); } }
|
||||||
if (user.role == Role.MANAGER) {
|
|
||||||
createUser();
|
|
||||||
} else {
|
|
||||||
System.out.println("Keine Rechte, um neue Nutzer zu erstellen.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case 3 -> menu.displayMenu(inventory);
|
case 3 -> menu.displayMenu(inventory);
|
||||||
case 4 -> manageOrders(); // Übergibt an Bestellsystem
|
case 4 -> manageOrders();
|
||||||
case 5 -> showFinancialReports(); // Anzeige der Finanzberichte
|
case 5 -> showFinancialReports();
|
||||||
case 6 -> {
|
case 6 -> manageReservations();
|
||||||
running = false;
|
case 7 -> { running = false; System.out.println("System wird beendet. Auf Wiedersehen!"); }
|
||||||
System.out.println("System wird beendet. Auf Wiedersehen!");
|
|
||||||
}
|
|
||||||
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
|
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() {
|
private void manageInventory() {
|
||||||
boolean managingInventory = true;
|
boolean managingInventory = true;
|
||||||
while (managingInventory) {
|
while (managingInventory) {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
Dimitry:1234:MANAGER
|
Dimitry:1234:MANAGER
|
||||||
Abbas:1234:SERVICE
|
Abbas:1234:MANAGER
|
||||||
Ananas Kopf:Bananenbieger:KITCHEN
|
Ananas Kopf:Bananenbieger:KITCHEN
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue