PDA

View Full Version : [C++] Metodo che torna indietro restituendo qualcosa


carlitos23
12-01-2014, 13:20
La classe Biblioteca può contenere fino a un massimo di 1000 libri e 10 utenti e dispone di un metodo login() che riceve due stringhe (username e password), verifica se uno degli utenti corrisponde a username e password e, in caso di successo, invoca ripetutamente un opportuno metodo menu() dell’utente corrispondente che attiva funzionalità diverse in base al tipo di utente (UtenteGenerico o Amministratore).


void Biblioteca::login(string use, string wd) {
for (int i = 0; i < 10; ++i)
if (u[i])
if (u[i] -> getUser() == use && u[i] -> getPassword() == wd)
u[i] -> menu();
}


In particolare se chi ha fatto il login è un UtenteGenerico il metodo menu() mostra il seguente menù:
a. Elenca libri utente
b. Aggiungi libro a utente
c. Esci
e restituisce il char corrispondente alla scelta (‘a’, ‘b’, ‘c’).

Se chi ha fatto il login è un Amministratore il metodo menu() mostra il seguente menù:
1. Elenca libri biblioteca
2. Aggiungi nuovo libro a biblioteca
3. Elenca utenti
4. Aggiungi nuovo utente
5. Esci
e restituisce il char corrispondente alla scelta (‘1’, ‘2’, ‘3’,…).


Il mio problema sta quando, invocando il metodo menu(), se devo aggiungere un libro a utente, cioè scegliendo tra i libri della biblioteca, come faccio? Ho pensato tante soluzioni ma non funzionano.

Lo stesso problema mi si presenta nel caso 1, cioè elencare i libri della biblioteca dal menu di amministratore. Come faccio a tornare indietro?



int main(){
Biblioteca b;
string user, pwd;
while(true){
cout << "Username: ";
cin >> user;
cout << "Password: ";
cin >> pwd;
b.login(user, pwd);
}
}