Neues Beispiel: Schaltjahre
authorAndreas Bilke <andreas@bilke.org>
Tue, 25 Jul 2017 11:48:58 +0000 (13:48 +0200)
committerAndreas Bilke <andreas@bilke.org>
Tue, 25 Jul 2017 11:48:58 +0000 (13:48 +0200)
Schaltjahr/cpp/Makefile [new file with mode: 0644]
Schaltjahr/cpp/schaltjahr.cpp [new file with mode: 0644]

diff --git a/Schaltjahr/cpp/Makefile b/Schaltjahr/cpp/Makefile
new file mode 100644 (file)
index 0000000..a02b136
--- /dev/null
@@ -0,0 +1,5 @@
+all:
+       g++ -Wall -o schaltjahr schaltjahr.cpp
+
+clean:
+       -rm schaltjahr
diff --git a/Schaltjahr/cpp/schaltjahr.cpp b/Schaltjahr/cpp/schaltjahr.cpp
new file mode 100644 (file)
index 0000000..3bdc7db
--- /dev/null
@@ -0,0 +1,68 @@
+/*!
+ * \file schaltjahr.cpp
+ * \brief Berechnung ob ein gegebenes Jahr ein Schaltjahr ist.
+ *
+ * Entweder der Nutzer übergibt ein Jahr als Parameter oder
+ * am Anfang wird der Nutzer nach einem Jahr gefragt. Anschließend wird
+ * für dieses Jahr berechnet, ob es sich um ein Schaltjahr handelt.
+ *
+ * \author Andreas Bilke, M. Sc.
+ * \copyright GNU Public License
+ */
+
+#include <cstdlib>
+
+#include <iostream>
+#include <string>
+
+bool istSchaltjahr(int jahr);
+
+/*!
+ * \brief Einstiegspunkt für das Programm "schaltjahr".
+ *
+ * \param argc Die Anzahl der Kommandozeilenparameter
+ * \param argv Die Kommandozeilenparameter
+ * \return Den Erfolgsstatus des Programms
+ */
+int main(int argc, char** argv) {
+    std::string zeilenpuffer;
+    int jahr;
+
+    if (argc == 2) {
+        jahr = std::stoi(argv[1]);
+    } else {
+        std::cout << "Für welches Jahr soll geprüft werden ob es ein Schaltjahr ist? ";
+        std::getline(std::cin, zeilenpuffer);
+        jahr = std::stoi(zeilenpuffer);
+        std::cout << std::endl;
+    }
+
+    bool schaltjahr = istSchaltjahr(jahr);
+    std::cout << "Das Jahr " << jahr << " ist ";
+    if (schaltjahr) {
+        std::cout << "ein";
+    } else {
+        std::cout << "kein";
+    }
+    std::cout << " Schaltjahr." << std::endl;
+
+    return EXIT_SUCCESS;
+}
+
+/**
+ * \brief Berechnet ob jahr ein Schaltjahr ist
+ *
+ * \param jahr Das zu prüfende Jahr
+ * \return Wahr, falls es sich um ein Schaltjahr handelt, Falsch ansonsten
+ */
+bool istSchaltjahr(int jahr) {
+    if (jahr % 400 == 0) {
+        return true;
+    } else if (jahr % 100 == 0) {
+        return false;
+    } else if (jahr % 4 == 0) {
+        return true;
+    } else {
+        return false;
+    }
+}