New Example. Zinsen berechnen
authorAndreas Bilke <andreas@bilke.org>
Tue, 18 Jul 2017 13:33:23 +0000 (15:33 +0200)
committerAndreas Bilke <andreas@bilke.org>
Tue, 18 Jul 2017 13:33:23 +0000 (15:33 +0200)
Zinsen/cpp/Makefile [new file with mode: 0644]
Zinsen/cpp/zinsen.cpp [new file with mode: 0644]

diff --git a/Zinsen/cpp/Makefile b/Zinsen/cpp/Makefile
new file mode 100644 (file)
index 0000000..18587d8
--- /dev/null
@@ -0,0 +1,5 @@
+all:
+       g++ -Wall -o zinsen zinsen.cpp
+
+clean:
+       -rm zinsen
diff --git a/Zinsen/cpp/zinsen.cpp b/Zinsen/cpp/zinsen.cpp
new file mode 100644 (file)
index 0000000..31c47ad
--- /dev/null
@@ -0,0 +1,81 @@
+/*!
+ * \file zinsen.cpp
+ * \brief Berechnung der Zinsen bei gegebenen Vermögen, einer Laufzeit und einem Zinsatz
+ *
+ * Berechnet aus einem Anfangsvermögen, einer Laufzeit und einem Zinssatz das resultierende
+ * Vermögen. Es zeigt zusätzlich die Zinsen pro Jahr an.
+ *
+ * \author Andreas Bilke, M. Sc.
+ * \copyright GNU Public License
+ */
+
+#include <cstdlib>
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+
+void berechneZinsen(double, double, int);
+
+/*!
+ * \brief Einstiegspunkt für das Programm "zinsen".
+ *
+ * \param argc Die Anzahl der Kommandozeilenparameter
+ * \param argv Die Kommandozeilenparameter
+ * \return Den Erfolgsstatus des Programms
+ */
+int main(int argc, char** argv) {
+    double startwert;
+    double zinssatz;
+    int laufzeit;
+
+    std::string zeilenpuffer;
+
+    std::cout << "Berechnung der Zinsen pro Jahr." << std::endl << std::endl;
+
+    std::cout << "Anfangsvermögen (in EUR): ";
+    // Die Funktion getline liest eine ganze Zeile
+    // vom Standardinput und speichert sie in einer
+    // Variable
+    std::getline(std::cin, zeilenpuffer);
+    startwert = std::stod(zeilenpuffer);
+
+    std::cout << "Zinssatz (in Prozent):    ";
+    std::getline(std::cin, zeilenpuffer);
+    zinssatz = std::stod(zeilenpuffer);
+
+    std::cout << "Laufzeit (in Jahren):     ";
+    std::getline(std::cin, zeilenpuffer);
+    laufzeit = std::stoi(zeilenpuffer);
+
+    std::cout << std::endl;
+
+    berechneZinsen(startwert, zinssatz, laufzeit);
+
+    return EXIT_SUCCESS;
+}
+
+/*!
+ * \brief Berechnet die Zinsen für eine gewisse Laufzeit
+ *
+ * Berechnet die Zinsen und gibt den Ertrag für jedes Jahr der gesamten
+ * Laufzeit aus.
+ *
+ * \param startwert Das Anfangsvermögen in EUR
+ * \param zinssatz Der zu verwendende Zinssatz in Prozent
+ * \param laufzeit Die Gesamtlaufzeit in Jahren
+ */
+void berechneZinsen(double startwert, double zinssatz, int laufzeit) {
+    double vermoegen = startwert;
+
+    for (int jahr = 1; jahr <= laufzeit; jahr++) {
+        double zinsen = vermoegen*(zinssatz/100);
+
+        std::cout << std::fixed << std::setprecision(2)
+                  << jahr << ". Jahr. "
+                  << "Vermögen: " << vermoegen << " EUR, Zinsen: " << zinsen
+                  << " EUR, Neu: " << (vermoegen + zinsen) << " EUR" << std::endl;
+
+        vermoegen = vermoegen + zinsen;
+    }
+}