hoelle1985
Grünschnabel
Hey @ all!
Nach knapp 4 Stunden verzweiflung bitte ich nuneuch um Hilfe!
Mein Telefonbuch läuft eigentlich ohne Probleme! Bis auf die Ausgabe aller Eintrag aus der Treemap!
Ich bekomme immer den Fehler "cannot be cast to Eintrag"! Das Übersetzten funktioniert!!Erst in der Konsole gibt es den Fehler!
Vielleicht findet von euch einer den Fehler!
Danke für eure Hilfe
Klasse Telefonbuch
Klasse Eintrag
Klasse Benutzerschnittstelle
Klasse Telefonspeicher
Nach knapp 4 Stunden verzweiflung bitte ich nuneuch um Hilfe!
Mein Telefonbuch läuft eigentlich ohne Probleme! Bis auf die Ausgabe aller Eintrag aus der Treemap!
Ich bekomme immer den Fehler "cannot be cast to Eintrag"! Das Übersetzten funktioniert!!Erst in der Konsole gibt es den Fehler!
Vielleicht findet von euch einer den Fehler!
Danke für eure Hilfe
Klasse Telefonbuch
Code:
public class Telefonbuch
{
// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
public Telefonbuch()
{
}
public static void main( String[] args )
{
Benutzerschnittstelle neu = new Benutzerschnittstelle();
neu.willkommen();
}
}
Klasse Eintrag
Code:
import java.util.*;
import java.io.*;
public class Eintrag implements Serializable
{
String name;
String nummer;
String strasse;
String ort;
public Eintrag()
{
}
public void setze(String name, String nummer, String strasse, String ort)
{
this.name=name;
this.nummer=nummer;
this.strasse=strasse;
this.ort=ort;
}
public void gibEintrag()
{
System.out.println(" Name: " +name+" Nummer: " +nummer+" Strasse: "+strasse+" Ort: "+ort);
}
}
Klasse Benutzerschnittstelle
Code:
import java.util.*;
import java.io.*;
/**
* Beschreiben Sie hier die Klasse telefonbuch.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Benutzerschnittstelle
{
// Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
String name;
String nummer;
String ausg;
String keya;
String nummera;
String strassea;
String orta;
Telefonspeicher buch;
/**
* Konstruktor für Objekte der Klasse telefonbuch
*/
public Benutzerschnittstelle()
{
buch = new Telefonspeicher();
buch.datenLesen();
}
/**
* Ein Beispiel einer Methode - ersetzen Sie diesen Kommentar mit Ihrem eigenen
*
* @param y ein Beispielparameter für eine Methode
* @return die Summe aus x und y
*/
public void willkommen()
{
System.out.println ("\n\nHerzlich Willkommen im elektronischen Telefonbuch");
System.out.println ("Bitte wählen sie aus");
System.out.println ("n = neuer Eintrag");
System.out.println ("l = Eintrag loeschen");
System.out.println ("d = Eintrag suchen");
System.out.println ("a = Eintrag aendern");
System.out.println ("t = Telefonbuch speichern");
System.out.println ("z = Alle Eintraege ausgeben");
System.out.println ("e = Beenden\n\n");
Scanner s = new Scanner(System.in);
String key = s.nextLine();
if(key.equals("n")){
System.out.println ("Neuer Eintrag");
System.out.println ("Name:");
keya = s.nextLine();
System.out.println ("Nummer:");
nummera = s.nextLine();
System.out.println ("Strasse:");
strassea = s.nextLine();
System.out.println ("Ort:");
orta = s.nextLine();
buch.neuerEintrag(keya,nummera,strassea,orta);
System.out.println ("Eintrag erfolgreich gespeichert");
willkommen();
}
if(key.equals("l")){
System.out.println ("Eintrag loeschen");
System.out.println ("Name:");
keya = s.nextLine();
buch.loeschen(keya);
System.out.println ("Eintrag "+ name +" wurde gelöscht");
willkommen();
}
if(key.equals("d")){
System.out.println ("Eintrag suchen");
System.out.println ("Name:");
keya = s.nextLine();
buch.suchen(keya);
willkommen();
}
if(key.equals("a")){
System.out.println ("Eintrag aendern");
System.out.println ("Welcher Eintrag soll geändert werden?:");
keya = s.nextLine();
buch.loeschen(keya);
System.out.println ("Neuer Name:");
keya = s.nextLine();
System.out.println ("Neue Nummer:");
nummera = s.nextLine();
System.out.println ("Strasse:");
strassea = s.nextLine();
System.out.println ("Ort:");
orta = s.nextLine();
buch.neuerEintrag(keya,nummera,strassea,orta);
System.out.println ("Eintrag geändert!");
willkommen();
}
if(key.equals("z")){
buch.ausgabe2();
willkommen();
}
if(key.equals("t")){
buch.datenSpeichern();
willkommen();
}
if(key.equals("e")){
buch.datenSpeichern();
System.out.println ("Telefonbuch gespeichert und verlassen");
}
}
}
Klasse Telefonspeicher
Code:
import java.util.*;
import java.io.*;
public class Telefonspeicher
{
TreeMap <String, Eintrag> speicher;
String nameb;
String nummerb;
String strasseb;
String ortb;
/**
* Konstruktor für Objekte der Klasse telefonspeicher
*/
public Telefonspeicher()
{
speicher = new TreeMap<String, Eintrag>(String.CASE_INSENSITIVE_ORDER);
}
public void neuerEintrag(String keya,String nummera,String strassea,String orta)
{
Eintrag neuereintrag= new Eintrag();
neuereintrag.setze(keya,nummera,strassea,orta);
speicher.put(keya,neuereintrag);
}
public void suchen(String key)
{
Eintrag s= speicher.get(key);
s.gibEintrag();
}
public void ausgabe2()
{
SortedMap <String,Eintrag> sot= speicher.tailMap("A");
Set a = sot.keySet();
String[] d = (String[])(a.toArray(new String[0]));
for(String k : d)
{
Eintrag w = speicher.get(k);
w.gibEintrag();
}
}
public void loeschen(String key)
{
speicher.remove(key);
}
public void datenSpeichern(){
try{
FileOutputStream fs = new FileOutputStream("save.ser");
ObjectOutputStream os = new ObjectOutputStream(fs);
os.writeObject(speicher);
os.close();
}
catch (IOException e){
System.err.println(e.toString());
}
}
public void datenLesen(){
try{
FileInputStream fs = new FileInputStream("save.ser");
ObjectInputStream is = new ObjectInputStream(fs);
speicher = (TreeMap<String,Eintrag>) is .readObject();
is.close();
}
catch (ClassNotFoundException e){
System.err.println(e.toString());
}
catch (IOException e){
System.err.println(e.toString());
}
}
}