From 199ed91fe662de6ab3f9eb8f441cd6d99084abc1 Mon Sep 17 00:00:00 2001 From: vvisu Date: Sun, 15 Jan 2023 21:15:32 +0100 Subject: [PATCH] Initial Commit --- SemesterAufgabe/.gitignore | 2 + SemesterAufgabe/.project | 17 ++ .../.settings/org.eclipse.jdt.core.prefs | 14 ++ SemesterAufgabe/src/Data.java | 23 +++ SemesterAufgabe/src/KontoVerwalten.java | 154 ++++++++++++++++++ SemesterAufgabe/src/Main.java | 11 ++ SemesterAufgabe/src/Menue.java | 59 +++++++ 7 files changed, 280 insertions(+) create mode 100644 SemesterAufgabe/.gitignore create mode 100644 SemesterAufgabe/.project create mode 100644 SemesterAufgabe/.settings/org.eclipse.jdt.core.prefs create mode 100644 SemesterAufgabe/src/Data.java create mode 100644 SemesterAufgabe/src/KontoVerwalten.java create mode 100644 SemesterAufgabe/src/Main.java create mode 100644 SemesterAufgabe/src/Menue.java diff --git a/SemesterAufgabe/.gitignore b/SemesterAufgabe/.gitignore new file mode 100644 index 0000000..d08d94f --- /dev/null +++ b/SemesterAufgabe/.gitignore @@ -0,0 +1,2 @@ +/bin/ +.classpath \ No newline at end of file diff --git a/SemesterAufgabe/.project b/SemesterAufgabe/.project new file mode 100644 index 0000000..4cae2f1 --- /dev/null +++ b/SemesterAufgabe/.project @@ -0,0 +1,17 @@ + + + SemesterAufgabe + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/SemesterAufgabe/.settings/org.eclipse.jdt.core.prefs b/SemesterAufgabe/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ae7f7b3 --- /dev/null +++ b/SemesterAufgabe/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=16 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=16 +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=16 diff --git a/SemesterAufgabe/src/Data.java b/SemesterAufgabe/src/Data.java new file mode 100644 index 0000000..f541d23 --- /dev/null +++ b/SemesterAufgabe/src/Data.java @@ -0,0 +1,23 @@ + +public class Data { + + String benutzername; + String password; + + public String getBenutzername() { + return benutzername; + } + + public void setBenutzername(String benutzername) { + this.benutzername = benutzername; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + +} diff --git a/SemesterAufgabe/src/KontoVerwalten.java b/SemesterAufgabe/src/KontoVerwalten.java new file mode 100644 index 0000000..90c573e --- /dev/null +++ b/SemesterAufgabe/src/KontoVerwalten.java @@ -0,0 +1,154 @@ +import java.util.HashMap; +import java.util.Scanner; + +public class KontoVerwalten { + + static HashMap credentials = new HashMap<>(); + + public void anmelden() { + Scanner input = new Scanner(System.in); + Data data = new Data(); + Menue menu = new Menue(); + System.out.println("Bitte geben Sie ihren Benutzername_Passwort ein:"); + try { + String[] in1 = input.nextLine().split(" "); + if (in1[0].equals("9")) { + System.out.println("Aufwiedersehen."); + input.close(); + System.exit(0); + } else if (credentials.containsKey(in1[1]) && credentials.get(in1[1]).equals(in1[0])) { + data.setBenutzername(in1[0]); + data.setPassword(in1[1]); + menu.secondMenu(data, credentials); + } else { + System.out.println("Fehler bei den Angaben!"); + anmelden(); + } + } catch (ArrayIndexOutOfBoundsException e) { + System.out.println("Fehler bei den Angaben!"); + anmelden(); + } + + } + + public void regestrieren() { + Scanner input = new Scanner(System.in); + Data data = new Data(); + Menue menu = new Menue(); + System.out.println("Bitte geben Sie ihren Benutzername_Passwort ein:"); + try { + String[] in2 = input.nextLine().split(" "); + if (in2[0].equals("9")) { + System.out.println("Aufwiedersehen."); + input.close(); + System.exit(0); + } else if (credentials.containsKey(in2[1]) || credentials.containsValue(in2[0])) { + System.out.println("Regestrierung nicht möglich!"); + System.out.println("Bitte ändern Sie Ihren Benutzername/Passwort."); + regestrieren(); + } else { + credentials.put(in2[1], in2[0]); + System.out.println("Konto wurde erstellt."); + menu.menu(); + } + } catch (ArrayIndexOutOfBoundsException e) { + System.out.println("Fehler bei den Angaben!"); + regestrieren(); + } + + } + + public void changePassBen(Data data) { + Scanner input = new Scanner(System.in); + Menue menu = new Menue(); + System.out.println("Geben Sie ein, ob Sie Ihr [pass]Passwort oder Ihren [ben]Benutzernamen ändern wollen"); + String in3 = input.nextLine(); + try { + if (in3.equals("8")) { + menu.secondMenu(data, credentials); + } else if (in3.equalsIgnoreCase("ben")) { + System.out.println("Geben Sie den Benutzername_Passwort_neuer Benutzername des Kontos ein:"); + String[] ben = input.nextLine().split(" "); + if (!credentials.containsKey(ben[1]) || !credentials.containsValue(ben[0])) { + System.out.println("Fehler bei den Angaben!"); + changePassBen(data); + } else if (!credentials.get(ben[1]).equals(ben[0])) { + System.out.println("Fehler bei den Angaben!"); + changePassBen(data); + } else if (ben[0].equals(ben[2])) { + System.out.println("Neuer Benutzername kann nicht der alte Benutzername sein"); + changePassBen(data); + } else if (credentials.containsValue(ben[2]) || credentials.containsKey(ben[2])) { + System.out.println("Benutzername ungültig"); + changePassBen(data); + } else { + credentials.replace(ben[1], ben[0], ben[2]); + System.out.println("Benutzername wurde geändert"); + data.setBenutzername(ben[2]); + menu.secondMenu(data, credentials); + } + } else if (in3.equalsIgnoreCase("pass")) { + System.out.println("Geben Sie den Benutzername_Passwort_neues Passwort des Kontos ein:"); + String[] pass = input.nextLine().split(" "); + if (!credentials.containsKey(pass[1]) || !credentials.containsValue(pass[0])) { + System.out.println("Fehler bei den Angaben!"); + changePassBen(data); + } else if (!credentials.get(pass[1]).equals(pass[0])) { + System.out.println("Fehler bei den Angaben!"); + changePassBen(data); + } else if (pass[1].equals(pass[2])) { + System.out.println("Neues Passwort kann nicht das alte Passwort sein"); + changePassBen(data); + } else if (credentials.containsKey(pass[2]) || credentials.containsValue(pass[2])) { + System.out.println("Passwort ungültig"); + changePassBen(data); + } else { + credentials.remove(pass[1]); + credentials.put(pass[2], pass[0]); + System.out.println("Passwort wurde geändert"); + data.setPassword(pass[2]); + menu.secondMenu(data, credentials); + } + } else { + System.out.println("Fehler bei den Angaben!"); + changePassBen(data); + } + } catch (ArrayIndexOutOfBoundsException e) { + System.out.println("Fehler bei den Angaben!"); + changePassBen(data); + } + + } + + public void deleteKonto(Data data) { + Scanner input = new Scanner(System.in); + Menue menu = new Menue(); + System.out.println("Bitte Geben Sie den Benutzername_Passwort des zu löschenden Kontos ein: "); + try { + String[] in4 = input.nextLine().split(" "); + if (in4[0].equals("8")) { + menu.secondMenu(data, credentials); + } else if (!credentials.containsKey(in4[1]) || !credentials.containsValue(in4[0])) { + System.out.println("Fehler bei den Angaben!"); + deleteKonto(data); + } else if (!credentials.get(in4[1]).equals(in4[0])) { + System.out.println("Fehler bei den Angaben!"); + deleteKonto(data); + } else { + credentials.remove(in4[1], in4[0]); + System.out.println("Konto von " + in4[0] + " gelöscht."); + if (data.getBenutzername().equals(in4[0])) { + System.out.println("Abmeldung, da Angemeldetes Konto gelöscht wurde"); + menu.menu(); + } else { + menu.secondMenu(data, credentials); + } + } + } catch (ArrayIndexOutOfBoundsException e) { + System.out.println("Fehler bei den Angaben!"); + deleteKonto(data); + } + + } + +} diff --git a/SemesterAufgabe/src/Main.java b/SemesterAufgabe/src/Main.java new file mode 100644 index 0000000..64c21c2 --- /dev/null +++ b/SemesterAufgabe/src/Main.java @@ -0,0 +1,11 @@ + +public class Main { + + public static void main(String[] args) { + + Menue menu = new Menue(); + menu.menu(); + + } + +} diff --git a/SemesterAufgabe/src/Menue.java b/SemesterAufgabe/src/Menue.java new file mode 100644 index 0000000..8f8cdaf --- /dev/null +++ b/SemesterAufgabe/src/Menue.java @@ -0,0 +1,59 @@ +import java.util.HashMap; +import java.util.Scanner; + +public class Menue { + + public void menu() { + Scanner input = new Scanner(System.in); + KontoVerwalten verwalten = new KontoVerwalten(); + System.out.println("_ -> Leerzeichen"); + System.out.println("------Menü------"); + System.out.println("[1] Anmelden"); + System.out.println("[2] Registrieren"); + System.out.println("[9] Beenden"); + String ans = input.nextLine(); + if (ans.equals("9")) { + System.out.println("Aufwiedersehen."); + input.close(); + System.exit(0); + } else if (ans.equals("1")) { + verwalten.anmelden(); + } else if (ans.equals("2")) { + verwalten.regestrieren(); + } else { + System.out.println("Eingabe konnte nicht erkannt werden."); + menu(); + } + + } + + public void secondMenu(Data data, HashMap credentials) { + Scanner input = new Scanner(System.in); + KontoVerwalten verwalten = new KontoVerwalten(); + System.out.println("Herzlich Willkommen: " + data.getBenutzername()); + System.out.println("------Menü------"); + System.out.println("[1] Passwort/Benutzername ändern"); + System.out.println("[2] Alle gespeicherten Konten ausgeben"); + System.out.println("[3] Konto löschen"); + System.out.println("[8] Zurück/Abmelden"); + String answer = input.nextLine(); + if (answer.equals("8")) { + menu(); + } else if (answer.equals("1")) { + verwalten.changePassBen(data); + } else if (answer.equals("2")) { + int j = 1; + for (String s : credentials.keySet()) { + System.out.println("Konto " + j++ + ": Benutzername -> " + credentials.get(s) + " | Passwort -> " + s); + } + secondMenu(data, credentials); + } else if (answer.equals("3")) { + verwalten.deleteKonto(data); + } else { + System.out.println("Eingabe konnte nicht erkannt werden"); + secondMenu(data, credentials); + } + + } + +}