M
misaki
Gast
Hallo!! Ich hab eine neue Aufgabe und zwar soll ich zu einer vorhanden Klasse Konto eine neue Methode für einen Kontoauszug hinzufügen. Dieser soll dann immer den Kontostand vorher, die Bewegungen und den Kontostand nachher ausgeben also so:
alter Kontostand: 100.0
Veränderungen: 38.0 -10.0 3.7 ...
neuer Kontostand: xx.0
jaa ... der kontostand soll dann in einer testdatei aufrubar sein und außerdem automatisch nach 10 veränderungen ausgegeben werden ..
ich hab jetzt in der klassendatei ein array erstellt mit 10 feldern, in dem ich die werte der bewegungen immer abspeichern will und bei abfrage ausgeben. das ist auch genau der Teil der nicht funktioniert - irgendwie wird das nie an der richtigen position abgespeichert.
Wie gehe ich zur Position? Ich habe in der Test-Datei eine for-schleife, die von 0 bis 10 geht, sobald die 10 erreicht ist, wird der kontostand ausgegeben und die position wieder auf 0 gesetzt. Bei einer Abfrage des Kontostands wird die Position auch auf 0 gesetzt.
Die Schleife ist keine Endlosschleife, sie ist jederzeit mit einer Wahl, die ähnlich wie der Kontostand läuft, beendbar.
Soo ... und jetzt hab ich das Problem ,dass ich wohl irgendwie nicht auf die Position der Testdatei in der Klasse zugreifen kann?? Ich verstehs einfach nicht ... Aber mein Array bewegung[] ist immer nur an pos 0 befüllt, die anderen sind leer.
... ja? Wo liegt der Fehler? Ich find ihn einfach nicht ..
alter Kontostand: 100.0
Veränderungen: 38.0 -10.0 3.7 ...
neuer Kontostand: xx.0
jaa ... der kontostand soll dann in einer testdatei aufrubar sein und außerdem automatisch nach 10 veränderungen ausgegeben werden ..
ich hab jetzt in der klassendatei ein array erstellt mit 10 feldern, in dem ich die werte der bewegungen immer abspeichern will und bei abfrage ausgeben. das ist auch genau der Teil der nicht funktioniert - irgendwie wird das nie an der richtigen position abgespeichert.
Wie gehe ich zur Position? Ich habe in der Test-Datei eine for-schleife, die von 0 bis 10 geht, sobald die 10 erreicht ist, wird der kontostand ausgegeben und die position wieder auf 0 gesetzt. Bei einer Abfrage des Kontostands wird die Position auch auf 0 gesetzt.
Die Schleife ist keine Endlosschleife, sie ist jederzeit mit einer Wahl, die ähnlich wie der Kontostand läuft, beendbar.
Soo ... und jetzt hab ich das Problem ,dass ich wohl irgendwie nicht auf die Position der Testdatei in der Klasse zugreifen kann?? Ich verstehs einfach nicht ... Aber mein Array bewegung[] ist immer nur an pos 0 befüllt, die anderen sind leer.
... ja? Wo liegt der Fehler? Ich find ihn einfach nicht ..
Java:
public class KontoPlus {
//-----------------------------------------Instanzvariablen
private double alt = 0;
private double neu = 0;
private double[] bewegung = new double[10];
private int position = 0;
//-------------------------------------------------Methoden
public void gutschreiben(double betrag){
if (betrag >= 0.0) {
bewegung[position] = betrag;
neu = neu + betrag;
}
else {
System.out.println("gutschreiben unzulaessig");
position = position - 1;
}
}
public void abbuchen(double betrag){
if (betrag >= 0.0 && betrag <= neu) {
bewegung[position] = -betrag;
neu = neu - betrag;
}
else {
System.out.println("abbuchen unzulaessig");
position = position - 1;
}
}
public void kontoauszug(){
System.out.println("alter Kontostand: " + alt);
System.out.println("Veraenderungen:");
for(int x = 0; x < 10; x++) {
if(bewegung[x] != 0.0)
System.out.print(" " + bewegung[x]);
}
System.out.println("");
System.out.println("neuer Kontostand: " + neu);
for(int x = 0; x < 10; x++)
bewegung[x] = 0.0;
alt = neu;
}
public double abfragen(){
return neu;
}
Java:
/***************************************************
*Programm illustriert Gebrauch von
*class Konten
***************************************************/
public class Bsp16{
public static void main(String[] args){
KontoPlus meinKonto = new KontoPlus();
char choice = 'a';
double wieviel;
int position = 0;
for (position = 0; position <=10 && choice != 'e'; position++) {
if (position == 10) {
meinKonto.kontoauszug();
position = 0;
}
System.out.println("gib e(nde)||g(utschreiben)||a(bbuchen)||s(tand)|| k(onotoauszug)");
choice = SavitchIn.readLineNonwhiteChar();
if (choice == 'g'){
System.out.println("wieviel?");
wieviel = SavitchIn.readLineDouble();
meinKonto.gutschreiben(wieviel);
}
else if (choice == 'a'){
System.out.println("wieviel?");
wieviel = SavitchIn.readLineDouble();
meinKonto.abbuchen(wieviel);
}
else if (choice == 's') {
System.out.println(meinKonto.abfragen());
position = position - 1;
}
else if (choice == 'k') {
meinKonto.kontoauszug();
position = 0;
}
}
}
}
Zuletzt bearbeitet von einem Moderator: