Das Grundgerüst der Funktionen wurde gelegt. Dimitry/Abbas
commit
c813b1efd7
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?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="output" path="bin"/>
|
||||||
|
</classpath>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
/bin/
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>Restaurantverwaltung</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
encoding/<project>=UTF-8
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
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.unusedLocal=preserve
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=22
|
||||||
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
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
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
import java.util.*;
|
||||||
|
class Dish {
|
||||||
|
private String name;
|
||||||
|
private Map<String, Integer> ingredients;
|
||||||
|
|
||||||
|
public Dish(String name, Map<String, Integer> ingredients) {
|
||||||
|
this.name = name;
|
||||||
|
this.ingredients = ingredients;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Integer> getIngredients() {
|
||||||
|
return ingredients;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
import java.util.*;
|
||||||
|
class Inventory {
|
||||||
|
private Map<String, Integer> stock;
|
||||||
|
|
||||||
|
public Inventory() {
|
||||||
|
stock = new HashMap<>();
|
||||||
|
stock.put("Brot", 10);
|
||||||
|
stock.put("Fleisch", 8);
|
||||||
|
stock.put("Käse", 5);
|
||||||
|
stock.put("Salat", 7);
|
||||||
|
stock.put("Tomaten", 6);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void viewStock() {
|
||||||
|
System.out.println("Aktueller Bestand:");
|
||||||
|
for (Map.Entry<String, Integer> entry : stock.entrySet()) {
|
||||||
|
System.out.println(entry.getKey() + ": " + entry.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean useIngredients(Map<String, Integer> ingredients) {
|
||||||
|
for (Map.Entry<String, Integer> entry : ingredients.entrySet()) {
|
||||||
|
String ingredient = entry.getKey();
|
||||||
|
int amount = entry.getValue();
|
||||||
|
|
||||||
|
if (!stock.containsKey(ingredient) || stock.get(ingredient) < amount) {
|
||||||
|
System.out.println("Nicht genug " + ingredient + " im Lager.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Map.Entry<String, Integer> entry : ingredients.entrySet()) {
|
||||||
|
stock.put(entry.getKey(), stock.get(entry.getKey()) - entry.getValue());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
import java.util.*;
|
||||||
|
class Menu {
|
||||||
|
private List<Dish> dishes;
|
||||||
|
|
||||||
|
public Menu() {
|
||||||
|
dishes = new ArrayList<>();
|
||||||
|
dishes.add(new Dish("Cheeseburger", Map.of("Brot", 1, "Fleisch", 1, "Käse", 1)));
|
||||||
|
dishes.add(new Dish("Veggie-Burger", Map.of("Brot", 1, "Salat", 1, "Tomaten", 1)));
|
||||||
|
dishes.add(new Dish("Double Meat Burger", Map.of("Brot", 1, "Fleisch", 2)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayMenu(Inventory inventory) {
|
||||||
|
System.out.println("Verfügbares Menü:");
|
||||||
|
for (Dish dish : dishes) {
|
||||||
|
if (inventory.useIngredients(dish.getIngredients())) {
|
||||||
|
System.out.println("- " + dish.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
class Order {
|
||||||
|
private int tableNumber;
|
||||||
|
private String dish;
|
||||||
|
private boolean completed;
|
||||||
|
|
||||||
|
public Order(int tableNumber, String dish) {
|
||||||
|
this.tableNumber = tableNumber;
|
||||||
|
this.dish = dish;
|
||||||
|
this.completed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void completeOrder() {
|
||||||
|
completed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
class Reservation {
|
||||||
|
private int tableNumber;
|
||||||
|
private String customerName;
|
||||||
|
|
||||||
|
public Reservation(int tableNumber, String customerName) {
|
||||||
|
this.tableNumber = tableNumber;
|
||||||
|
this.customerName = customerName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
|
||||||
|
public class RestaurantManagement {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SystemController systemController = new SystemController();
|
||||||
|
systemController.startSystem();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
enum Role {
|
||||||
|
MANAGER, SERVICE, KITCHEN
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,122 @@
|
||||||
|
import java.io.*;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
class SystemController {
|
||||||
|
private Scanner scanner = new Scanner(System.in);
|
||||||
|
private Map<String, User> users = new HashMap<>();
|
||||||
|
private final String USERS_FILE = "src/users.txt";
|
||||||
|
private Inventory inventory = new Inventory();
|
||||||
|
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 --------------->");
|
||||||
|
|
||||||
|
String username = scanner.nextLine();
|
||||||
|
|
||||||
|
System.out.println("Passwort --------------->");
|
||||||
|
|
||||||
|
String password = scanner.nextLine();
|
||||||
|
|
||||||
|
User user = authenticate(username, password);
|
||||||
|
if (user != null) {
|
||||||
|
displayMainMenu(user);
|
||||||
|
} else {
|
||||||
|
System.out.println("Ungültige Anmeldedaten.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private User authenticate(String username, String password) {
|
||||||
|
if (users.containsKey(username) && users.get(username).password.equals(password)) {
|
||||||
|
return users.get(username);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void displayMainMenu(User user) {
|
||||||
|
boolean running = true;
|
||||||
|
while (running) {
|
||||||
|
System.out.println("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");
|
||||||
|
|
||||||
|
int choice = scanner.nextInt();
|
||||||
|
scanner.nextLine();
|
||||||
|
|
||||||
|
switch (choice) {
|
||||||
|
case 1 -> inventory.viewStock();
|
||||||
|
case 2 -> {
|
||||||
|
if (user.role == Role.MANAGER) {
|
||||||
|
createUser();
|
||||||
|
} else {
|
||||||
|
System.out.println("Keine Rechte du hs");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case 3 -> menu.displayMenu(inventory);
|
||||||
|
case 4 -> running = false;
|
||||||
|
default -> System.out.println("Ungültige Auswahl.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createUser() {
|
||||||
|
System.out.println("Neuen Nutzer erstellen:");
|
||||||
|
System.out.print("Benutzername: ");
|
||||||
|
String username = scanner.nextLine();
|
||||||
|
System.out.print("Passwort: ");
|
||||||
|
String password = scanner.nextLine();
|
||||||
|
System.out.print("Rolle (MANAGER, SERVICE, KITCHEN): ");
|
||||||
|
Role role = Role.valueOf(scanner.nextLine().toUpperCase());
|
||||||
|
|
||||||
|
User newUser = new User(username, password, role);
|
||||||
|
users.put(username, newUser);
|
||||||
|
saveUserToFile(newUser);
|
||||||
|
|
||||||
|
System.out.println("Nutzer erfolgreich erstellt.");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadUsersFromFile() {
|
||||||
|
try (BufferedReader reader = new BufferedReader(new FileReader(USERS_FILE))) {
|
||||||
|
String line;
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
String[] parts = line.split(":");
|
||||||
|
if (parts.length == 3) {
|
||||||
|
String username = parts[0];
|
||||||
|
String password = parts[1];
|
||||||
|
Role role = Role.valueOf(parts[2].toUpperCase());
|
||||||
|
|
||||||
|
users.put(username, new User(username, password, role));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
System.out.println("Benutzerdatenbank nicht gefunden. Standard-Manager wird erstellt.");
|
||||||
|
createDefaultManager();
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("Fehler beim Lesen der Benutzerdatenbank: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveUserToFile(User user) {
|
||||||
|
try (BufferedWriter writer = new BufferedWriter(new FileWriter(USERS_FILE, true))) {
|
||||||
|
writer.write(user.username + ":" + user.password + ":" + user.role.name());
|
||||||
|
writer.newLine();
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("Fehler beim Speichern des Nutzers: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createDefaultManager() {
|
||||||
|
User defaultManager = new User("Dimitry", "1234", Role.MANAGER);
|
||||||
|
users.put("Dimitry", defaultManager);
|
||||||
|
saveUserToFile(defaultManager);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
class User {
|
||||||
|
String username;
|
||||||
|
String password;
|
||||||
|
Role role;
|
||||||
|
|
||||||
|
public User(String username, String password, Role role) {
|
||||||
|
this.username = username;
|
||||||
|
this.password = password;
|
||||||
|
this.role = role;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
Dimitry:1234:MANAGER
|
||||||
|
Abbas Kronboch:Araber:SERVICE
|
||||||
|
Ananas Kopf:Bananenbieger:KITCHEN
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
Dimitry:1234:MANAGER
|
||||||
|
Abbas Kronboch:Araber:SERVICE
|
||||||
Loading…
Reference in New Issue