Menu con Switch-Case e Do-While
Esercizio 1
Domanda:
- Questo programma è corretto?
- Che cosa stampa?
- Correggere se presenta errore
#include <iostream>
using namespace std;
int main() {
int scelta = 2;
switch(scelta) {
case 1:
cout << "Opzione 1 selezionata" << endl;
case 2:
cout << "Opzione 2 selezionata" << endl;
case 3:
cout << "Opzione 3 selezionata" << endl;
default:
cout << "Opzione non valida" << endl;
}
return 0;
}
Esercizio 2
Domanda: Questo programma visualizza un menu con diverse scelte:
- utente inserisce 1, il programma esegue un calcolo (non riportato perchè non d’interesse)
- utente inserisce 2, stampa
- utente inserisce 0, termina.
Il seguente programma è corretto? Testarlo (provando input) e, se errato, modificarlo.
#include <iostream>
using namespace std;
int main() {
int opzione;
do {
cout << "=== MENU ===" << endl;
cout << "1. Calcola" << endl;
cout << "2. Stampa" << endl;
cout << "0. Esci" << endl;
cout << "Scelta: ";
cin >> opzione;
switch(opzione) {
case 1:
cout << "Eseguo calcolo..." << endl;
break;
case 2:
cout << "Stampo risultato..." << endl;
break;
case 0:
cout << "Arrivederci!" << endl;
break;
default:
cout << "Opzione non valida!" << endl;
}
} while(opzione = 0);
return 0;
}
Esercizio 3
Domanda: Cosa stampa il programma se l’utente inserisce ‘e’?
- Il programma stampa “Uscita…”
- Il programa stampa “Comando ‘e’ non riconosciuto!”
- Nulla, il programma esce dal do-while e termina
#include <iostream>
using namespace std;
int main() {
char comando;
do {
cout << "Comandi: (S)alva, (C)arica, (E)sci: ";
cin >> comando;
switch(comando) {
case 'S':
cout << "File salvato!" << endl;
break;
case 'C':
cout << "File caricato!" << endl;
break;
case 'E':
cout << "Uscita..." << endl;
break;
default:
cout << "Comando '" << comando << "' non riconosciuto!" << endl;
}
} while(comando != 'E');
return 0;
}
Esercizio 4
Domanda: A partire dal codice, scrivi la specifica funzionale che qualcuno avrebbe potuto scrivere per sviluppare questo programma.
#include <iostream>
using namespace std;
int main() {
int scelta;
int contatore = 0;
do {
cout << "\n=== MENU PRINCIPALE ===" << endl;
cout << "1. Incrementa contatore" << endl;
cout << "2. Decrementa contatore" << endl;
cout << "3. Stampa contatore" << endl;
cout << "0. Esci" << endl;
cout << "Scelta: ";
cin >> scelta;
switch(scelta) {
case 1:
contatore++;
cout << "Contatore incrementato!" << endl;
break;
case 2:
contatore--;
cout << "Contatore decrementato!" << endl;
break;
case 3:
cout << "Valore contatore: " << contatore << endl;
break;
case 0:
cout << "Arrivederci!" << endl;
break;
default:
cout << "Opzione non valida, riprova!" << endl;
}
} while(scelta != 0);
return 0;
}
Esercizio 5
Domanda: Cosa fa questo programma se l’utente inserisce ‘J’?
Opzioni di risposta
- Il programma non esegue nulla e si rimette in attesa di un nuovo cin
- Il programma stampa “JUVE STORIA DI UN GRANDE AMORE BIANCO CHE ABBRACCIA IL NERO” e si rimette in attesa di un nuovo cin
- Il programma stampa “Hai scelto Inter!” e si rimette in attesa di un nuovo cin
- Il programma stampa “Scelta non valida!” e si rimette in attesa di un nuovo cin
#include <iostream>
using namespace std;
int main() {
char scelta;
do {
cin >> scelta;
switch(scelta) {
case 'J':
case 'I':
cout << "Hai scelto Inter!" << endl;
break;
case 'M':
cout << "Hai scelto Milan!" << endl;
break;
case 'Q':
cout << "Uscita dal programma" << endl;
break;
default:
cout << "Scelta non valida!" << endl;
}
} while(scelta != 'Q');
return 0;
}
Esercizio 6
Domanda: Cosa stampa questo programma? (opzioni sotto)
#include <iostream>
using namespace std;
int main() {
int conta1 = 5;
int conta2 = 5;
cout << "=== CICLO WHILE ===" << endl;
while(conta1 < 3) {
cout << "While: " << conta1 << endl;
conta1++;
}
cout << "\n=== CICLO DO-WHILE ===" << endl;
do {
cout << "Do-while: " << conta2 << endl;
conta2++;
} while(conta2 < 3);
cout << "\nValori finali:" << endl;
cout << "conta1 = " << conta1 << endl;
cout << "conta2 = " << conta2 << endl;
return 0;
}
Risposta: Il programma stampa:
Opzione 1
=== CICLO WHILE ===
While: 5
=== CICLO DO-WHILE ===
Do-while: 5
Valori finali:
conta1 = 6
conta2 = 6
Opzione 2
=== CICLO WHILE ===
=== CICLO DO-WHILE ===
Do-while: 5
Valori finali:
conta1 = 5
conta2 = 6
Opzione 3
=== CICLO WHILE ===
=== CICLO DO-WHILE ===
Do-while: 5
Do-while: 6
Valori finali:
conta1 = 5
conta2 = 7
Opzione 4
=== CICLO WHILE ===
While: 5
=== CICLO DO-WHILE ===
Valori finali:
conta1 = 6
conta2 = 5
Esercizio 6
Scrivere un programma in C++ che mantenga un contatore, inizialmente valorizzato a 0. Il programma deve offrire all’utente diverse scelte: incrementare il contatore di 1, decrementare il contatore di 2, azzerare il contatore, uscire dal programma.
Ogni volta che il programma esegue un’operazione, comunica a schermo l’operazione effettuata e il nuovo valore del contatore. Il programma gestisce il caso in cui l’utente non sceglie tra queste opzioni, mostrando un messaggio di errore.