bitte Hilfe beim Kreditrechner objektorientiert

pry

Mitglied
Zur Aufgabe:

In der Klasse KreditvertragDemo finden Sie eine (verkürzte) Variante der Restschuldberechnung bei Kreditverträgen. Statt eine Eingabe abzufragen, sind die Wert unseres Beispielvertrages in Kon- stanten abgelegt, und statt einen Tilgungsplan auszugeben, wird nur die Restschuld berechnet und ausgegeben.

Die Restschuldberechnung findet in einer Klassenmethode berechneRestschuld(..) statt, der
alle Werte des Kreditvertrages als Argumente übergeben werden können

Ergänzen Sie die (leere) Klasse Kreditvertrag so und ergänzen Sie Objektvariablen, Konstrukto- ren und eine Operation so, dass Sie stattdessen die objektorientierte Variante einkommentieren können und das- selbe Ergebnis erhalten:

/* Objektorientierte Variante */

Kreditvertrag vertrag = new Kreditvertrag(KREDITSUMME, LAUFZEIT, JAHRESZINS, RATE);
int restSchuldObjektorientiert = vertrag.berechneRestschuld();
[CODE lang="java" title="verkürzte Variante"]public class KreditvertragDemo {

static final int KREDITSUMME = 20000000;
static final int LAUFZEIT = 120;
static final double JAHRESZINS = 0.0137;
static final int RATE = 72833;


public static void main(String[] args) {

/* Nicht-objektorientierte Variante */
int restSchuldKlassisch = berechneRestschuld(KREDITSUMME, LAUFZEIT, JAHRESZINS, RATE);
System.out.printf("Restschuld: %.2f€.", restSchuldKlassisch * 0.01);

/* Objektorientierte Variante */
// Kreditvertrag vertrag = new Kreditvertrag(KREDITSUMME, LAUFZEIT, JAHRESZINS, RATE);
// int restSchuldObjektorientiert = vertrag.berechneRestschuld();
// System.out.printf("Restschuld: %.2f€.", restSchuldObjektorientiert * 0.01);
}


static int berechneRestschuld(int kreditsummeInCent, int laufzeitInMonaten,
double jahreszins, int rateInCent) {
int restschuldInCent = kreditsummeInCent;

for (int i = 1; i <= laufzeitInMonaten; i++) {
int zinsenInCent = (int) Math.round(restschuldInCent * jahreszins / 12);
int tilgungInCent = rateInCent - zinsenInCent;
restschuldInCent -= tilgungInCent;
}
return restschuldInCent;
}
}[/CODE]
System.out.printf("Restschuld: %.2f.", restSchuldObjektorientiert * 0.01);



kann mir bitte jemand behilflich sein.. bräuchte den Code zur Anwendung der objektorientierten Variante. Wäre euch sehr sehr dankbar..
 
Du hast doch den anderen Thread bereits und da hast Du doch die Lösung schon fast erarbeitet ...

Was versprichst du Dir von diesem Thread?
 
bin der Meinung, dass das nicht ganz stimmt. wäre so nicht weitergekommen und frage daher sofort nach der Lösung
Java:
public class Kreditvertrag {

  int KREDITSUMME;
  int LAUFZEIT;
  double JAHRESZINS;
  int RATE;


Kreditvertrag(int KREDITSUMME, int LAUFZEIT, double JAHRESZINS, int RATE){
    this.KREDITSUMME = KREDITSUMME;
    this.LAUFZEIT = LAUFZEIT;
    this. JAHRESZINS = JAHRESZINS;
    this.RATE = RATE;

}

  static void berechneRestschuld() {

  }

  Kreditvertrag vertrag = new Kreditvertrag(KREDITSUMME, LAUFZEIT, JAHRESZINS, RATE);
  int restSchuldObjektorientiert = vertrag.berechneRestschuld();
  System.out.printf("Restschuld: %.2f€.", restSchuldObjektorientiert * 0.01);

}
 
Da sind einige Dinge auch noch nicht stimmig:

Du hast den Code, der in der Hauptklasse angegeben war und die Nutzung der Klasse Kreditvertrag zeigt, jetzt in die Klasse kopiert. Das gehört das natürlich nicht hin. Das soll ja die main Methode machen.

Und berechneRestschuld ist falsch:
- zum einen solltest Du über die Methodensignatur nachdenken - da stimmt noch etwas nicht. Ggf. einfach mal uns erläutern, was die einzelnen Teile der Signatur machen ("static void berechneRestschuld()").
- Dann fehlt da noch die eigentliche Berechnung. Denn da muss ja jetzt irgendwie inhaltlich die folgende Methode umgesetzt werden:
Java:
  static int berechneRestschuld(int kreditsummeInCent, int laufzeitInMonaten,
                                double jahreszins, int rateInCent) {
    int restschuldInCent = kreditsummeInCent;

    for (int i = 1; i <= laufzeitInMonaten; i++) {
      int zinsenInCent = (int) Math.round(restschuldInCent * jahreszins / 12);
      int tilgungInCent = rateInCent - zinsenInCent;
      restschuldInCent -= tilgungInCent;
    }
    return restschuldInCent;
  }
 
Da sind einige Dinge auch noch nicht stimmig:

Du hast den Code, der in der Hauptklasse angegeben war und die Nutzung der Klasse Kreditvertrag zeigt, jetzt in die Klasse kopiert. Das gehört das natürlich nicht hin. Das soll ja die main Methode machen.

Und berechneRestschuld ist falsch:
- zum einen solltest Du über die Methodensignatur nachdenken - da stimmt noch etwas nicht. Ggf. einfach mal uns erläutern, was die einzelnen Teile der Signatur machen ("static void berechneRestschuld()").
- Dann fehlt da noch die eigentliche Berechnung. Denn da muss ja jetzt irgendwie inhaltlich die folgende Methode umgesetzt werden:
Java:
  static int berechneRestschuld(int kreditsummeInCent, int laufzeitInMonaten,
                                double jahreszins, int rateInCent) {
    int restschuldInCent = kreditsummeInCent;

    for (int i = 1; i <= laufzeitInMonaten; i++) {
      int zinsenInCent = (int) Math.round(restschuldInCent * jahreszins / 12);
      int tilgungInCent = rateInCent - zinsenInCent;
      restschuldInCent -= tilgungInCent;
    }
    return restschuldInCent;
  }
verstehe nur Bahnhof :/ sorry.. wie gesagt das ganze ist total neu für mich, daher wollte ich einfach nach der Lösung fragen. Oft verstehe ich nur dann den Lösungsweg. Trotzdem vielen Dank.
 
Ich bezweifle, dass Dir jemand die Lösung einfach so geben wird und ich bezweifle, dass es in so einem fall einen Lerneffekt geben würde. Ziel sollte sein, dass Du in der Lage bist, einfache Java Grundlagen anzuwenden.

Und im Augenblick weiss ich nicht einmal, was genau ich erläutern sollte, damit Du es verstehst. Du solltest evtl. einmal eine Java Einführung zum Thema Methoden lesen. Bedeutung des Schlüsselwortes static, Rückgabetypen (void, double, ...) und so ... Das dürfte das Thema sein, an dem es gerade hapert.
 

Zurück
Oben