1614582 Besucher [16 Heute]
Erstellen einer Telefonliste in Java
  • Informatik-Klausur (Jahrgang 13)
  • 2-stündig
  • Musterlösung vom Lehrer (15 Punkte)

Gearbeitet wird mit der Lernumgebung BlueJay (für dieses Programm ist die Lösung optimiert)

Aufgabe
Ein Java-Projekt zur Verwaltung einer Telefonliste
soll erstellt werden.

a) Erstellen Sie zunächst eine Klasse Eintrag. Jeder Eintrag besteht aus dem Namen einer Person und einer zugeordneten Telefonnummer. Erstellen Sie Methoden mit folgenden Schnittstellen:
• public void setzeTelnr(String tel)
• public String gibName()
• public String gibTel()
• public String gibEintrag()

b) Die Klasse Telefonliste soll die Klasse Eintrag benutzen, d.h. die Telefonliste soll modelliert werden mit Hilfe der Klasse ArrayList.

b1) Schreiben Sie eine Methode mit der Schnittstelle private boolean enthalten(String suchname) Diese Methode soll überprüfen, ob der übergebene Name in der Liste vorkommt; sie soll mit einem Iterator realisiert werden.

b2) Entwickeln Sie nun weitere Methoden für folgende Aktionen der Telefonliste mit den angegebenen Schnittstellen. (Sie können die Methode enthalten aus dem vorigen Aufgabenteil verwenden, auch wenn Sie diese nicht geschrieben haben sollten.)

• Im Standardausgabefenster soll eine Gesamtliste ausgegeben werden.

public void ausListe()
• Im Standardausgabefenster soll für die Namen, die mit einem einzugebenden Teilstring anfangen, eine Telefonnummernliste ausgegeben werden.

public void teilListe(String anfang)
• Die Anzahl der Einträge in der Liste soll bestimmt werden.

public int anzahl()
• Die Liste soll um einen neuen Eintrag ergänzt werden. Wenn aber schon ein Eintrag mit dem gleichen Namen existiert, soll der Neueintrag scheitern und eine entsprechendeMeldung ausgegeben werden.

public void neueintrag(String, neuName, String neuTel)
• Die zu einem übergebenen Namen gehörende Telefonnummer soll ermittelt werden. Wenn der Name nicht in der Liste vorhanden ist, soll der String ++++++ zurückgegeben werden.

public String tel(String suchName)
• Die zu einem übergebenen Namen gehörende Telefonnummer soll verändert werden.

public void telAktualisieren(String suchName, String neuTel)
• Der zu einem übergebenen Namen gehörige Eintrag soll gelöscht werden. public void löschen(String löschname)

 

Hinweis:
Sie dürfen am Computer die Dokumentation der Java-Klassenbibliotheken einsehen, nicht aber die erstellten Programmteile austesten.

 

 

 

import java.util.ArrayList;
import java.util.Iterator;

/**
* Eine Telefonliste wird verwaltet. Die Einträge sind Objekte
* der Klasse Eintrag.
*/

public class Telefonliste
{
/**
* liste enthält alle Einträge
*/
private ArrayList liste;

/**
* Eine leere Telefonliste wird erzeugt
*/
public Telefonliste()
{
liste = new ArrayList();
}

/**
* testet, ob es in liste einen Eintrag mit dem
* Namen name gibt.
*/
private Boolean enthalten(String name)
{
Iterator it = liste.iterator();
boolean gefunden = false;
while (it.hasNext() && ! gefunden)
{
if (it.next().gibName() == name)
{
gefunden = true;
}
}
return gefunden;
}

/**
* Die Liste wird um einen Eintrag erweitert
*/
public void neueintrag(String name, String telNr)
{
if (enthalten(name))
{
System.out.println("Name schon enthalten!");
} else
{
liste.add(new Eintrag(name,telNr));
}
}

/**
* Die vollständige Liste wird im Konsolenfenster
* ausgegeben
*/
public void ausListe()
{
for(Eintrag eintrag: liste)
{
System.out.println(eintrag.gibEintrag());
}
}

/**
* Die Teilliste aller Einträge, deren Namen mit anfang
* anfängt, wird im Konsolenfenster ausgegeben.
*/
public void teilListe(String anfang)
{
for(Eintrag eintrag: liste)
{
if(eintrag.gibName().startsWith(anfang)){
System.out.println(eintrag.gibEintrag());
}
}
}

/**
* Die Anzahl der Einträge in der Liste wird zurückgegeben
*/
public int anzahl()
{
return liste.size();
}

/**
* Die Telefonnummer des Teilnehmers mit dem Namen name
* wird zurückgegeben. Wenn der Teilnehmer nicht gefunden
* wird, wird "+++++++" zurückgegeben.
*/
public String tel(String name)
{
String tn="";
if(!enthalten(name))
{
tn= "+++++++++";
} else
{
Iterator it = liste.iterator();
Eintrag akt;
while (it.hasNext() && tn=="")
{
akt = it.next();
if (akt.gibName() == name){
tn = akt.telNr;
}
}
}
return tn;
}

/**
* Die Telefonnummer des Teilnehmers mit dem Namen name
* wird aktualisiert. Wenn dieser Teilnehmer nicht existiert,
* erscheint eine Meldung im Konsolenfenster.
*/
public void telAktualisieren(String name, String neuTel)
{
if(!enthalten(name))
{
System.out.println("Name exisitiert nicht!");
} else
{
for (Eintrag eintrag: liste)
{
if (eintrag.gibName() == name){
eintrag.setzeTelnr(neuTel);
}
}
}
}

/**
* Der Eintrag mit dem Namen name wird gelöscht. Eine Meldung
* gibt an, ob die Löschung erfolgreich war.
*/
public void löschen(String name)
{
Iterator it = liste.iterator();
boolean gefunden = false;
while (it.hasNext()&& !gefunden)
{
if (it.next().gibName()==name)
{
it.remove();
System.out.println("Eintrag " + name + " gelöscht.");
gefunden = true;
}
}
if (! gefunden)
{
System.out.println("Name "+ name + " nicht gefunden!");
}
}

}

Kategorie: Informatik | Kommentare (4)