# Kontoverwaltung



## Don_Carlo (17. Sep 2009)

Hallo ihr 
Hab ein Problem in Java..
Hab eine Kontenliste erstellt... Das Bearbeiten der Konten funktioniert.
Jetzt ist meine Frage, wie ich die Methode KontoLöschen definieren kann.
Wie kann ich aus einer Liste einen Knoten mit dem entsprechend verknüpften Konto löschen?. Meine Idee war einfach das gleiche Prinzip wie bei KontoBearbeiten. Nur das diesmal nicht das Konto wie bei der Methode bearbeiten aufgerufen wird, sondern gelöscht wird. Wäre super nett, wenn mir jemand dabei helfen könnte! 

LG 
Carlo


```
public class KontenListe
{
	private int anzahl = 0;
	private Knoten ersterKnoten = null;
	private Kunde inhaber;


	public KontenListe (Kunde inhaber)
	{
		this.inhaber = inhaber;
	}

	public int getAnzahl()
	{
		return this.anzahl;
	}


	public void setInhaber (Kunde inhaber)
	{
		this.inhaber = inhaber;
	}

	public Kunde getInhaber ()
	{
		return this.inhaber;
	}

	public void kontoHinzufuegen (Konto konto)
	{
		Knoten neuerKnoten = new Knoten (konto);
		if (this.anzahl == 0)
		{
			this.ersterKnoten = neuerKnoten;
			this.anzahl ++;
		}
		else
		{
			Knoten aktuellerKnoten = this.ersterKnoten;
			while (aktuellerKnoten.getNaechsterKnoten() != null)
			{
				aktuellerKnoten = aktuellerKnoten.getNaechsterKnoten ();
			}
			aktuellerKnoten.setNaechsterKnoten (neuerKnoten);
			this.anzahl ++;
		}
	}



	public Konto kontoHolen(String ktoNummer)
	{
		Knoten temp = this.ersterKnoten;
		while (temp != null)
		{
			Konto ktemp = temp.getKonto();
			String strtemp = ktemp.getKontonummer();
			if (strtemp.equals (ktoNummer))
			{
				return ktemp;
			}
			temp = temp.getNaechsterKnoten ();


		}
		return null;
	}


	public void kontoLoeschen (String ktoNummer)
	{
	
	}


}
```


----------



## Atze (17. Sep 2009)

was ist das? und was soll das überhaupt?  ist das eine hausaufgabe, oder warum speicherst du konten in einer verketteten liste?

und wo ist kontoBearbeiten überhaupt? 

du müsstest doch beim löschen nur das übergeordnete konto mit dem nächsten verknüpfen, nachdem du den aktuellen entfernt hast


----------



## Don_Carlo (17. Sep 2009)

Don_Carlo hat gesagt.:


> Hallo ihr
> Hab ein Problem in Java..
> Hab eine Kontenliste erstellt... Das "Holen" der Konten funktioniert.
> Jetzt ist meine Frage, wie ich die Methode KontoLöschen definieren kann.
> ...




*Die Main:*

```
public class Main
{
	public static void main (String args[])
	{
		Konsole kons = new Konsole();
		Adresse a = new Adresse("In der Hehl","56410","Montabaur");
		Kunde k = new Kunde ("Fischer","Carlo",a);
		Konto b = new Konto("47742342",300,k);
		Konto c = new Konto("1483414",300,k);
		KontenListe liste = new KontenListe (k);
		liste.kontoHinzufuegen(b);
		liste.kontoHinzufuegen(c);

		System.out.println(liste.getAnzahl());
		System.out.println(liste.kontoHolen("1483414"));



	}
}
```

*Klasse Adresse:*

```
public class Adresse
{
	private String strasse;
	private String plz;
	private String ort;

	public Adresse (String strasse, String plz, String ort)
	{
		this.strasse = strasse;
		this.plz = plz;
		this.ort = ort;
	}

	public void setStrasse (String strasse)
	{
		this.strasse = strasse;
	}
	public String getStrasse()
	{
		return this.strasse;
	}

	public void setPlz (String plz)
	{
		this.plz = plz;
	}
	public String getPlz()
	{
		return this.plz;
	}

	public void setOrt (String ort)
	{
		this.ort = ort;
	}
	public String getOrt()
	{
		return this.ort;
	}
	public String toString()
	{
		String text = "Strasse:"+this.strasse+"\n";
		text = text+  "PLZ:"+this.plz+"\n";
		text = text+  "Ort:"+this.ort+"\n";
		return text;
	}

}
```
*
Klasse Knoten:*


```
public class Knoten
{
	private Knoten naechsterKnoten = null;
	private Konto konto;

	public Knoten (Konto konto)
	{
		this.konto = konto;
	}

	public Knoten getNaechsterKnoten ()
	{
		return this.naechsterKnoten;
	}

	public void setNaechsterKnoten (Knoten naechsterKnoten)
	{
		this.naechsterKnoten = naechsterKnoten;
	}

	public Konto getKonto()
	{
		return this.konto;
	}

	public void setKonto (Konto konto)
	{
		this.konto = konto;
	}

	public boolean istLetzterKnoten ()
	{
		if (this.naechsterKnoten == null)
		return true;
		else
		return false;
	}
}
```

*Klasse Konto:*


```
public class Konto
{
	private String kontonummer;
	private double stand;
	private Kunde inhaber;


	public Konto (String kontonummer, double stand, Kunde inhaber)
	{
		this.kontonummer = kontonummer;
		this.stand = stand;
		this.inhaber = inhaber;

	}


	public String getKontonummer()
	{
		return this.kontonummer;
	}


	public void setStand (double stand)
	{
		this.stand = stand;
	}
	public double getStand()
	{
		return this.stand;
	}
	public void setInhaber(Kunde inhaber)
	{
		this.inhaber = inhaber;
	}
	public Kunde getInhaber ()
	{
		return this.inhaber;
	}

	public void einzahlen (double betrag)
	{
		this.stand = this.stand+betrag;


	}
	public boolean abheben (double betrag)
	{
		if ((this.stand - betrag ) >= 0)
		{
			this.stand = this.stand-betrag;
			return true;

		}
		else
		{
		  	return false;
		}
	}
	public String toString()
	{
		String text = "Konto:\n";
		text = text+ "___________________________________________________________________\n";
		text = text+  "Inhaber :"+this.inhaber+"\n";
		text = text+  "Kontonummer :"+this.kontonummer+"\n";
		text = text+  "Kontostand :"+this.stand+"\n";
		return text;
	}

}
```

*Klasse Kunde:*


```
public class Kunde
{
	private String name;
	private String vorname;
	private Adresse adresse;

	public Kunde (String name, String vorname, Adresse adresse)
	{
		this.name = name;
		this.vorname = vorname;
		this.adresse = adresse;
	}


	public void setName (String name)
	{
		this.name = name;
	}
	public String getName()
	{
		return this.name;
	}

	public void setVorname (String vorname)
	{
		this.vorname = vorname;
	}
	public String getVorname()
	{
		return this.vorname;
	}

	public void setAdresse (Adresse adresse)
	{
		this.adresse = adresse;
	}
	public Adresse getAdresse()
	{
		return this.adresse;
	}

	public String toString()
	{
		String text = "Name:"+this.name+"\n";
		text = text+  "Vorname:"+this.vorname+"\n";
		text = text+  "Adresse:"+this.adresse.toString()+"\n";
		return text;
	}

}
```


----------



## Don_Carlo (17. Sep 2009)

Die Methode KontoHolen überprüft ja die übergebene Kontonummer mit den vorhandenen gespeicherten Konten.. wenn diese übereinstimmt, dann wird einfach das Konto ausgegeben.
Meine Idee, ich mache das gleiche wie bei KontoHolen.. das heißt ich übergebe wieder eine Kontonummer... Die gesamte verkettete Liste wird von vorne bis hinten durchsucht.. Wenn jetzt diese Kontonummer mit einem Konto übereinstimmt, sollte dieses Konto jetzt nicht ausgegeben werden wie bei KontoHolen, sondern gelöscht werden.. Nur wie mache ich das.
Wäre voll nett, wenn mir einer helfen könnte 

LG
Carlo


----------



## Atze (17. Sep 2009)

```
// beim durchlaufen der liste:

if(getNaechsterKnoten().getKonto().getKontonummer().equals(zuloeschendeKontonummer)){
 setNaechsterKnoten(getNaechsterKnoten().getNaechsterKnoten());
}
```

so ähnlich jedenfalls


----------



## Don_Carlo (17. Sep 2009)

Okaay ich versuch es mal 
Danke für die Hilfe!!!

LG
Carlo


----------



## diggaa1984 (18. Sep 2009)

musst du das zwingend als liste realisieren? Wenn du davon ausgehen darfst, das jedes Konto ne andere Nummer hat und diese nicht doppelt vergeben werden, bzw kannst das ja selbst prüfen, .. dann empfiehlt sich doch soetwas wie ne HashMap oder dergleichen. Damit brauchst nix suchen, adden und removen erledigt sich von selbst und so weiter und so fort


----------



## Atze (18. Sep 2009)

ich denke, dass er ne aufgabe bekommen hat, ansonsten wäre der ansatz ja total daneben!  denke mal, er soll selbst ne verkettete liste erstellen


----------



## ARadauer (18. Sep 2009)

beim löschen, musst du einfach den den wert für den nächsten beim vorgingen auf den übernächsten setzen...

A -> B -> C

willst du jetzt B löschen,
muss A einfach auf C zeigen...


----------



## Atze (18. Sep 2009)

hab ich ihm doch schon gesagt


----------

