Problem z zadaniem

Problem z zadaniem
Klaudia Capik
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 4 lata
  • Postów:18
0

Witam. Jestem samoukiem (dosyć początkującym) i uczę się samodzielnie. Znalazłam sobie takie zadanie:
Rozszerz program kontrolujący hasła, który został zamieszczony w tym rozdziale, w taki sposób, aby akceptował wielu użytkowników, z których każdy ma swoje hasło. Zagwarantuj, aby właściwe hasła były przypisane właściwym użytkownikom. Udostępnij możliwość ponownego zalogowania użytkownika, jeśli pierwsza próba nie powiodła się. Zastanów się, jak łatwo (albo trudno) można zrealizować taką funkcjonalność w przypadku dużej liczby użytkowników i haseł.

I powiem szczerze, że główkuję nad tym już od 2 dni. Próbowałam jakoś z tablicą i typem wyliczeniowym enum i cały czas nie wychodzi. Proszę podpowiedzcie jak to zrobić bo ręce już mi odpadają :(

_13th_Dragon
Jak kryształowa kula wróci z naprawy to wywróżę jaki kod: - "został zamieszczony w tym rozdziale", wtedy może będę w stanie pomóc.
Klaudia Capik
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 4 lata
  • Postów:18
0

#include <iostream>
#include <string>
using namespace std;
int main ()
{
string nazwa;
string haslo;
cout << "Podaj nazwę użytkownika: " << "\n";
getline( cin, nazwa, '\n' );
cout << "Podaj hasło: " << "\n";
getline( cin, haslo, '\n' );
if ( nazwa == "admin" && haslo == "xyzzy" )
{
cout << "Dostęp przyznany" << "\n";
}
else
{
cout << "Niepoprawna nazwa użytkownika lub hasło. Odmowa dostępu!" << "\n";
// Zwrócenie wartości to wygodny sposób na zatrzymanie programu
return 0;
}
// Pracujemy dalej!
}

Tasmanian Devil
Hej! Twój post prawdopodobnie zawiera niesformatowany kod. Użyj znaczników ``` aby oznaczyć, co jest kodem, będzie łatwiej czytać. (jestem botem, ta akcja została wykonana automatycznie, prawdopodobieństwo 0.9965429)
aolo23
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:186
0

Użyj pętli while -> dopóki wszyscy twoi użytkownicy się nie zalogują, wrzucaj sobie na listę/kolejkę (taka struktura danych) niepowodzenie zalogowania i wyciągaj z niej tych którzy są jeszcze niezalogowani, a jeśli próba się powiodła usuń usera z listy ;)
Trudniejsza wersja to wątki, ale skoro to początki to wybierz pierwszą ;)


Exception oznacza więcej niż tysiąc słów.
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:7 dni
0
Kopiuj
static const struct { string nazwa,haslo; } tb[]=
{
	{"admin", "xyzzy"},
	{"adam", "1234"},
	{"test", "atest"},
};

bool ok=false;
for(int rep=0;;++rep)
{
	if(rep>=3) exit(1|(cout<<"Za dużo nieudanych prób"<<endl));
	if(rep) cout<<"Proba nr: "<<rep<<endl;
	string nazwa,haslo;
	cin>>nazwa>>haslo;
	for(const auto &rec:tb) if((nazwa==rec.nazwa)&&(haslo==rec.haslo)) { ok=true; break; }
	if(ok) break;
}

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.