Calcolo volume forme geometriche

Nel seguente esempio viene mostrato il funzionamento dell’ ereditarietà. Si dà la possibilità all’utente di calcolare il volume di 4 forme a scelta. Per ogni forma verranno richiesti dei valori.

import java.util.Scanner;
import java.io.IOException;
import java.util.InputMismatchException;

class Forma {

    private double lato;
    private double altezza;
    private double profondita;

    public Forma() {
        this.lato = lato;
        this.altezza = altezza;
        this.profondita = profondita;
    }

    public double getLato() {
        return lato;
    }

    public double setLato(int lato) {
        return this.lato = lato;
    }

    public double getAltezza() {
        return altezza;
    }

    public double setAltezza(int altezza) {
        return this.altezza = altezza;
    }

    public double getProfondita() {
        return profondita;
    }

    public double setProfondita(int profondita) {
        return this.profondita = profondita;
    }

}

class Piramide extends Forma {

    public static void calcVolume(Scanner console) {

        System.out.println("Inserisci il valore del lato della base:");
        double lato = console.nextDouble();
        double base= Math.pow(lato, (double)2);
        System.out.println("Inserire altezza:");
        double altezza = console.nextDouble();
        System.out.println("base="+base);
        System.out.println("Il volume della piramide e':" + ((base*altezza)/3));
        System.out.println("Scegli su quale forma calcolare il volume: ('?') per help)");
    }
}

public class CalcVol {

    static Scanner console = new Scanner(System.in);

    public static void main(String[] args) throws IOException {

        try {

            System.out.println("Scegli su quale forma calcolare il volume: ('?' per help)");
            System.out.println("a. Cubo.");
            System.out.println("b. Parallelepipedo.");
            System.out.println("c. Sfera.");
            System.out.println("d. Piramide.");
            System.out.println("q. QUIT");
            System.out.print("> ");
            while (console.hasNext()) {
                String scelta = console.next();
                switch (scelta) {
                    case "a":
                        cuboVol();
                        System.out.print("> ");
                        break;
                    case "b":
                        paraVol();
                        System.out.print("> ");
                        break;
                    case "c":
                        sferaVol();
                        System.out.print("> ");
                    case "d":
                        Piramide.calcVolume(console);
                        System.out.print("> ");
                        break;
                    case "?":
                        System.out.println("****HELP****");
                        System.out.println("a. Cubo.");
                        System.out.println("b. Parallelepipedo.");
                        System.out.println("c. Sfera.");
                        System.out.println("d. Piramide.");
                        System.out.print("> ");
                        break;
                    case "q":
                        System.out.println("Uscita.");
                        return;
                    default:
                        System.out.println("Hai inserito una scelta errata.");
                }
            }

        } catch (InputMismatchException e) {
            System.out.println("Inserimento errato");
        }
    }

    public static void cuboVol() {
        System.out.println("inserisci il valore del lato:");
        double lato = console.nextDouble();
        System.out.println(Math.pow(lato, (double)3));
        System.out.println("Scegli su quale forma calcolare il volume: ('?') per help");
    }

    public static void paraVol() {
        System.out.print("Inserisci il lato:");
        double lato = console.nextDouble();
        System.out.print("Inserisci altezza:");
        double altezza = console.nextDouble();
        System.out.print("Inserisci profondità");
        double profondita = console.nextDouble();
        System.out.println("Il volume del parallelepipedo e': " + lato * altezza * profondita);
        System.out.println("Scegli su quale forma calcolare il volume: ('?') per help");
    }

    public static void sferaVol() {
        System.out.println("Inserire il raggio:");
        double raggio = console.nextDouble();
        double volume = (Math.PI * (Math.pow(raggio, (double) 3))* 4) / 3;
        System.out.println("Il volume della sfera e': " + volume);
        System.out.println("Scegli su quale forma calcolare il volume: ('?') per help");
    }
}

Output video:

Scegli su quale forma calcolare il volume: (‘?’ per help)
a. Cubo.
b. Parallelepipedo.
c. Sfera.
d. Piramide.
q. QUIT
> d
Inserisci il valore del lato della base: 12
Inserire altezza: 12
base= 144.0
Il volume della piramide e’: 576.0
Scegli su quale forma calcolare il volume: (‘?’) per help)
> q
Uscita.

Tags:
Leave a Comment