• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

System rejestracji i logowania - prośba o ocenę

Aruba Cloud - Virtual Private Server VPS
+1 głos
2,501 wizyt
pytanie zadane 25 kwietnia 2015 w C i C++ przez Marcin Szczodry Nowicjusz (210 p.)
edycja 25 kwietnia 2015 przez Marcin Szczodry

Cześć, witam ponownie

Stworzyłem system logowania oparty na pętlach. Chciałbym prosić o sprawdzenie, jak możnaby go było uprościć. Ale chciałbym zaznaczyć że przerobiłem dopiero trzy lekcje kursu Pana Mirosława, więc raczej wolałbym aby nie dodawać innych rozwiązań, niż pętle.

Generalnie kod wykonuje się. Pokrótce wytłumaczę o co chodzi:

Skrypt (?) proponuje zalogowanie się lub zarejestrowanie. Gdy sie zarejestrujemy przechodzi do logowania. I w wlasnie tamtym miejscu rodzi sie moje przymyslenie. Nie jestem zadowolony, gdyż pętla sprawdza poprawność loginu i hasła, ale niestety musialem powtorzyc ten sam kod dwa razy.

 

cout << "#LOGOWANIE" << endl;
        cout << "NAZWA UZYTKOWNIKA: ";
        cin >> logUsername;
        system("cls");

        cout << "#LOGOWANIE" << endl;
        cout << "HASLO: ";
        cin >> logPassword;
        system("cls");

        while(logPassword!=regPassword || logUsername != regUsername)
        {
            cout << "#LOGOWANIE: BLEDNE DANE" << endl;

            cout << "NAZWA UZYTKOWNIKA: ";
            cin >> logUsername;
            system("cls");

            cout << "#LOGOWANIE" << endl;
            cout << "HASLO: ";
            cin >> logPassword;
            system("cls");
        }

        cout << "ZALOGOWANO POMYSLNIE" << endl;

 

 

PONIŻEJ CAŁY KOD Z APLIKACJI:

 

#include <iostream>
#include <windows.h>
#include <cstdlib>

using namespace std;
string action;
string regUsername, regPassword, regConfirmPassword;
string logUsername, logPassword;

int main()
{

    while(action !="zarejestruj" && action!="zaloguj")
    {
        cout << "CO CHCESZ ZROBIC? WPISZ 'zaloguj' LUB 'zarejestruj'." << endl;
        cin >> action;
        system("cls");
    }

    if ( action == "zarejestruj" )
    {
        cout << "#REJESTRACJA#" << endl;

        cout << "NAZWA UZYTKOWNIKA: ";
        cin >> regUsername;
        system("cls");

        cout << "#REJESTRACJA#" << endl;
        cout << "HASLO: ";
        cin>> regPassword;
        system("cls");

        cout << "#REJESTRACJA#" << endl;
        cout << "POWTORZ HASLO: ";
        cin >> regConfirmPassword;
        system("cls");

            while(regPassword!=regConfirmPassword)
            {
                cout << "#REJESTRACJA: HASLA ROZNIA SIE / WPISZ HASLA JESZCZE RAZ#" << endl;
                cout << "HASLO: ";
                cin>> regPassword;
                system("cls");

                cout << "#REJESTRACJA#" << endl;
                cout << "POWTORZ HASLO: ";
                cin >> regConfirmPassword;
                system("cls");
            }

        for(int i=5; i>=0; i--)
        {
            Sleep(1000);
            system("cls");
            cout << "#REJESTRACJA: KONTO ZOSTALO UWORZONE!" << endl;
            cout << "TRWA PRZEKIEROWYWANIE: " << i << endl;
        }

        system("cls");

    }

        cout << "#LOGOWANIE" << endl;
        cout << "NAZWA UZYTKOWNIKA: ";
        cin >> logUsername;
        system("cls");

        cout << "#LOGOWANIE" << endl;
        cout << "HASLO: ";
        cin >> logPassword;
        system("cls");

        while(logPassword!=regPassword || logUsername != regUsername)
        {
            cout << "#LOGOWANIE: BLEDNE DANE" << endl;

            cout << "NAZWA UZYTKOWNIKA: ";
            cin >> logUsername;
            system("cls");

            cout << "#LOGOWANIE" << endl;
            cout << "HASLO: ";
            cin >> logPassword;
            system("cls");
        }

        cout << "ZALOGOWANO POMYSLNIE" << endl;

    return 0;
}

 

#EDIT:

Raczej nie zależy mi na razie na dodawnaiu funkcjonalności do systemu tj. zapamietywanie loginow i haseł. 

4 odpowiedzi

+2 głosów
odpowiedź 25 kwietnia 2015 przez Radfler VIP (101,030 p.)
wybrane 25 kwietnia 2015 przez Marcin Szczodry
 
Najlepsza
Ogólnie kod jak na początkującego jest dobry (może za dużo tego system("cls") -> spowalnia to aplikację). A jeżeli chodzi o ten powtórzony fragment, to zrealizuj go jako funkcję -> jest o tym chyba w 10 odcinku na kanale MZ. Ponadto możesz pobawić się plikami.
+1 głos
odpowiedź 25 kwietnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Do tego użyj jeszcze funkcji - unikniesz redundancji(powtarzania się kodu) :)
0 głosów
odpowiedź 25 kwietnia 2015 przez Do.Zzay Mądrala (5,700 p.)
Zrób zapisywanie użytkownika po zarejestrowaniu do pliku. Pozwoli Ci to na stworzenie konta i używanie go po wyłączeniu aplikacji.
0 głosów
odpowiedź 25 kwietnia 2015 przez Wally Bywalec (2,840 p.)
Śmieszy mnie to, że ludzie wszystko tak wywyższają. Jak można to nazywać systemem? System to jest coś bardziej złożonego. To tylko prosty kod z pętlami i ifami, który w pewnym sensie przypomina system ale to patrząc przez inny pryzmat. No offence. Twój kod jest OK, uczysz się. Ale jakiż to jest system? ;x

A żeby nie było samego offtopu:
Weź może wyrzuć blok odpowiedzialny za rejestrację oraz dla logowania do osobnych funkcji. Łatwiej się to czyta. To też jest ważna rzecz, na przykład potem w pracy zespołowej łatwiej ogarnąć kod.

Podobne pytania

0 głosów
2 odpowiedzi 1,080 wizyt
pytanie zadane 25 listopada 2018 w PHP przez niezalogowany
–4 głosów
1 odpowiedź 1,036 wizyt
pytanie zadane 21 października 2016 w PHP przez Warzywo Gaming Początkujący (320 p.)
+1 głos
1 odpowiedź 1,015 wizyt

93,329 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,662 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...