Benötige Hilfe beim erstellen des Programms "Passwortprüfung" (string-Klasse, Funktionen)



  • Hi @DirkB , ja, natürlich. Ist ggf. falsch rüber gekommen, weil ich im ersten Beitrag von "richtig" und "falsch" gesprochen habe. Und das mit Gänsefüßchen 🙂 was ja als String interpretiert werden kann. War aber mehr als Pseudocode gedacht.
    Aber

    bool richtig,
    

    hatte der gute @moglie12 ja schon in seiner Main definiert. Das meinte ich mit dem vorgeschlagenen bool.



  • Hallo Leute, vielen Dank für die Rückmeldung. Genau das Problem ist es auch welches ich habe. Ich komme einfach mit den Aufgabenstellungen nicht klar. Ich dachte immer es liegt einfach an mir oder an meinen fehlenden Programmierkenntnissen, dass ich einfach keinen schimmer habe das gefragte umzusetzen.

    Naja aus den Antworten konnte ich leider auch nicht viel rauslesen was es mir leichter macht.

    Das Problem ist, ich kann niemanden fragen da ich die Prüfung nachschreibe und offiziell keinen Unterricht mehr habe in der Schule. Der Dozent der C++ Unterrichtet hatte ist leider auch nicht mehr auf der Schule. So stehe ich jetzt da mit diesem Übungsblatt und dem Internet als Hilfe um mich auf die Prüfung in ein paar Wochen optimal vorzubereiten.

    Okay zur Aufgabe: Habe ich denn den Teil mit der Funktion erstellen richtig umgesetzt?
    Fragen die mir während des "Programmierens" gekommen sind:

    • Wie rufe ich die Funktion auf? Bzw. woher weiß ich wann der richtige Zeitpunkt ist die Funktion aufzurufen?
    • Wie setzt man es um, ein Passwort vorher in der Funktion festzulegen und dieses dann im Hauptprogramm abzufragen?
    • Ist die If/Else Funktion in der Funktion oder im Hauptprogramm richtig positioniert? Wenn ich sie in die Funktion packe, wie rufe ich das dann in der main Funktion auf? Bzw,. brauche ich dann in der mainfunktion nicht noch einmal genau die gleiche if/else abfrage nochmal oder wie funktioniert das?
    • Bool true/false ist doch denke ich die richtige Funktion um die EIngabe zu überprüfen oder habe ich da was falsch gemacht?

    Wie würde denn das Programm oder Code richtig aussehen laut Aufgbanstellung?
    Ich habe hier noch einige Aufgaben mehr welche ich stellen könnte falls jemand Lust und Zeit hat mir zu helfen wäre ich unglaublich dankbar!



  • @Helmut-Jakoby hat doch beschrieben, wie das umzusetzen ist.

    Also nochmal:

    • In main():
      1. Sollpasswort vom Anwender eingeben lassen
      2. pruefePasswort mit diesem Sollpasswort aufrufen und Rückgabewert entgegennehmen
      3. Rückgabewert auswerten und entsprechenden Text ausgeben
    • pruefePasswort mit bool als Rückgabetyp und string als Parameter (für Sollpasswort):
      1. Passwort vom Anwender eingeben lassen
      2. Passwort mit Sollpasswort vergleichen und trueoder false zurückgeben

    Das solltest du jetzt umsetzen können...



  • bool pruefePasswort(string passwort)
    {

    passwort == "hans";
    passwort = true;
    
    if (passwort)
    {
    	cout << "Passwort korrekt" << endl;
    }
    
    else
    {
    	cout << "Falsches Passwort!" << endl;
    }
    

    }

    int main()
    {
    string text;
    bool Richtig;

    cout << "Bitte Passwort eingeben: " << endl;
    cin >> text;
    
    pruefePasswort(text, Richtig);
    
    
    system("Pause");
    return 0;
    

    }

    Sorry aber ich stehe irgendwie auf dem schlauch da der Compiler mir "passwort" in der Funktion und "Richtig" in der main unterstreicht. Wie kann ich denn bool richtig in die funktion integrieren? Und ist es korrekt das Passwort "hans" in der Funktion als richtiges passwort festzulegen?



  • Mit welchem Buch lernst du überhaupt C++?

    Du gibst bisher keinen Wert in der Funktion zurück (und auch der Inhalt ist nicht das, was ich dir beschrieben habe) und der Aufruf ist auch falsch bzgl. des Rückgabewertes.

    Ich hatte neulich schon mal diesen Link in einem anderen Thema gepostet: C++-Programmierung/ Weitere Grundelemente/ Prozeduren und Funktionen, damit du verstehst, wie man Funktionen definiert und aufruft.



  • @Moglie12 sagte in Benötige Hilfe beim erstellen des Programms "Passwortprüfung" (string-Klasse, Funktionen):

     bool pruefePasswort(string passwort)
     {
     	
     	passwort == "hans";
     	passwort = true;
            ...
    
    

    Dir fehlen wichtige Grundlagen in C++, außerdem verstehst Du ganz offensichtlich nicht mal die Aufgabenstellung?!
    Keine Ahnung, wo man da anfangen soll ...



  • Ich habe nie behauptet das ich programmieren kann und deswegen habe ich mich hilfesuchend hier angemeldet.
    Ist es denn nicht möglich die Aufgabenstellung zu lösen oder anhand meines Codes mir mitzuteilen was ich falsch gemacht habe oder was noch ergänzt werden muss?

    Für wen soll es an dieser Stelle Hilfreich sein, mir zu sagen das ich davon keine Ahnung habe? Ich habe ne Prüfung zu bestehen und mache das was mir möglich ist und habe hier auf Hilfe gehofft...



  • @Moglie12
    bitteschön (aber es wird Dir am langen Ende nicht helfen):

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    bool PruefePasswort(const string &Sollpasswort)
    {
       string inPasswort;
       
       getline(cin, inPasswort);
       
       if(Sollpasswort == inPasswort)
          return true;
       else
          return false;   
    }
    
    
    int main()
    {
       const string Sollpasswort("PiPaPo"); // Dies ist das Passwort, das eingegeben werden muss
       
       cout << "Geben Sie das Passwort ein: ";
       
       if(PruefePasswort(Sollpasswort))
          cout << "\nPasswort korrekt";
       else
          cout << "\nPasswort falsch";
    }
    


  • @Belli ! Du kannst einfach andere nicht leiden sehen.



  • @Belli Vielen vielen Dank!
    Anhand des Codes stellen sich mir ein paar Fragen:

    • Zeile 6. Warum &Sollpasswort? Was hat das & zu bedeuten bzw. wieso hast du dieses für die Funktion genutzt?
    • Zeile 10. Was hat der getline Befehl zu bedeuten? Ist das für die Funktion, dass hier eine Eingabe in der main erwartet wird?
    • Zeile 12 Wieso hier der Vergleich? Sollpasswort == inPasswort?
    • Zeile 21 Da legst du quasi das Passwort fest, das vom Nutzer eingegeben werden soll. Frage geht das auch schon in der Funktion?

    Vielen Dank jedenfalls nochmal Belli und auch den anderen die Ihr Glück versucht haben mir zu helfen. Wie gesagt ich habe nie gesagt ich kann Programmieren und für viele unter euch sind solche Aufgaben oder auch die Aufgabenstellungen Täglich Brot. Ich tue mir damit sehr schwer aber was soll ich machen? Die Flinte ins Korn werfen, weil Coden nicht zu meinen Hobbys gehört? Wie gesagt ich habe ne Prüfung zu bestehen und wenn ich verkacke dann ist das eben so aber ich kann nicht sagen ich habe nicht das gegeben was ich konnte.



  • Mensch @Moglie12 🤔
    Such doch mal ein bisschen selbst; gib z.B. mal in Deiner Suchmaschiene "c++ & Parameter" ein. Du kannst Dich dann mal ganz schnell schlau machen, z.B. hier -> https://www.kompf.de/cplus/artikel/funcpar.html

    Und wenn Du Zeile 12 nicht verstehst, dann weiß ich auch nicht... Irgendwo muss doch dass Passwort verglichen werden um den Nutzer sagen zu können, ob richtig oder falsch. Hast Du die Aufgabe eigentlich selbst mal gelesen oder nur gepostet?



  • @Moglie12 sagte in Benötige Hilfe beim erstellen des Programms "Passwortprüfung" (string-Klasse, Funktionen):

    Zeile 10. Was hat der getline Befehl zu bedeuten? Ist das für die Funktion, dass hier eine Eingabe in der main erwartet wird?

    Von Zeile 6 bis 16 wird die Funktion PruefePasswort definiert.
    Demnach wird das getline (wenn du das mal englisch liest, ist schon fast klar, was die macht) auch in der Funktion aufgerufen.

    Zeile 12 Wieso hier der Vergleich? Sollpasswort == inPasswort?

    Weil der Vergleich - laut Aufgabe - in der Funktion passieren soll.


Anmelden zum Antworten