#include using namespace std; void visualizzaMenu(); int acquisisciSceltaUtente(); void gestisciSceltaMenu(int scelta, float& importoUtente, bool& continua); void gestisciAcquisizioneImporto(float& importoUtente); float calcolaIVA(float importoUtente); void stampaRisultato(float importoUtente, float importoCompleto); int main() { float importo = 0.0; //cout << "### importo = " << importo << endl; bool continua = true; while(continua) { visualizzaMenu(); int sceltaMenu = acquisisciSceltaUtente(); gestisciSceltaMenu(sceltaMenu, importo, continua); //cout << "### importo = " << importo << endl; } } void visualizzaMenu() { cout << "+------------------------+" << endl; cout << "| MENU' |" << endl; cout << "+------------------------+" << endl; cout << "| 1. Inserisci l'importo |" << endl; cout << "| 2. Calcola l' IVA |" << endl; cout << "| 3. Esci |" << endl; cout << "+------------------------+" << endl; cout << endl; cout << "Effettua una scelta (1 o 2):" << endl; return; } int acquisisciSceltaUtente() { int scelta; cin >> scelta; while((scelta < 1) || (scelta > 3)) { cout << "Il valore inserito non e' corretto, riprova: " << endl; cin >> scelta; } return scelta; } void gestisciSceltaMenu(int scelta, float& importoUtente, bool& continua) { if (scelta == 1) { gestisciAcquisizioneImporto(importoUtente); return; } if (scelta == 2) { float importoCompleto = calcolaIVA(importoUtente); stampaRisultato(importoUtente, importoCompleto); return; } if (scelta == 3) { continua = false; return; } } void gestisciAcquisizioneImporto(float& importoUtente) { cout << "Inserire importo: "; cin >> importoUtente; while ((importoUtente < 0.0) || (importoUtente > 1000000.0)) { cout << "Errore, importo errato, riprova: "; cin >> importoUtente; } return; } float calcolaIVA(float importoUtente) { return importoUtente * 1.22; } void stampaRisultato(float importoUtente, float importoCompleto) { cout << "Importo utente: " << importoUtente << endl; cout << "IVA: " << importoCompleto - importoUtente << endl; cout << "Importo finale: " << importoCompleto << endl; cout << endl; return; }