Ciao, volevo condividere e vedere se si poteva migliorare la calcolatrice che ho scritto:
codice:
package com.calcolatrice;

class Calcolatrice
{
	private double risultato;
	protected String stringa;
	
	public int somma(int num_1, int num_2)
	{
		risultato = num_1 + num_2;
		stringa = "somma";
		return (int)risultato;
	}
	
	public int differenza(int num_1, int num_2)
	{
		risultato = num_1 - num_2;
		stringa = "differenza";
		return (int)risultato;
	}
	
	public int moltiplicazione(int num_1, int num_2)
	{
		risultato = num_1 * num_2;
		stringa = "moltiplicazione";
		return (int)risultato;
	}
	
	public double divisione(int num_1, int num_2)
	{
		if(num_2 == 0)
		{
			System.out.println("l'operzione è impossibile: il divisore è uguale a 0. Riprovare");
		}
		else
		{
			risultato = num_1 / num_2;
			stringa = "divisione";
		}
		return risultato;
	}
	
	public double potenza(int num_1, int num_2)
	{
		if(num_2 == 0)
		{
			risultato = 1;
		}
		else 
		{	
			risultato = 1;
			for(int i = 0; i < num_2; i++)
				{
					risultato = risultato * num_1;
				}
		}
		stringa = "potenza";
		return risultato;
	}
}
qui c'è il client

codice:
package com.calcolatrice;

class Calcolatrice_Client
{
	public static void main(String[] args)
	{
		Calcolatrice action = new Calcolatrice();
		int a = (int)(Math.random()*100);
		int b = (int)(Math.random()*100);
		
		while(true)
		{
			int operazione = (int)(Math.random()*10);
			
			if( operazione < 6 && operazione != 0 )
			{
				String stringa = action.stringa;
				long result;
				switch(operazione)
				{
					case 1:
						result = (long)action.somma(a, b);
						stringa = action.stringa;
						System.out.println("Il risultato della " + stringa + " fra " + a + " e " + b + " equivale a: " + result );
						break;
						
					case 2:
						result = (long)action.differenza(a, b);
						stringa = action.stringa;
						System.out.println("Il risultato della " + stringa + " fra " + a + " e " + b + " equivale a: " + result );
						break;
					
					case 3:
						result = (long)action.moltiplicazione(a, b);
						stringa = action.stringa;
						System.out.println("Il risultato della " + stringa + " fra " + a + " e " + b + " equivale a: " + result );
						break;
					
					case 4:
						result = (long)action.divisione(a, b);
						stringa = action.stringa;
						System.out.println("Il risultato della " + stringa + " fra " + a + " e " + b + " equivale a: " + result );
						break;
					
					case 5:
						b = (int)(Math.random()*10);
						result = (long)action.potenza(a, b);
						stringa = action.stringa;
						System.out.println("Il risultato della " + stringa + " fra " + a + " e " + b + " equivale a: " + result );
						break;
					
					default:
						System.out.println("Il numero dell'operazione: " + operazione);
				}
				break;
			}

		}
	}
}