Verbesserte Dokumentation master
authorAndreas Bilke <andreas@bilke.org>
Sun, 30 Jul 2017 19:40:51 +0000 (21:40 +0200)
committerAndreas Bilke <andreas@bilke.org>
Sun, 30 Jul 2017 19:40:51 +0000 (21:40 +0200)
Quiz/cpp/quiz.cpp
Wort-Raten/cpp/raten.cpp
Zahlen-Raten/cpp/zahlenraten.cpp
common/cpp/file.hpp

index 517ee74..d34b2c9 100644 (file)
@@ -38,7 +38,7 @@ class FrageAntworten {
          *
          * \param pFrage Die zu stellende Frage
          * \param pAntworten Ein std::vector mit den Antwortmöglichkeiten
-         * \param pKorrekteAntwort Die Position in \ref pAntworten mit der korrekten Antwort
+         * \param pKorrekteAntwort Die Position in pAntworten mit der korrekten Antwort
          */
         FrageAntworten(std::string pFrage, std::vector<std::string> pAntworten, int pKorrekteAntwort) : frage(pFrage), antworten(pAntworten), korrekteantwort(pKorrekteAntwort) { }
 
@@ -129,7 +129,7 @@ int main(int argc, char** argv) {
 /*!
  * \brief Extrahiert Fragen/Antworten aus dem std::vector
  *
- * \ref zeilen enthält die nach ";" getrennten Zeilen einer Datei. Erwartet wird dabei folgendes Format:
+ * zeilen enthält die nach ";" getrennten Zeilen einer Datei. Erwartet wird dabei folgendes Format:
  *
  * Frage;korrekte Antwort als Position;Antwortmöglichkeit 1;Antwortmöglichkeit 2 etc
  *
index c769fd8..7b58c8e 100644 (file)
 #include <string>
 #include <vector>
 
+/*!
+ * \brief Klasse zum Speichern eines Wortes für das Spiel.
+ *
+ * Es wird zum einen das Wort gespeichert als auch den bisherigen Erfolg
+ * im Spiel (welche Buchstaben aufgedeckt wurden).
+ */
 class Wort {
     private:
+        /*! Zeigt an, ob an einer bestimmen Stelle der Buchstabe aus \ref wort bereits erraten wurde */
         std::vector<bool> bisherErraten;
+        /*! Das Wort welches zu erraten ist */
         std::string wort;
 
+        /*!
+         * \brief Gibt an, ob das gesammte Wort erraten wurden
+         *
+         * \return true, wenn das gesamte Wort erraten wurde, ansonsten false
+         */
         bool istErraten() {
             return (size_t)std::count(bisherErraten.begin(), bisherErraten.end(), true) == wort.size();
         }
 
+        /*!
+         * \brief Setzt für den Buchstaben das "erraten" Flag in \ref bisherErraten
+         *
+         * \param buchstabe Der Buchstabe der erraten wurde
+         */
         void passeSichtbarkeitAn(char buchstabe) {
             for (unsigned int i = 0; i < wort.size(); i++) {
                 if (std::tolower(wort[i]) == std::tolower(buchstabe)) {
@@ -37,6 +55,11 @@ class Wort {
         }
 
     public:
+        /*!
+         * \brief Der Konstruktur
+         *
+         * \param pWort Das Wort weleches erraten werden soll
+         */
         Wort(std::string pWort) : wort(pWort) {
             for (unsigned int i = 0; i < wort.size(); i++) {
                 // bisher wurde nichts erraten
@@ -44,6 +67,14 @@ class Wort {
             }
         }
 
+        /*!
+         * \brief Liest Antwort und markiert entsprechend die Buchstaben als erraten
+         *
+         * Fragt den Spieler nach den nächsten Buchstaben und markiert in wort diesen als
+         * erraten.
+         *
+         * \return true, falls das ganze Wort erraten wurde, false ansonsten
+         */
         bool liesUndPruefNaechstenBuchstaben() {
             std::cout << "Rate den nächsten Buchstaben: ";
             std::string zeile;
@@ -58,6 +89,12 @@ class Wort {
             return istErraten();
         }
 
+        /*!
+         * \brief Zeigt den Fortschritt beim Raten an
+         *
+         * Für jeden erratenen Buchstaben wird dieser angezeigt, ansonsten
+         * wird dem Spieler ein "_" dargestellt.
+         */
         void zeigeBisherigesWort() {
             for (unsigned int i = 0; i < wort.size(); i++) {
                 if (bisherErraten[i]) {
@@ -111,7 +148,7 @@ int main(int argc, char** argv) {
 /*!
  * \brief Extrahiert Wörter aus dem std::vector
  *
- * \ref zeilen enthält die nach ";" getrennten Zeilen einer Datei. Es wird dabei
+ * zeilen enthält die nach ";" getrennten Zeilen einer Datei. Es wird dabei
  * ein Wort pro Zeile erwartet. Wörter dürfen nur aus Buchstaben des deutschsprachigen
  * Alphabets bestehen.
  *
index 6af8e12..61b1e72 100644 (file)
@@ -16,7 +16,9 @@
 #include <iostream>
 #include <string>
 
+/*! Die kleinste Zahl die sich der Spieler ausdenken darf */
 #define MIN_ZAHL 1
+/*! Die größte Zahl die sich der Spieler ausdenken darf */
 #define MAX_ZAHL 50
 
 /*!
index afab7d5..ff67bc2 100644 (file)
@@ -1,9 +1,65 @@
+/*!
+ * \mainpage
+ *
+ * Die verschiedenen Programme sind von unterschiedlichen Schwierigkeitsgrad
+ * und benutzen verschiedene Programmiertechniken. Im folgenden werden die einzelnen
+ * Lernpunkte vorgestellt.
+ *
+ * \section auto_kosten_sec Autokosten berechnen
+ *
+ * Das Programm liest Benutzereingaben über ein Auto ein und berechnet anschließend
+ * die dafür anfälligen Kosten. Dabei wird lediglich eine Regelliste (durch if)
+ * abgearbeitet, wie sie im jeweiligen Gesetz zur Berechnung steht.
+ *
+ * \section schaltjahr_sec Schaltjahrüberprüfung
+ *
+ * Das Programm nimmt entweder per Kommandozeile eine Jahreszahl entgegen oder
+ * fragt den Benutzer danach. Es wird erneut nur eine Regelliste (durch if)
+ * abgearbeitet.
+ *
+ * \section zinssatz_sec Zinsen berechnen
+ *
+ * Das Programm fragt nach Kontostand, Zinssatz und Laufzeit. Die Berechnung
+ * über die Jahre erfolgt über eine for-Schleife. Dabei kann für jedes Jahr
+ * der erwirtschaftete Zins ausgegeben werden.
+ *
+ * \section insertionsort_sec Insertionsort
+ *
+ * Das Programm generiert eine Liste von Zufallszahlen und sortiert diese anschließend
+ * mittels Insertionsort. Dabei wird der erste "richtige" Algorithmus kennengelernt.
+ *
+ * \section zahlenraten_sec Zahlen raten
+ *
+ * Der Nutzer soll sich eine Zahl ausdenken und der Computer versucht mit so wenig
+ * Versuchen wie möglich diese Zahl zu finden. Er benutzt dabei das System der
+ * binären Suche (bekannt aus Telefonbüchern) um "geschickt" die nächste Zahl zu raten.
+ *
+ * \section quiz_sec Quiz
+ *
+ * Das Programm liest eine Datei aus der Fragen/Antworten gelesen werden. Dabei werden
+ * objektorientierte Ansätze benutzt. Man lernt wie man Dateien einliest, nach Trennzeichen
+ * auftrennt und daraus die Daten gewinnt.
+ *
+ * \section wortraten_sec Wörter raten
+ *
+ * Es werden Wörter aus einer Datei gelesen. Der Spieler soll im Stil von
+ * "Galgenmännchen" die entsprechenden Wörter erraten. Man lernt zusätzlich
+ * Funktionen/Algorithmen aus der C++ STL kennen.
+ */
 #ifndef FILE_H_
 #define FILE_H_
 
 #include <string>
 #include <vector>
 
+/*!
+ * \file file.hpp
+ * \brief Helferfunktionen zum Dateien lesen/verarbeiten
+ *
+ * Definiert Funktionen zum Einlesen von Dateien und dem Trennen von Zeilen an
+ * Trennstellen.
+ */
+
 /*!
  * \brief Liest die Datei zeilenweise und extrahiert die Spalten
  *