Codifica nel linguaggio C++ – Utilizzo del costrutto Switch

Creazione di una calcolatrice che consenta le operazioni di somma, differenza, prodotto, divisione e resto.
Nell’esempio è proposto anche un primo approccio alle funzioni definite dall’utente.

 

#include <iostream>
#include <iomanip>
using namespace std;

float Numero1, Numero2;

void Input_Numeri()
{
	cout << "Inserisci il primo numero: ";
	cin >> Numero1;
	cout << "Inserisci il secondo numero: ";
	cin >> Numero2;
	
}

int main()
{
float Risultato;
char Tipo;

	cout << "Inserisci l'operazione desiderata: ";
	cin >> Tipo;
	switch (Tipo)
	{
		case 's':
		case 'S':
			cout << endl << "    **** Operazione Selezionata: SOMMA ****    " << endl << endl;
			Input_Numeri();
			Risultato = Numero1 + Numero2;
			break;
		case 'd':
		case 'D':
			cout << endl << "    **** Operazione Selezionata: DIFFERENZA ****    " << endl << endl;
			Input_Numeri();
			Risultato = Numero1 - Numero2;
			break;
		case 'p':
		case 'P':
			cout << endl << "    **** Operazione Selezionata: PRODOTTO ****    " << endl << endl;
			Input_Numeri();
			Risultato = Numero1 + Numero2;
			break;
		case 'q':
		case 'Q':
			cout << endl << "    **** Operazione Selezionata: QUOZIENTE ****    " << endl << endl;
			Input_Numeri();
			if (Numero2 == 0)
			{
				cout << endl << endl << "    **** ERRORE: Stai dividendo per zero ****    " << endl << endl;
				system ("PAUSE");
				return 0;
			}
			Risultato = Numero1 / Numero2;
			break;
		case 'r':
		case 'R':
			cout << endl << "    **** Operazione Selezionata: RESTO ****    " << endl << endl;
			Input_Numeri();
			if (Numero2 == 0)
			{
				cout << endl << endl << "    **** ERRORE: Stai dividendo per zero ****    " << endl << endl;
				system ("PAUSE");
				return 0;
			}
			Risultato = (int)Numero1 % (int)Numero2;
			break;
		default:
			cout << endl << "    **** Valore immesso non valido ****    " << endl << endl;
			system ("PAUSE");
			return 0;
	}

	cout << endl << "    Il risultato e': " << fixed << setprecision(2) << Risultato << endl << endl << endl;
		

   system ("PAUSE");
   
   return 0;
}