# Kontoprogramm



## Jacob311 (29. Sep 2010)

Hallo Leute,

es handelt sich um eine Objekt orientierte Programmierung und zwar hab ich 4 Klassen eine Main,eine Konto,eine Kontoliste und eine Knoten. In der Klasse Kontoliste soll eine Methode geschrieben werden, die ein Konto suchen kann und diese löscht und mir danach ein True ausgibt wenn es gelöscht wurde. Ich komme derzeit nicht weiter und wäre froh wenn ihr mir helft... Quelltext der Klasse steht unten.

Vielen Dank schonmal.

```
public class KontoListe
{
	private int anzahl = 0;
	private Knoten meinErsterKnoten = null;

	public void kontoHinzufuegen (Konto k)
	{
		if (meinErsterKnoten == null)
		{
			meinErsterKnoten = new Knoten (k);
			anzahl++;
		}
		else
		{
			Knoten temp = this.meinErsterKnoten;
			while (temp.getMeinNaechsterKnoten() != null)
			{
				temp = temp.getMeinNaechsterKnoten();
			}
			temp.setMeinNaechsterKnoten (new Knoten(k));
			anzahl++;
		}
	}

	public Konto sucheKonto (String nummer)
	{
		if (meinErsterKnoten == null)
		{
			return null;
		}
		else
		{
			Knoten temp = this.meinErsterKnoten;
			do
			{
				Konto k = temp.getMeinKonto();
				if (k.getKtonr().equalsIgnoreCase(nummer))
				{
					return k;
				}
				else
				{
					temp = temp.getMeinNaechsterKnoten();
				}
			}while (temp.getMeinNaechsterKnoten()!=null);
			Konto k = temp.getMeinKonto();
			if (k.getKtonr().equalsIgnoreCase(nummer))
			{
				return k;
			}
			else
			{
				return null;
			}
		}
	}

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

}
```


----------



## Atze (29. Sep 2010)

kannst du das vielleicht in java-tags packen, damit das lesbar wird und nicht im auge weh tut?  dann hilft dir sicher gern jemand 

*edit*:

slater war so nett, irgnorier meinen post!


----------



## Jacob311 (29. Sep 2010)

Jaa danke hatte das nicht gesehen sorry :bae:


----------



## SlaterB (29. Sep 2010)

zur Suche ist doch ne Menge da, zufrieden oder welches Problem besteht?

zum Löschen solltest du die Methode eher so bauen, dass sie den zugehörigen Knoten zurückgibt, bzw. du brauchst den Vorgänger, also vielleicht eine separate Methoden, 
beim Vorgänger dann meinNaechsterKnoten ändern


----------



## Jacob311 (29. Sep 2010)

Sorry ich hab gerade 0 durchblick wie soll ich die umschreiben hier die Knoten Klassen....


```
public class Knoten
{
	private Knoten meinNaechsterKnoten = null;
	private Konto meinKonto;

	public Knoten (Konto k)
	{
		this.meinKonto = k;
	}

	public Knoten getMeinNaechsterKnoten()
	{
		return meinNaechsterKnoten;
	}

	public void setMeinNaechsterKnoten (Knoten k)
	{
		meinNaechsterKnoten = k;
	}

	public Konto getMeinKonto()
	{
		return this.meinKonto;
	}

	public void setMeinKonto (Konto k)
	{
		this.meinKonto = k;
	}

}
```


----------



## ARadauer (29. Sep 2010)

also löschen in einer verketten liste.
du läufst drüber wie bei der suche.
ist der nächste des aktullen der gesuchte, dann setzt du den näschten des aktuellen auf den nächsten des nächsten...
also:
A->B->C->D
C löschen.
A aktuell, nächste ist B, ne suchen wir nicht..
B aktuell, nächste ist C, jup den suchen wir
B.next = B.next.next;
so ungefähr...

aja fehlerfall behandung nicht vergessen.
wobei such mal nach verketteter liste java in google, dazu gibt es millionen beispiele, das ist ein standard beispiel auf jeder uni...


----------



## Jacob311 (29. Sep 2010)

Ja sitz gerade im Unterricht der Lehrer hats auch erklärt aber ich komm irgendwie nicht ganz mit wie ich hallt die Methode schreiben muss....


----------



## ARadauer (29. Sep 2010)

> Ja sitzen gerade im Unterricht der Lehrer hats auch erklärt aber ich irgendwie ich nicht ganz mit wie ich hallt die Methode schreiben muss....


habt ihr die sucheKonto Methode selber geschrieben? 

Bzw was ist jetzt die Frage? Sollen wir dir die Methode schreiben? Für ein stanard Beispiel, das als Übung schon jeder Student geschaft hat? Nö! ich nicht, strengts euch ein bissal an!
Wenn ihr nicht durchblickt, zeichnet euch eure Datenstruktur auf einen Zettel auf.. das hilft..


----------



## Jacob311 (29. Sep 2010)

Achso und mit welchem befehl lösche ich das dann ?


----------



## ARadauer (29. Sep 2010)

naja im grunde kannst du ihn nicht löschen, du hast eine verkette Liste, das wirst du ja mitbekommen haben.
A zeigt auf B 
B zeigt auf C
jetzt willst du B löschen... wie machst du das?
du lässt A auf C zeigen, fertig keiner zeigt mehr auf B, java kümmert sich ums löschen von B


----------



## Jacob311 (29. Sep 2010)

Jaaa das weiß ich nur wie verweise ich dann auf den anderen Knoten ?


----------



## ARadauer (29. Sep 2010)

temp.setMeinNaechsterKnoten (temp.getMeinNaechsterKnoten().getMeinNaechsterKnoten());


----------



## SlaterB (29. Sep 2010)

könntest du auf dem Papier A, B, C, D, E, F mit Strichen aufmalen und dann einen neuen Strich von A zum Nachfolger von B ziehen?
was ist im Programm denn so schwer, den Nachfolger von B herzuholen und den bei A zu setzen?


----------



## Atze (29. Sep 2010)

ist ja von keinem wirklich abwertend gemeint, aber wenn man das nicht durch logisches denken (und schon mit sooo viel hilfe) hinbekommt, ist das vielleicht n grund nicht in die it zu gehen. oder auf den hosenboden setzten und hirnschmalz anwerfen!!!  ist wirklich nicht schwer. aber wenn wir dir das jetzt komplett vorkauen, was machst du dann bei der nächsten aufgabe, die vielleicht (besser gesagt - bestimmt!!!) auf dem durch diese aufgabe erworbenen wissen beruht? wieder hier fragen? und bei der übernächsten? ... dann kann einer von uns deinen platz am rechner einnehmen, und du kannst eierschaukeln!


----------



## ARadauer (29. Sep 2010)

> ist das vielleicht n grund nicht in die it zu gehen


mhn hier im Forum gibts wirklich viele Posts von Leuten die ganz simple Übungen abschreiben wollen. Wär mal interessant, welche Schule oder Kurse diese Leute besuchen. Ich denke wenn ich so eine Aufgabe gestellt bekommen, mach ich doch eine Ausbildung für etwas wo ich das später mal benötigen werden...


----------



## Atze (29. Sep 2010)

ja, so denk ich mir das auch, deswegen sollte ja auch VIEL interesse und eigenengagement vorhanden sein, im normalfall. aber sicherlich gibts auch berufe, wo während der ausbildung nur so "am rande" auf die programmierung eingegangen wird / werden muss, wegen dem lehrplan halt. bspw systemintegratoren. imho ist das softwareverständnis trotzdem wichtig, aber empfindet wohl nicht jeder so. wer wirklich nur server verwalten und rechner zusammenbauen will, möchte vielleicht garnichts über softwareentwicklung wissen. ist schade, aber irgendwie auch verständlich! :/


----------



## Gastredner (1. Okt 2010)

Es kann auch auf den Lehrer ankommen. Ich kann mich noch gut an den Informatik-GK auf meiner Schule erinnern. Der Lehrer war ein wenig...einschläfernd, brachte den Stoff also nur bedingt interessant herüber. Folge: Die meiste Zeit über war der größte Teil des Kurses damit beschäftigt, Spiele zu spielen...
Und jetzt, auf dem Berufskolleg, ist dies nur wenig anders.


----------



## Swoop (1. Okt 2010)

also ich kenns von meiner ausbildung ... unser lehrer im ersten Lehrjahr war die Hölle im programmieren ... Dann gabs halt die Anwendungsentwickler, die das ganze Tag täglich im Beruf gemacht haben und halt die Systemintegratoren, die sowas noch nie gemacht hatten. Der Lehrer zog den Stoff aber so schnell durch das unsere Syso´s total überfordert waren. Außerdem war der Lehrer ein richtiges Ar***loch und gab auf Nachfragen nur Antworten wie " Gerade hab ichs erklärt... hast wohl nicht aufgepasst" oder " Solltest wohl etwas besser zu hören und es daheim nochmals versuchen". Das ist eher nicht so hilfreich ...


----------



## Atze (1. Okt 2010)

Gastredner hat gesagt.:


> Es kann auch auf den Lehrer ankommen. Ich kann mich noch gut an den Informatik-GK auf meiner Schule erinnern. Der Lehrer war ein wenig...einschläfernd, brachte den Stoff also nur bedingt interessant herüber. Folge: Die meiste Zeit über war der größte Teil des Kurses damit beschäftigt, Spiele zu spielen...
> Und jetzt, auf dem Berufskolleg, ist dies nur wenig anders.


ja, sowas ist traurig, pädagogen sollten schon spaß an ihrem beruf haben, sonst haben die schüler die arschkarte! aber berufsschullehrer sind meist eh nur teilzeit-lehrer, bzw "umschüler"!



Swoop hat gesagt.:


> also ich kenns von meiner ausbildung ... unser lehrer im ersten Lehrjahr war die Hölle im programmieren ... Dann gabs halt die Anwendungsentwickler, die das ganze Tag täglich im Beruf gemacht haben und halt die Systemintegratoren, die sowas noch nie gemacht hatten. Der Lehrer zog den Stoff aber so schnell durch das unsere Syso´s total überfordert waren. Außerdem war der Lehrer ein richtiges Ar***loch und gab auf Nachfragen nur Antworten wie " Gerade hab ichs erklärt... hast wohl nicht aufgepasst" oder " Solltest wohl etwas besser zu hören und es daheim nochmals versuchen". Das ist eher nicht so hilfreich ...


andersrum wäre es besser gewesen, auf das schwächste glied der kette einstellen. aber dann hätten sie die AEs gelangweilt! ist wohl schwer es allen recht zu machen


----------



## aschunk (3. Nov 2010)

Hallo,

du läuft einfach durch alle Knoten in der Liste mit einer while Schleife.

Solange du nicht am Ende der Liste bist, läuft du durch alle Knoten.

Das ist eigentlich ein ganz trivialer Algorithmus.


----------

