Random PW Generator

Revision:
0:4b30ded991e6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun May 03 14:28:47 2020 +0000
@@ -0,0 +1,99 @@
+/*
+
+C++ Kurs 6ABELI  SM
+Aufgabe 3 Übung NR 74 -- Passwortgenerator
+Stefan Schwarz
+
+Übung Nr.74:
+
+Erstelle ein Programm/Funktion welche/s ein zufälliges Passwort erzeugt.
+Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können.
+Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen.
+Jede beliebige Kombination der Parameter soll möglich sein. 
+
+*/
+
+
+#include <algorithm>
+#include <stdio.h>  
+#include <iostream>
+#include <cstdlib>
+#include <ctime>
+
+
+using namespace std;
+
+// function generates new password based on given parameters
+string genpw(int lengh, string number, string smallletter, string bigletter, string signs); 
+
+
+int main()
+{
+    int lengh;      
+    string numbers;
+    string smallletter;
+    string bigletter;
+    string signs;
+
+//setting parameters via Console
+    cout<<" Wilkommen im Passwortgenerator !"<< endl << endl;
+    again:
+    cout << "Wie lange soll das Passwort sein?  " ;
+    cin >> lengh;
+    cout << "Ziffern?            J/N ";
+    cin.get();
+    cin >> numbers;
+    cin.get();
+    cout  << "Kleinbuschstaben?   J/N " ;
+    cin >> smallletter;
+    cout  << "Großbuschstaben?   J/N " ;
+    cin >> bigletter;
+    cout  << "Sonderzeichen?     J/N " ;
+    cin >> signs;
+   
+ // check if theres at least one chosen parameter  
+    if(numbers!="J" && smallletter!="J" && bigletter!="J" && signs!="J")
+    {
+        cout << "Min 1 Parameter muss gewählt werden! Bitte erneute Eingabe:"<<endl;
+        goto again;
+    }
+    
+//print newly generated password
+   cout << endl << genpw(lengh,numbers,smallletter,bigletter,signs);
+   
+    
+}
+
+
+// genpw function generates new password based on given parameters
+string genpw(int lengh, string number, string smallletter, string bigletter, string signs ){
+   
+    string newpw = "";
+    string coderes = "";
+    string numb = "123456789";
+    string slbs = "abcdefghijklmnopqrstuvwxyz";
+    string blbs = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+    string sgn = "@!§$%&/()=?*':;";
+        
+        if (number == "J")
+        coderes += numb;
+        if (smallletter == "J")
+        coderes += slbs;
+        if (bigletter == "J")
+        coderes += blbs;
+        if (signs == "J")
+        coderes += sgn;
+
+    srand(time(0));
+    
+    for (unsigned int i = 0; i < lengh; i++)
+    {
+        random_shuffle(coderes.begin(), coderes.end()); //shuffeling available characters in addition to randomly picked ones
+       
+        int sizeres= sizeof(coderes);                   //
+        newpw+=coderes[rand()% sizeres];                //building newpw string randomly
+    }
+        return "Das generierte Passwort lautet:  "+ newpw;
+        
+        
+}