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

VPS Starter Arubacloud
+1 głos
2,271 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 815 wizyt
pytanie zadane 25 listopada 2018 w PHP przez niezalogowany
–4 głosów
1 odpowiedź 900 wizyt
pytanie zadane 21 października 2016 w PHP przez Warzywo Gaming Początkujący (320 p.)
+1 głos
1 odpowiedź 789 wizyt

92,843 zapytań

141,782 odpowiedzi

320,858 komentarzy

62,174 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 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...