Initial Commit

master
vvisu 2023-01-15 21:15:32 +01:00
commit 199ed91fe6
7 changed files with 280 additions and 0 deletions

2
SemesterAufgabe/.gitignore vendored 100644
View File

@ -0,0 +1,2 @@
/bin/
.classpath

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>SemesterAufgabe</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>

View File

@ -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

View File

@ -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;
}
}

View File

@ -0,0 +1,154 @@
import java.util.HashMap;
import java.util.Scanner;
public class KontoVerwalten {
static HashMap<String, String> 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);
}
}
}

View File

@ -0,0 +1,11 @@
public class Main {
public static void main(String[] args) {
Menue menu = new Menue();
menu.menu();
}
}

View File

@ -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<String, String> 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);
}
}
}