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