Das ganze Reservierungssystem implementiert.
parent
a0e53bef20
commit
d1dd6486fb
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
Dimitry:1234:MANAGER
|
||||
Abbas:1234:SERVICE
|
||||
Abbas:1234:MANAGER
|
||||
Ananas Kopf:Bananenbieger:KITCHEN
|
||||
|
|
|
|||
Loading…
Reference in New Issue