Nico Maas, NetworkCalculator
2 / 15 Nico Maas, Inhalt Überblick über die Software / Struktogramm Überblick über die Software / Struktogramm Aufschlüsselung & Erklärung des Quellcodes Aufschlüsselung & Erklärung des Quellcodes Quellenverzeichnis Quellenverzeichnis
3 / 15 Nico Maas, Struktogramm
4 / 15 Nico Maas, Beschreibung /* // Programmname: NetworkCalculator // Autor: Nico Maas // Revision: 1.0 // Erstellungsdatum: // Datum der letzten Änderung: // Zweck: Zeigt die Adressklasse und Standardsubnetzmaske einer IP Adresse an */ In dem Beschreibungsheader werden Notizen über die Software niedergelegt. In dem Beschreibungsheader werden Notizen über die Software niedergelegt.
5 / 15 Nico Maas, Header Dateien #include #include Die Header Dateien werden hinzugefügt um die Funktionen, welche in selbigen hinterlegt sind, im eigenen Programmcode benutzen zu können. Die Header Dateien werden hinzugefügt um die Funktionen, welche in selbigen hinterlegt sind, im eigenen Programmcode benutzen zu können.
6 / 15 Nico Maas, Variablen initialisieren int iptri1, iptri2, iptri3, iptri4; char punkt; Durch die Initalisation werden für die Variablen Platz im Speicher belegt, damit diese später Daten aufnehmen können. Durch die Initalisation werden für die Variablen Platz im Speicher belegt, damit diese später Daten aufnehmen können.
7 / 15 Nico Maas, Programmstart int main() { cout << "########## NetworkCalculator ##########" << endl; cout << "# Geben Sie bitte eine IP Adresse ein #" << endl; cout << "######### Format: #########" << endl; cout << "Eingabe: "; Beim Programmstart gibt die Software einen Begrüßungsbildschirm aus und fordert zur Eingabe einer IP auf. Beim Programmstart gibt die Software einen Begrüßungsbildschirm aus und fordert zur Eingabe einer IP auf. Um den Nutzer zu unterstützen, wird das erwartete Format für die Eingabe erklärt- Um den Nutzer zu unterstützen, wird das erwartete Format für die Eingabe erklärt-
8 / 15 Nico Maas, Einlesen der IP Adresse cin >> iptri1 >> punkt >> iptri2 >> punkt >> iptri3 >> punkt >> iptri4; Mit dem oben stehenden Befehl wird die IP Adresse eingelesen und direkt in die passenden Triplets gespeichert. Mit dem oben stehenden Befehl wird die IP Adresse eingelesen und direkt in die passenden Triplets gespeichert. Durch die Variable Punkt wird der Punkt welche die IP Triplets trennt aus der gesamt Adresse herausgefiltert. Durch die Variable Punkt wird der Punkt welche die IP Triplets trennt aus der gesamt Adresse herausgefiltert.
9 / 15 Nico Maas, Überprüfung auf Adressklasse if (iptri1 > 0 & iptri1 0 & iptri1 < 128) { cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Adressklasse A: Subnetmask "; cout << "Adressklasse A: Subnetmask "; } else else Die Überprüfung wird durch geschachtelte IF Abfragen erfüllt. Wir beginnen mit der Abfrage ob das erste entscheidende Triplet zwischen 0 und 128 liegt. Die Überprüfung wird durch geschachtelte IF Abfragen erfüllt. Wir beginnen mit der Abfrage ob das erste entscheidende Triplet zwischen 0 und 128 liegt.
10 / 15 Nico Maas, Überprüfung auf Adressklasse if (iptri1 > 126 & iptri1 126 & iptri1 < 193) { cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Adresseklasse B: Subnetmask "; cout << "Adresseklasse B: Subnetmask "; } else else In der nachfolgenden Abfrage wird auf die Übereinstimmung mit der B Adressklasse, also erstes IP Triplet zwischen 127 und 192 überprüft. In der nachfolgenden Abfrage wird auf die Übereinstimmung mit der B Adressklasse, also erstes IP Triplet zwischen 127 und 192 überprüft.
11 / 15 Nico Maas, Überprüfung auf Adressklasse if (iptri1 > 191 & iptri1 191 & iptri1 < 224) { cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Adressklasse C: Subnetmask "; cout << "Adressklasse C: Subnetmask "; } In der letzten Überprüfung wird erkannt, ob die Range zwischen 192 und 223 liegt. In der letzten Überprüfung wird erkannt, ob die Range zwischen 192 und 223 liegt.
12 / 15 Nico Maas, Überprüfung der Adressklasse else { cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "Die IP Adresse " << iptri1 << "." << iptri2 << "." << iptri3 << "." << iptri4 << " entspricht" << endl; cout << "keiner erfassten Adressklasse oder ist ungueltig"; cout << "keiner erfassten Adressklasse oder ist ungueltig"; } Wenn alle Abfragen fehlschlagen, ist die Adressklasse entweder falsch erfasst oder die IP Eingabe ungültig (Eingabe von Buchstaben wird damit nicht abgefangen, Verbesserungsmöglichkeit). Wenn alle Abfragen fehlschlagen, ist die Adressklasse entweder falsch erfasst oder die IP Eingabe ungültig (Eingabe von Buchstaben wird damit nicht abgefangen, Verbesserungsmöglichkeit).
13 / 15 Nico Maas, Ende des Programms getchar();} Am Ende wird noch einmal getchar aufgerufen um das Fenster nach vollendeter Ausgabe und Ende des Programms offen zu halten, bzw. das Programm in Erwartung einer Eingabe offen zu halten / am laufen. Am Ende wird noch einmal getchar aufgerufen um das Fenster nach vollendeter Ausgabe und Ende des Programms offen zu halten, bzw. das Programm in Erwartung einer Eingabe offen zu halten / am laufen.
14 / 15 Nico Maas, Quellenverzeichnis Zur Erstellung des Struktogramms wurde die Freeware StrukEd32 in der 32 bit Version benutzt Zur Erstellung des Struktogramms wurde die Freeware StrukEd32 in der 32 bit Version benutzt Als technische Unterlagen zur Adressklasse diente das Unterrichsmaterial Als technische Unterlagen zur Adressklasse diente das Unterrichsmaterial
Nico Maas, Ende