Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » UserName und Password abfrage

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.04.2005, 21:22 Uhr
~DragicMaster
Gast


Hi

Also ich möchte gern ne kleine Benutzer und Passwort abfrage machen.
Habe mein Prog schon so weit das es denn Benutzer kennt aber keinen Neuen Benutzer zu läst.
Vieleicht kann mir einer Helfen!


C++:
#include<iostream>
#include<string>
using namespace std;

string users[10]={"DragicMaster","Dragic","Gutts","Bommel"};
string passw[10];
string user;
string name;
string paswrd;
int i;

int main()
{
anfang:
    i=0;
   cout<<"Wie heist du?";
   cin>>name;
   while (name != users[i])
    {
       i++;
       user=users[i];
        if (name == users[i] )
        {
            cout<<"Danke für die Anmeldung!\n";
            goto ende;
        }
        else
        {
            char eingabe;
            cout<<"Dich kenne ich nicht!";
            cout<<"Möchtest du dich an melden?";
            cin>>eingabe;
            if (eingabe ='j'|| 'J')
            {
                cout<<"Gib deinen Namen an!\n";
                cin>>name;
                i++;
                users[i]=name;
                cout<<"Nun dein passwort!\n";
                cin>>paswrd;
                passw[i]=paswrd;
                goto anfang;
            }
            else
            {
                goto ende;
            }
        }    
   }
   //cout<<"Du bist "<<user;
  

ende:
   cout<<"Du bist "<<user;
cout<<"Danke für die nutzung";
cin.get();
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.04.2005, 08:42 Uhr
doppler



Unstrukturierte Sprünge (so heißen glaube ich goto anweisungen) sind meiner Meinung nach kein guter Stil. Man sollte sie wenn möglich vermeiden (und das ist soweit ich weiß immer möglich, indem man Schleifen und if-Abfragen benutzt).

Wenn du schon strings und iostreams verwendest, kannst du dir auch andere Möglichkeiten der STL zunutze machen. Ich würde z.B. die Benutzerdaten als map Name->Passwort implementieren. Hier ein (verbesserbarer) Vorschlag:

C++:
#include <map>
#include <iostream>
#include <string>
using namespace std;

int main()
{
    map<string,string> users; //users als map Name->Passwort

    string name = "";
    string paswrd = "";

    users["DragicMaster"] = "123"; //Passwort von "DragicMaster" ist "123".
    users["Dragic"]       = "456";
    users["Gutts"]        = "789";
    users["Bommel"]       = "000";

   cout<<"Wie heist du?";
   cin>>name;
    
   char eingabe = 'j';
   while ((users.find(name) == users.end()) &&
      ((eingabe == 'j') || (eingabe == 'J')) ){
    //name nicht gefunden in users

       cout<<"Dich kenne ich nicht!";
       cout<<"Möchtest du dich an melden?";
       cin>>eingabe;
       if ((eingabe == 'j') || (eingabe == 'J')) {
       cout<<"Gib deinen Namen an!\n";
       cin>>name;
       cout<<"Nun dein passwort!\n";
       cin>>paswrd;
       users[name]=paswrd;
       };
       cout<<"Wie heist du?";
       cin>>name;
    
   };
   if ((eingabe == 'j') || (eingabe == 'J')) {
       cout<<"Danke für die Anmeldung!\n";
       cout<<"Du bist " << name << endl;
       cout<<"Danke für die nutzung" << endl;
   };
}



Die user-Daten und Passworte als zwei getrennte Arrays von Strings zu speichern, ist sicher ziemlich fehleranfällig, und die Verwaltung von arrays ist nicht so einfach wie bei den STL-Containern. Bei der Geschwindigkeit gibt es angeblich auch keine großen einbußen, aber das kommt logischerweise auf die Implementierung der STL an. Beim find() von map skaliert die Suchdauer mit log(n).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: