Projekt 1 : "Geheime Nachrichten" (Teil 3)
4. Das fertige Programm
Nachdem wir nun wissen, wie die Cäsar-Methode und die zyklische Modulo-Verschiebung funktionieren, kann die Verschlüsselung im Projekt fertiggestellt werden. Am Anfang der main()-Funktion wird in dieser finalen Version noch ein wenig ASCII-Art in Form eines Schlosses auszugeben. Warum? Weil es nett aussieht! 😉
Zeile 1 : 'v' oder 'e'
Zeile 2 : Text zum Verschlüsseln
Zeile 2 : Text zum Verschlüsseln
#include <iostream> #include <string> using namespace std; int main() { cout << " .--------. " << endl; cout << " / .------. \\ " << endl; cout << " / / \\ \\ " << endl; cout << " | | | |" << endl; cout << " _| |________| |_" << endl; cout << ".' |_| |_| '." << endl; cout << "'._____ ____ _____.'" << endl; cout << "| .'____'. |" << endl; cout << "'.__.'.' '.'.__.'" << endl; cout << "'.__ |GEHEIM| __.'" << endl; cout << "| '.'.____.'.' |" << endl; cout << "'.____'.____.'____.'" << endl; cout << "'.________________.'" << endl; cout << endl; // TEIL 1: Ver- oder Entschlüsselung auswählen string input; cout << "Ver- oder Entschlüsseln? (v/e): " << endl; getline(cin, input); bool encode = false; // später ENTschlüsseln if (input == "v") { cout << "Text zum VERschlüsseln: " << endl; encode = true; } else if (input == "e") { cout << "Text zum ENTschlüsseln: " << endl; } else { cout << "Ungültige Eingabe!" << endl; exit(EXIT_FAILURE); // Fehlercode melden } // TEIL 2: Textzeichen nacheinander verarbeiten string output; getline(cin, input); int caesar = 1; // Geheime Code-Zahl int cnt = 0; while (cnt < input.size()) { // TEIL 3: Erzeugen von Geheim-Nachrichten // Buchstabe zu Zahl umwandeln int ascii = (int)input[cnt]; // Zahl um festen Wert verschieben ... int new_ascii; if (encode == true) // Verschlüsseln { new_ascii = (ascii + caesar - 32) % 95 + 32; } else // Entschlüsseln { // FEHLT NOCH } // Zahl zu Buchstabe rückwandeln char code = (char)new_ascii; // Neuen Buchstaben an Ergebnis anhängen output.push_back(code); cnt++; } cout << "Nachricht: " << output << endl; return EXIT_SUCCESS; // wahlweise auch 0 }
Herzlichen Glückwunsch, denn damit ist die Entwicklung des Verschlüsselungs-Programms beendet und du hast dein erstes Projekt erfolgreich abgeschlossen!
Im nächsten Abschnitt findest du einige Aufgaben, mit denen du den Funktionsumfang des Programms erweitern (z.B. die Entschlüsselung programmieren) und deine neu gelernten Fähigkeiten in der Praxis testen kannst. Viel Spaß dabei!