Hallo zusammen,
ich habe ein paar Fragen zu einem Programm, welches wir im Schulunterricht erstellen sollten, es handelt sich um die Ausgabe eines Tilgungsplans in Abhängigkeit von Kredit, Rate und Zinssatz:
Die Eingabe soll folgendermaßen aussehen:
Dies habe ich folgendermaßen realisiert:
Hier noch die anhaengen-Methode, welche ich nicht selbst programmiert, sondern aus dem Internet habe. Mit ihr wollte ich den rechtsbündigen Text in der Ausgabe realisieren:
Nun habe ich folgende Fragen:
Ich bedanke mich im Vorraus für eure Hilfe.
Viele liebe Grüße
Kri
ich habe ein paar Fragen zu einem Programm, welches wir im Schulunterricht erstellen sollten, es handelt sich um die Ausgabe eines Tilgungsplans in Abhängigkeit von Kredit, Rate und Zinssatz:
Die Eingabe soll folgendermaßen aussehen:
Code:
Geben Sie bitte ihre Kreditdaten ein:
Kreditvolumen (Euro): 10000
Zinssatz: 10
monatl. Rate (Euro): 1000
Code:
Tilgungsplan
-------------------------------------------------------------------
Monat Restkredit mtl. Rate Tilgung Zinsen
-------------------------------------------------------------------
1 10.000,00 1.000,00 916,67 83,33
2 9.083,33 1.000,00 924,31 75,69
3 8.159,03 1.000,00 932,01 67,99
4 7.227,02 1.000,00 939,77 60,23
5 6.287,24 1.000,00 947,61 52,39
6 5.339,64 1.000,00 955,50 44,50
7 4.384,14 1.000,00 963,47 36,53
8 3.420,67 1.000,00 971,49 28,51
9 2.449,18 1.000,00 979,59 20,41
10 1.469,59 1.000,00 987,75 12,25
11 481,83 1.000,00 481,83 4,02
Die Laufzeit war 11 Monate
Gesamtzinsen 485.84 Euro
Dies habe ich folgendermaßen realisiert:
Code:
public void setzeTestwerte()
{
kredit = 10000;
zinssatz = 10;
raten = 1000;
}
Code:
public void tilgungsPlanAusgeben()
{
System.out.println("Tilgungsplan");
System.out.println("-------------------------------------------------------------------");
System.out.println("Monat\tRestkredit\tmtl. Rate\tTilgung\t\tZinsen");
System.out.println("-------------------------------------------------------------------");
monat = 1;
rest = kredit;
gesamtZinsen = 0;
while (rest > raten)
{
zinsen = rest * ((zinssatz / 100) / 12);
tilgung = raten - zinsen;
gesamtZinsen = gesamtZinsen + zinsen;
System.out.println(anhaengenint("" ,monat, 3)+anhaengen("", rest, 15)+anhaengen("", raten, 15)+anhaengen("", tilgung, 14)+anhaengen("", zinsen, 15));
rest = rest - tilgung;
monat++;
}
zinsen = zinssatz * (rest / 100) / 12;
tilgung = raten - zinsen;
gesamtZinsen = gesamtZinsen + zinsen;
gesamtZinsen = Math.round(gesamtZinsen * 100) / 100.0;
System.out.println(anhaengenint("" ,monat, 3)+anhaengen("", rest, 15)+anhaengen("", raten, 15)+anhaengen("", rest, 14)+anhaengen("", zinsen, 15));
System.out.println();
System.out.println("Die Laufzeit war "+ monat + " Monate");
System.out.println("Gesamtzinsen " + gesamtZinsen + " Euro");
}
Hier noch die anhaengen-Methode, welche ich nicht selbst programmiert, sondern aus dem Internet habe. Mit ihr wollte ich den rechtsbündigen Text in der Ausgabe realisieren:
Code:
String anhaengen(String text, double zahl, int stellen)
{
// zum Formatieren von Dezimalzahlen
DecimalFormat df = new DecimalFormat("#,###,##0.00");
String tmp = df.format(zahl);
// Leerstellen in Abhängigkeit der Länge der Zahl anhängen
for(int leer = 0; leer < stellen-tmp.length(); leer++)
{
text +=" "; // Leerstelle addieren
}
text += tmp; // zahl addieren
return text; // neuen String zurückgeben
}
Nun habe ich folgende Fragen:
- Die Rechtsbündigkeit kommt mir sehr unsauber umgesetzt bzw. falsch angewendet vor, gibt es Verbesserungstipps für Rundung und Bündigkeit?
- Lässt sich die Dauer der Rückzahlung nicht auch über den Logarithmus bestimmen? Habe dazu folgende Formel von Wikipedia:
- Wir haben bisher nur Konsolenprogramme geschrieben, nun würde ich mir gerne paralell zur Konsolenausgabe der Tabelle eine grafische Ausgabe zweier Funktionsgraphen ausgeben lassen (lineare Funktion der Rückzahlung ohne Zinsen _und_ expotentielle Funktion der Rückzahlung mit Zinsen)
Habe mir nun mehrere Quellcodes zur graphischen Darstellung angeschaut, doch je mehr es wurden, desto verwirrter wurde ich. Verstanden habe ich, dass ich einen Frame erstellen muss und in diesem Frame eine Zeichenoberfläche. Doch was am besten benutzen?
*.awt.* oder *.swing.*? panel oder canvas? Bin leider unerfahren mit Grafiken, dafür umso interessierter es zu lernen
Ich bedanke mich im Vorraus für eure Hilfe.
Viele liebe Grüße
Kri