import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.Vector;
public class Telefonliste {
public BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
public Vector<Telefonlisteneintrag> telefonliste;
public Telefonliste() {
telefonliste = new Vector<Telefonlisteneintrag>();
telefonliste.addElement(new Telefonlisteneintrag("Tina Müller", "0451/598547"));
telefonliste.addElement(new Telefonlisteneintrag("Klaus Fuchs", "0587/45796"));
telefonliste.addElement(new Telefonlisteneintrag("Silke Rommel", "0587/578512"));
telefonliste.addElement(new Telefonlisteneintrag("Franz Kluftlocher", "0785/98745"));
}
public Telefonlisteneintrag findeEintrag(String name) {
for (Telefonlisteneintrag teleEintrag : telefonliste) {
if(teleEintrag.name.equals(name)){
return teleEintrag;
}
}
return null;
}
public Telefonlisteneintrag findeEintrag2(String nummer) {
for (Telefonlisteneintrag teleEintrag : telefonliste) {
if(teleEintrag.nummer.equals(nummer)){
return teleEintrag;
}
}
return null;
}
public void menü(){
while(true) {
System.out.println("\nTelefonliste: ");
System.out.println("[1] Alle Eintraege anzeigen");
System.out.println("[2] Eintrag anlegen");
System.out.println("[3] Eintrag löschen");
System.out.println("[4] Eintrag bearbeiten");
System.out.println("[5] Person suchen");
System.out.println("[6] Nummer identifizieren");
System.out.println("[0] Ende\n");
try {
String eingabe = stdin.readLine();
if (eingabe.equals("0")) System.exit(0);
else if (eingabe.equals("1")) alleAnzeigen();
else if (eingabe.equals("2")) eintragAnlegen();
else if (eingabe.equals("3")) eintragLöschen();
else if (eingabe.equals("4")) eintragBearbeiten();
else if (eingabe.equals("5")) personSuchen();
else if (eingabe.equals("6")) nummerIdentifizieren();
else System.out.println("Ungültige Eingabe.");
}
catch (IOException ex) {
System.out.println("Fehler bei der Eingabe.");
}
}
}
public void alleAnzeigen() {
if (!telefonliste.isEmpty()) {
Enumeration<Telefonlisteneintrag> num = telefonliste.elements();
while(num.hasMoreElements()) System.out.println(num.nextElement());
}
else System.out.println("Kein Eintrag vorhanden.");
System.out.println("Taste drücken, um ins Menü zurückzukehren.");
try {
stdin.readLine();
}
catch(IOException ex) {
System.out.println("Fehler bei der Eingabe.");
}
}
public void eintragAnlegen() {
System.out.println("Zum Menü mit [0]");
try {
System.out.print("Namen eingeben: ");
String name = stdin.readLine();
if(name.equals("0")) return;
System.out.print("Nummer eingeben: ");
String nummer = stdin.readLine();
if(name.equals("0")) return;
telefonliste.addElement(new Telefonlisteneintrag(name, nummer));
System.out.println("Neuer Eintrag: " + telefonliste.elementAt(telefonliste.size()-1));
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch(IOException ex) {
System.out.println("Fehler bei der Eingabe.");
}
}
public void eintragLöschen() {
System.out.println("Zum Menü mit [0]");
try {
System.out.print("Namen eingeben: ");
String name = stdin.readLine();
if(name.equals("0")) return;
Telefonlisteneintrag eintrag = findeEintrag(name);
if(eintrag == null) {
System.out.println("Konnte Eintrag nicht finden, kehre zurück zu Menü...");
return;
}
int indexW = telefonliste.indexOf(eintrag);
System.out.println(telefonliste.elementAt(indexW));
System.out.println("Löschen? ja/nein");
name = stdin.readLine();
if(name.equals("0")) return;
else if(name.toLowerCase().equals("ja") || name.toLowerCase().equals("j")) {
telefonliste.removeElementAt(indexW);
System.out.println("Eintrag gelöscht.");
}
else if(name.toLowerCase().equals("nein") || name.toLowerCase().equals("n")) System.out.println("Eintrag nicht gelöscht.");
else System.out.println("Ungültige Eingabe");
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch (IOException ex) {
System.out.println("Fehler bei Eingabe.");
}
}
public void eintragBearbeiten() {
System.out.println ("Zum Menü mit [0]");
try {
System.out.print("Namen eingeben: ");
String name=stdin.readLine();
if(name.equals("0")) return;
Telefonlisteneintrag eintrag = findeEintrag(name);
if(eintrag == null) {
System.out.println("Konnte Eintrag nicht finden, kehre zurück zu Menü...");
return;
}
int indexW = telefonliste.indexOf(eintrag);
System.out.println(telefonliste.elementAt(indexW));
System.out.print("Neuer Name: ");
name= stdin.readLine();
if(name.equals("0")) return;
System.out.print("Neue Nummer: ");
String nummer=stdin.readLine();
if(name.equals("0")) return;
telefonliste.set(indexW, new Telefonlisteneintrag(name, nummer));
System.out.println("Neuer Eintrag: " + telefonliste.elementAt(indexW));
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch (IOException ex) {
System.out.println ("Fehler bei Eingabe.");
}
}
public void personSuchen() {
System.out.println("Zum Menü mit [0]");
try {
System.out.print("Namen eingeben: ");
String name = stdin.readLine();
if(name.equals("0")) return;
Telefonlisteneintrag eintrag = findeEintrag(name);
if(eintrag == null) {
System.out.println("Konnte Eintrag nicht finden, kehre zurück zu Menü...");
return;
}
int indexW = telefonliste.indexOf(eintrag);
System.out.println(telefonliste.elementAt(indexW));
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch (IOException ex) {
System.out.println("Fehler bei Eingabe");
}
}
public void nummerIdentifizieren() {
System.out.println("Zum Menü mit [0]");
try {
System.out.print("Nummer eingeben: ");
String nummer = stdin.readLine();
if(nummer.equals("0")) return;
Telefonlisteneintrag eintrag = findeEintrag2(nummer);
if(eintrag == null) {
System.out.println("Konnte Eintrag nicht finden, kehre zurück zu Menü...");
return;
}
int indexW = telefonliste.indexOf(eintrag);
System.out.println(telefonliste.elementAt(indexW));
System.out.println("Enter drücken, um ins Menü zurückzukehren.");
stdin.readLine();
}
catch (IOException ex) {
System.out.println("Fehler bei Eingabe.");
}
}
public static void main (String[] args) throws IOException {
new Telefonliste().menü();
}
}