Hallo,
ich soll ein Telefonbuch mit Menü erstellen und soll dabei einen Vector verwenden.
Ich habe dazu folgendes an Klassen inzwischen:
In der Klasse "Telefonlisteneintrag" sollen Namen und Telefonnummern erfasst werden können
Die Klasse "Telefonliste" soll Objekte der Klasse Telefonlisteneintrag verwalten mit Datenstruktur Vector
Und
Das Programm läuft zwar, aber nur bedingt, da ich immer zwischendurch Fehlermeldungen erhalte, die sich auf Zeile 40 beziehen.
Kann mir jemand sagen, was ich falsch gemacht habe? Ich glaube ich sehe den Wald vor lauter Bäumen nicht mehr.
ich soll ein Telefonbuch mit Menü erstellen und soll dabei einen Vector verwenden.
Ich habe dazu folgendes an Klassen inzwischen:
In der Klasse "Telefonlisteneintrag" sollen Namen und Telefonnummern erfasst werden können
Die Klasse "Telefonliste" soll Objekte der Klasse Telefonlisteneintrag verwalten mit Datenstruktur Vector
Java:
public class Telefonlisteneintrag {
String name;
String nummer;
Telefonlisteneintrag (String name, String nummer) {
this.name=name;
this.nummer=nummer;
}
public String toString() {
return "Name: " +name+ "Nummer: " +nummer;
}
}
Und
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.Vector;
public class Telefonliste2 {
public BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
public Vector<Telefonlisteneintrag> telebuch;
public Enumeration num;
public Telefonliste2() {
telebuch = new Vector( 10, 5);
telebuch.addElement( new Telefonlisteneintrag( "Amy", "123-4567"));
telebuch.addElement( new Telefonlisteneintrag( "Bob", "123-6780"));
telebuch.addElement( new Telefonlisteneintrag( "Hal", "789-1234"));
telebuch.addElement( new Telefonlisteneintrag( "Deb", "789-4457"));
telebuch.addElement( new Telefonlisteneintrag( "Zoe", "446-0210"));
telebuch.addElement( new Telefonlisteneintrag( "Abe", "123-4567") ) ;
}
//Methoden
public void menu(){
System.out.println("Telefonbuch: ");
System.out.println("<1> Alle Eintraege anzeigen <ansteigend>");
System.out.println("<2> Eintrag Anlgegen");
System.out.println("<3> Eintrag löschen");
System.out.println("<4> Person suchen");
System.out.println("<5> Nummer identifizieren");
System.out.println("<quit> Ende");
try {
String eingabe = stdin.readLine();
if (eingabe.equals("quit"))
System.exit(0);
int auswahl = Integer.parseInt(eingabe);
System.out.println();
if (auswahl==1)
alleAnzeigen();
if (auswahl==2)
eintragAnlegen();
if (auswahl==3)
eintragLöschen();
if (auswahl==4)
personSuchen();
if (auswahl==5)
nummerIdentifizieren();
}
catch (IOException ex)
{
System.out.println("Keine gueltige Auswahl!");
}
}
public void alleAnzeigen() {
if (!telebuch.isEmpty()) {
num = telebuch.elements();
while( num.hasMoreElements() )
System.out.println(num.nextElement() );
}
else
System.out.println("Telefonbuch ist leer!");
System.out.println("Mit irgendeiner Taste zum Menue");
try {
String name = stdin.readLine();
System.out.println();
}
catch(IOException ex) {
System.out.println("Ungueltig!");
}
menu();
}
public void personSuchen() {
System.out.println("Zurueck zum Menue mit <quit>");
System.out.print("Namen eingeben: ");
try {
String name = stdin.readLine();
while(!name.equals("quit")) {
int indexWo = telebuch.indexOf( new Telefonlisteneintrag( name, "") ) ;
if ( indexWo >= 0 )
System.out.println( telebuch.elementAt( indexWo ) ) ;
else
System.out.println( name + " nicht gefunden" ) ;
System.out.println();
personSuchen();
}
System.out.println();
menu();
}
catch (IOException ex)
{
System.out.println("Kein Name!");
}
}
public void eintragAnlegen() {
System.out.println("Zurueck zum Menue mit <quit>");
System.out.print("Namen eingeben: ");
try {
String name = stdin.readLine();
if (name.equals("quit"))
menu();
System.out.print("Nummer eingeben: ");
String nummer = stdin.readLine();
telebuch.addElement(new Telefonlisteneintrag(name, nummer));
int indexWo = telebuch.indexOf( new Telefonlisteneintrag( name, "") ) ;
System.out.println(telebuch.elementAt(indexWo));
System.out.println();
System.out.println("Mit irgendeiner Taste zum Menue");
name = stdin.readLine();
System.out.println();
menu();
}
catch(IOException ex) {
System.out.println("Ungueltig!");
}
}
public void eintragLöschen() {
System.out.println("Zurueck zum Menue mit <quit>");
System.out.print("Namen eingeben: ");
try {
String name = stdin.readLine();
if (name.equals("quit"))
menu();
int indexWo = telebuch.indexOf( new Telefonlisteneintrag( name, "") ) ;
if (indexWo>=0)
System.out.println( telebuch.elementAt( indexWo ) ) ;
System.out.println();
System.out.println("Loeschen? ja/nein");
name = stdin.readLine();
if (name.toLowerCase().equals("ja") || name.toLowerCase().equals("j"))
telebuch.removeElementAt(indexWo);
else
menu();
}
catch (IOException ex) {
System.out.println("Ungueltig!");
}
}
public void nummerIdentifizieren() {
System.out.println("Nummer suchen");
System.out.println("Zurueck zum Menue mit <quit>");
System.out.print("Nummer eingeben: ");
try
{
String nummer = stdin.readLine();
while(!nummer.equals("quit")) {
int indexWo = telebuch.indexOf( new Telefonlisteneintrag( nummer, "") ) ;
if ( indexWo >= 0 )
System.out.println( telebuch.elementAt( indexWo ) ) ;
else
System.out.println( nummer + " nicht gefunden" ) ;
System.out.println();
personSuchen();
}
System.out.println();
menu();
}
catch (IOException ex)
{
System.out.println("Kein Name!");
}
}
public static void main ( String[] args) throws IOException {
Telefonliste2 Telefonbuch = new Telefonliste2();
Telefonbuch.menu();
}
}
Das Programm läuft zwar, aber nur bedingt, da ich immer zwischendurch Fehlermeldungen erhalte, die sich auf Zeile 40 beziehen.
Kann mir jemand sagen, was ich falsch gemacht habe? Ich glaube ich sehe den Wald vor lauter Bäumen nicht mehr.