Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Darlehensarten (Objekte und Klassen)

Es sollen verschiedene Darlehensformen verglichen werden.

Festdarlehen/Entfälliges Darlehen:

Tilgungsdarlehen

  • gleichbleibende Tilgungsraten
  • sinkende Zinskosten über die Laufzeit
  • Wikipedia-Artikel

Aufgabe:

Erstellen Sie eine Klasse Darlehen, die als Startparameter die Kreditsumme, die Laufzeit, den Zinssatz, und die Art des Darlehens entgegennimmt(Integer oder String). Die Klasse sollte so gebaut sein, dass man ohne Probleme noch eine dritte Darlehensart (z.B. Das Annuitätendarlehen) hinzufügen kann.

Die Ausgabe sollte möglichst als Tabelle dargestellt werden, wobei die Ausgabe nicht Bestandteil der Klasse sein muss. Sie sollte folgende Spalten enthalten:

  • Jahr
  • Tilgung
  • Restschuld
  • Zinsen
  • Gesamtbelastung

enthalten.

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

5 Lösung(en)

#include <iomanip>
#include <iostream>

using namespace std;

class darlehen
{
    public:
        void liesDaten(double summe, int laufzeit, double zinssatz, int auswahl);

    private:
        void fest(double summe, int laufzeit, double zinssatz);
        void tilgung(double summe, int laufzeit, double zinssatz);
        void ausgabe(int jahr, double tilgung, double restschuld, double zinsen, double gesamtbelastung);
};

int main(void)

{
    int laufzeit, auswahl = 0;
    double summe, zinssatz = 0;
    darlehen a;
    cout << "Bitte die Darlehenssumme eingeben: ";
    cin >> summe;
    cout << "Bitte die Laufzeit eingeben: ";
    cin >> laufzeit;
    cout << "Bitte den Zinssatz als Zahl eingeben :";
    cin >> zinssatz;
    cout << "Welche Art von Darlehen" << endl;
    cout << "1. Festdarlehen" << endl;
    cout << "2. Tilgungsdarlehen" << endl;
    cin >> auswahl;
    a.liesDaten(summe,laufzeit,zinssatz,auswahl);
    return 0;
}

void darlehen::liesDaten(double summe, int laufzeit, double zinssatz, int auswahl)
{
    switch(auswahl) {

        case 1: fest(summe, laufzeit, zinssatz);
        break;
        case 2: tilgung(summe, laufzeit, zinssatz);
        break;
    }
}

void darlehen::fest(double summe, int laufzeit, double zinssatz)
{
    double zinsen = 0;
    zinsen = summe*zinssatz/100;
    cout << setw(20) << "Jahr" << setw(20) << "Tilgung" << setw(20) << "Restschuld" << setw(20) << "Zinsen" << setw(20) << "Gesamtbelastung" << endl;
    for(int i=1; i<laufzeit; i++) {

        ausgabe(i,0,summe,zinsen,zinsen);
    }

    ausgabe(laufzeit,summe,summe,zinsen,zinsen+summe);
}

void darlehen::tilgung(double summe, int laufzeit, double zinssatz)
{
    double tilgung = summe/laufzeit;
    double zinsen = 0;

    cout << setw(20) << "Jahr" << setw(20) << "Tilgung" << setw(20) << "Restschuld" << setw(20) << "Zinsen" << setw(20) << "Gesamtbelastung" << endl;

    for(int i=1; i<=laufzeit; i++) {
        zinsen=summe*zinssatz/100;
        ausgabe(i,tilgung,summe,zinsen,zinsen+tilgung);
        summe -= tilgung;
    }
}

void darlehen::ausgabe(int jahr, double tilgung, double restschuld, double zinsen, double gesamtbelastung)
{
    cout << setw(20) << jahr << setw(20) << tilgung << setw(20) << restschuld << setw(20) << zinsen << setw(20) << gesamtbelastung << endl;
}

                

Lösung von: Name nicht veröffentlicht

public class Darlehen {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		vergleich(200000F, 6F, 5, 1);
		vergleich(200000F, 6F, 5, 2);

	}

	public static void vergleich(float credit, float zp, int time, int darlehen) {
		switch (darlehen) {
		case 1:
			Endfaellig end = new Endfaellig(credit, zp, time);
			break;
		case 2:
			Tilgungsdarlehen til = new Tilgungsdarlehen(credit, zp, time);
			break;
		default:
			break;
		}
	}

}

public class Endfaellig {
	public Endfaellig(float credit, float zp, int time) {
		getZins(credit, zp, time);
	}

	public void getZins(float credit, float zp, int time) {
		float zins = credit * zp / 100;
		float sumZins = 0;
		float tilgung = 0;
		for (int i = 1; i <= time; i++) {
			System.out.print("Jahr: " + i + "\t");
			System.out.print("Restschuld: " + credit + "\t");
			System.out.print("Zins: " + zins + "\t");
			if (i < time) {
				System.out.print("Tilgung: 0 \t\t");
				tilgung += 0;
				System.out.println("jährliche Rate: " + (zins + tilgung) + "\t");
			} else {
				System.out.print("Tilgung: " + credit + "\t");
				tilgung += credit;
				System.out.println("jährliche Rate: " + (zins + tilgung) + "\t");
			}
			sumZins += zins;

		}
		System.out.println("\t\t\t\t" + sumZins + "\t\t " + tilgung + "\t\t " + (sumZins + tilgung));

	}

}

public class Tilgungsdarlehen {
	public Tilgungsdarlehen(float credit, float zp, int time) {
		getZins(credit, zp, time);
	}

	public void getZins(float credit, float zp, int time) {
		float zins = credit * zp / 100;
		float subZins = zins / time;
		float sumZins = 0;
		float tilgung = credit / time;
		float sumtilgung = 0;
		float rest = credit;
		for (int i = 1; i <= time; i++) {
			sumZins += zins;
			sumtilgung += tilgung;
			System.out.print("Jahr: " + i + "\t");
			System.out.print("Restschuld: " + rest + "\t");
			System.out.print("Zins: " + zins + "\t");
			System.out.print("Tilgung: " + (tilgung) + "\t");
			System.out.println("Gesamt: " + (tilgung + zins) + "\t");
			zins -= subZins;
			rest -= tilgung;
		}
		System.out.println("\t\t\t\tsumZins" + sumZins + "\t\t " + sumtilgung + "\t\t " + (sumZins + sumtilgung));

	}

}


                

Lösung von: Helge Meiering ()


def darlehen(creditsum,runtime,zins,art):
    if(art == 1):
        return Festdarlehen(creditsum,runtime,zins)
    if(art == 2):
        return Tilgungsdarlehen(creditsum,runtime,zins)



def Festdarlehen(creditsum,runtime,zins):
    i = 0
    zinssum = 0
    while(i != runtime):
        zinssum += (creditsum*(float(zins)/100))
        i += 1
    print('Jahre:\t'+str(runtime)+'\tCredit:\t'+str(creditsum)+'€'+'\tZinssatz:\t'+str(zins)+'%'+'\tSumme:\t'+str(creditsum+zinssum)+'€')
    return(creditsum+zinssum)


def Tilgungsdarlehen(creditsum,runtime,zins):
    i = 0
    zinssum = 0
    restcredsum = creditsum
    tilgung = creditsum / runtime
    while(i != runtime):
        zinssum += (restcredsum*(float(zins)/100))
        restcredsum = restcredsum-tilgung
        i += 1
    print('Jahre:\t'+str(runtime)+'\tCredit:\t'+str(creditsum)+'€'+'\tZinssatz:\t'+str(zins)+'%'+'\tSumme:\t'+str(creditsum+zinssum)+'€')
    return(creditsum+zinssum)      

def main():
    darlehen(100000,5,5,1)
    darlehen(100000,5,5,2)


if __name__ == '__main__':
    main()

                

Lösung von: Name nicht veröffentlicht

#csum == Kreditsumme
#rtime = Laufzeit
#irate == Zinssatz
#type == Darlehensart
#type == 1 == Festdarlehen
#type == 2 == Tilgungsdarlehen

class darlehen(object):
	
	
	def __init__(self, csum, rtime, irate, type):
		self.csum = csum
		self.rtime = rtime
		self.irate = irate
		self.type = type
	
	def runtime(self):
		
		return self.rtime 
	
	def repay(self):
		rpay = []
		if self.type == 1:
		
			for r in range(self.rtime):
				
				if r+1 == self.rtime:
					
					rpay.append(self.csum)
				else:
					
					rpay.append(0)
			
			return rpay
		
		elif self.type == 2:
			pay = self.csum/self.rtime
			for r in range(self.rtime):
				
				rpay.append(pay)
			return rpay
			
	def remdebt(self):
		
		rdebt= []		
		if self.type == 1:
			
			for r in range(self.rtime):
			
				rdebt.append(self.csum)
			
			return rdebt
			
		elif self.type == 2:
				
			for r in range(self.rtime):
				
				arpay = self.csum-(self.csum/self.rtime)*r
				
				rdebt.append(arpay)
			
			return rdebt
		
	def interest(self):
		intrst = []
		if self.type == 1:
						
			for r in range(self.rtime):
				
				intrst.append(int(self.csum*(float(self.irate)/100)))
			
			return intrst
		
		elif self.type == 2:
			
			pay = self.csum/self.rtime
			
			for r in range(self.rtime):
				
				arpay = self.csum-(self.csum/self.rtime)*r
			
				itrst = arpay*(float(self.irate)/100)
				
				intrst.append(int(itrst))
			
			return intrst
	
	def tload(self):
		tld = []
		if self.type == 1:
			
			for r in range(self.rtime):
				
				if (r+1) == self.rtime:
					xyz = self.csum + self.interest()[0]
					
					tld.append(xyz)
				else:
					
					tld.append(self.interest()[0])
					
			return tld
			
		elif self.type == 2:
			
			for r in range(self.rtime):
				
				xyz = self.csum/self.rtime + self.interest()[r]
				tld.append(xyz)
			
			return tld

meins = darlehen(200000,5,6,1)
mein = darlehen(200000,5,6,2)

def darl_darstellung(x):
	print "Jahr   Tilgung   Restschuld   Zinsen   Gesamtbelastung"
	if x.type == 1:
		
		for r in range(x.runtime()):
		
			if r+1 == x.runtime():
				
				print str(r+1) + "       "+ str(x.repay()[r]) +"     "+ str(x.remdebt()[r]) +"      "+str(x.interest()[r]) +"      "+str(x.tload()[r])
			else:
				print str(r+1) + "       "+ str(x.repay()[r]) +"          "+ str(x.remdebt()[r]) +"      "+str(x.interest()[r]) +"      "+str(x.tload()[r])
		
	elif x.type == 2:
		for r in range(x.runtime()):
		
			print str(r+1) + "       "+ str(x.repay()[r]) +"     "+ str(x.remdebt()[r]) +"      "+str(x.interest()[r]) +"      "+str(x.tload()[r])  

darl_darstellung(meins)

print "\n"

darl_darstellung(mein)

raw_input()
                

Lösung von: Kor Py ()

function LoanScheme(sum, life, interest, type) {
  this.sum = sum;
  this.life = life;
  this.interest = interest * .01;
  /*=====================*\
  | TYPES                 |
  | ===================== |
  | 'bullet'  : endfällig |
  | 'amortize': tilgung   |
  | 'annuity' : TODO      |
  \*---------------------*/
  this.type = type || undefined;

  this.plot = function() {

    if (this.type == 'bullet') {
      let charge = this.sum * this.interest;
      document.write('<h1>Festdarlehen</h1><table>');
      document.write(`<tr>
        <th>Jahr</th>
        <th>Tilgung</th>
        <th>Restschuld</th>
        <th>Zinsen</th>
        <th>Gesamtbelastung</th></tr>
      `);
      for (let x = 1; x <= life-1; x++)
        document.write(`<tr>
          <td>${x}</td>
          <td>0</td>
          <td>${sum.toLocaleString()}</td>
          <td>${charge.toLocaleString()}</td>
          <td>${charge.toLocaleString()}</td></tr>
        `);
      document.write(`<tr>
        <td>${life}</td>
        <td>${sum.toLocaleString()}</td>
        <td>${sum.toLocaleString()}</td>
        <td>${charge.toLocaleString()}</td>
        <td>${(sum + charge).toLocaleString()}</td></tr></table>
      `);
    }

    if (this.type == 'amortize') {
      let part = this.sum / this.life,
          s = this.sum;
      document.write('<h1>Abzahlungsdarlehen</h1><table>');
      document.write(`<tr>
        <th>Jahr</th>
        <th>Tilgung</th>
        <th>Restschuld</th>
        <th>Zinsen</th>
        <th>Gesamtbelastung</th></tr>
        <tr><td>1</td>
        <td>${part.toLocaleString()}</td>
        <td>${s.toLocaleString()}</td>
        <td>${(s * this.interest).toLocaleString()}</td>
        <td>${(s * this.interest + part).toLocaleString()}</td><tr>
      `);
      for (let x = 2; x <= this.life; x++) {
        s -= part;
        i = s * this.interest;
        document.write(`<tr>
          <td>${x}</td>
          <td>${part.toLocaleString()}</td>
          <td>${s.toLocaleString()}</td>
          <td>${i.toLocaleString()}</td>
          <td>${(part + i).toLocaleString()}</td><tr>
        `);
      }
      document.write('</table>')
    }

    if (this.type == undefined) {
      this.type = 'bullet'; this.plot();
      this.type = 'amortize'; this.plot();
    }
  }
}

new LoanScheme(2e5, 5, 6).plot();

                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

Verifikation/Checksumme:

Kreditsumme : 200000

Laufzeit: 5 Jahre

Zinssatz: 6 % p.a.

Festdarlehen:

Jahr Tilgung Restschuld Zinsen Gesamtbelastung
1 0 200000 12000 12000
2 0 200000 12000 12000
3 0 200000 12000 12000
4 0 200000 12000 12000
5 200000 200000 12000 212000

 

 

 

 

 

 

Abzahlungsdarlehen:

Jahr Tilgung Restschuld Zinsen Gesamtbelastung
1 40000 200000 12000 52000
2 40000 160000 9600 49600
3 40000 120000 7200 47200
4 40000 80000 4800 44800
5 40000 40000 2400 42400

 

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 1
Schwierigkeit: Schwer
Webcode: ki3g-2snu
Autor: ()

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen