Die Lösung der Aufgabe 2014 (siehe Aufgabe auf 30.11.2017), die wir letztes Mal besprochen haben, nochmal hier. Ich habe die Aufgabe noch etwas mit Kommentaren versehen.

Sie finden hier jeweils nur die relevanten Ausschnitte.

Klasse Annuitaetendarlehen

Java-Code
  public double ermittleAnnuitaet() { double q = 1 + (this.getZinssatz() / 100); double annuitaetenfaktor = 0; int n = this.getLaufzeit(); annuitaetenfaktor = java.lang.Math.pow(q, n) * ((q - 1) / (Math.pow(q, n) - 1)); double jaehrlicheAnnuitaet = 0; jaehrlicheAnnuitaet = this.getDarlehensbetrag() * annuitaetenfaktor; return jaehrlicheAnnuitaet; }   public Annuitaetendarlehen(double darlehensbetrag, int laufzeit, int darlehensnr) { this.darlehensbetrag = darlehensbetrag; this.laufzeit = laufzeit; this.darlehensnr = darlehensnr; }   public String erstelleUebersicht() { String zurueckgeben = ""; zurueckgeben = zurueckgeben + "Uebersicht Annuitaeten-Darlehen\n"; zurueckgeben += "Darlehensnummer:\t" + this.getDarlehensnr() + "\n"; zurueckgeben += "Darlehensbetrag:\t" + this.getDarlehensbetrag() + "\n"; zurueckgeben += "Laufzeit:\t" + this.getLaufzeit() + "\n"; zurueckgeben += "Zinssatz:\t" + this.getZinssatz() + " %" + "\n\n"; zurueckgeben += "Jahr\tTilgung\tZinsen\tRestdarlehen\n";     // am besten möglichst viel in lokalen Variablen speichern: double aktuellesDarlehen = this.getDarlehensbetrag(); // darlehen reduziert sich in dieser Variable double annuitaet = this.ermittleAnnuitaet(); // könnte man auch in der Schleife machen, dann aber immer mit anfänglichem // Darlehensbetrag! double zins, tilgung; for(int jahr = 1; jahr <= this.getLaufzeit();jahr++) { zins = aktuellesDarlehen * this.getZinssatz()/100; tilgung = annuitaet - zins; aktuellesDarlehen = aktuellesDarlehen - tilgung;     zurueckgeben += jahr + "\t" + this.format_als_EUR(tilgung) + "\t" + this.format_als_EUR(zins) + "\t" + this.format_als_EUR(aktuellesDarlehen) + "\n"; } return zurueckgeben; }    

Klasse Mitarbeiter

Java-Code
  public class Mitarbeiter { private String name,vorname; private ArrayList<Annuitaetendarlehen> darlehensliste = new ArrayList<Annuitaetendarlehen>();   public Mitarbeiter(String name, String vorname) { this.name = name; this.vorname = vorname; }   public void darlehenHinzufuegen(Annuitaetendarlehen einDarlehen) { this.getDarlehensliste().add(einDarlehen); } public void darlehenEntfernenDarlehensobjekt(Annuitaetendarlehen einDarlehen) { // ACHTUNG // In der Aufgabe ist gefragt, wie man ein Darlehen entfernt, wenn man nur die NUMMER // bekommt! // siehe nächste Methode this.getDarlehensliste().remove(einDarlehen); } public void darlehenEntfernen(int darlehensnummer) { for(Annuitaetendarlehen d : this.getDarlehensliste()){ if(d.getDarlehensnr() == darlehensnummer) { this.getDarlehensliste().remove(d); } } } public double berechneDarlehenssumme(){ double summe = 0; for(Annuitaetendarlehen d : this.getDarlehensliste()) { summe += d.getDarlehensbetrag(); } return summe; }  

Struktogramm Aufgabe 2.2.5