• 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ę

Object Storage Arubacloud
+1 głos
2,208 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 705 wizyt
pytanie zadane 25 listopada 2018 w PHP przez niezalogowany
–4 głosów
1 odpowiedź 775 wizyt
pytanie zadane 21 października 2016 w PHP przez Warzywo Gaming Początkujący (320 p.)
+1 głos
1 odpowiedź 690 wizyt

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...