ESTE BLOG SE MANEJA COMO UN LIBRO. SI VAS AL INDICE ENCONTRARAS TODOS LOS TEMAS ORDENADOS POR MATERIAS. MUCHAS GRACIAS.

Java / Software de calculo de Área de Polígonos (Triángulos y rectángulos)

Hacer un programa para calcular el area de poligonos (triangulos y rectangulos). El programa debe ser capaz de almacenar en un arreglo N triangulos y rectangulos, y al final mostrar el area y los datos de cada uno.

- Una Super clase llamada Poligono.
- Una sub clase llamada Rectangulo.
- Una sub clase llmada Triangulo.

--------------------------------------------------------------------------------------------------------------------------

PROGRAMA MAIN

package calculo;


import java.util.ArrayList;
import java.util.Scanner;

public class Calculo {
   
    static ArrayList poligono = new ArrayList();
    static Scanner entrada = new Scanner(System.in);
   
    public static void main(String[] args) {
      llenarPoligono();
     
      Recorrer();
    }
   
    public static void llenarPoligono(){
        char respuesta;
        int opcion;
        do{
            do{
                System.out.println("Digite que poligono desea: Triangulo o Rectangulo."
                    + "1 para triangulo "
                    + "2 para rectangulo ");
            System.out.println("Opcion: ");
            opcion = entrada.nextInt();
            }while(opcion<1 opcion="">2);
         
           
            switch (opcion) {
                case 1: llenarTriangulo();
                    break;
                case 2: llenarRectangulo();
                    break;
            }
            System.out.println("Desea ingresar otro poligono (s/n)");
            respuesta = entrada.next().charAt(0);
        }while(respuesta=='s' || respuesta=='S');
     
    }
   
    public static void llenarTriangulo(){
        double lado1 = 0,lado2 = 0,lado3 = 0;
        for (int i=1; i<=3; i++){
            System.out.println("Ingrese lado "+ i+" del triangulo");
            switch (i) {
                case 1: lado1 = entrada.nextDouble();
                    break;
                case 2: lado2 = entrada.nextDouble();
                    break;
                case 3: lado3 = entrada.nextDouble();
                    break;
            }
        }
        Triangulo triangulo = new Triangulo(lado1,lado2,lado3);
        poligono.add(triangulo);
    }
   
    public static void llenarRectangulo(){
        double lado1 = 0,lado2 = 0;
        for (int i=1; i<=2; i++){
            System.out.println("Ingrese lado "+ i+" del rectangulo");
            switch (i) {
                case 1: lado1 = entrada.nextDouble();
                    break;
                case 2: lado2 = entrada.nextDouble();
                    break;
            }
        }
        Rectangulo rectangulo = new Rectangulo(lado1,lado2);
        poligono.add(rectangulo);
    }
   
    public static void Recorrer(){
        poligono.stream().map((poli) -> {
            System.out.println(poli.toString());
            return poli;
        }).forEachOrdered((poli) -> {
            System.out.println("Area= "+poli.Area());
        });
    }
}

=======================================================================

SUPER CLASE

package calculo;

public abstract class Poligono {
    //atributos
    protected int NumeroLados;
   
    // Constructor

    public Poligono(int NumeroLados) {
        this.NumeroLados = NumeroLados;
    }

    public int getNumeroLados() {
        return NumeroLados;
    }
   
    // Metodos

   
    @Override
    public String toString() {
        return "Poligono{" + "NumeroLados=" + NumeroLados + '}';
    }
   
    public abstract double Area();

}

========================================================================

SUB CLASE TRIANGULO

package calculo;

public class Triangulo extends Poligono{
    private final double lado1;
    private final double lado2;
    private final double lado3;

    // Constructor
    public Triangulo(double lado1, double lado2, double lado3) {
        super(3);
        this.lado1 = lado1;
        this.lado2 = lado2;
        this.lado3 = lado3;
    }

    public double getLado1() {
        return lado1;
    }

    public double getLado2() {
        return lado2;
    }

    public double getLado3() {
        return lado3;
    }

    @Override
    public String toString() {
        return "Triangulo{" + "lado1=" + lado1 + ", lado2=" + lado2 + ", lado3=" + lado3 + '}';
    }
    @Override
    public double Area() {
        double p= (lado1+lado2+lado3)/2;
        return Math.sqrt(p*(p-lado1)*(p-lado2)*(p-lado3));              
    }   
}

========================================================================

SUB CLASE RECTANGULO

package calculo;

public class Rectangulo extends Poligono{
    private double lado1;
    private double lado2;

    //Constructor
    public Rectangulo(double lado1, double lado2) {
        super(4);
        this.lado1 = lado1;
        this.lado2 = lado2;
    }

    public double getLado1() {
        return lado1;
    }

    public double getLado2() {
        return lado2;
    }

    @Override
    public String toString() {
        return "Rectangulo{" + "lado1=" + lado1 + ", lado2=" + lado2 + '}';
    }

    @Override
    public double Area() {
      return lado1*lado2;
    }
}
========================================================================

Salida por pantalla:

run:
Digite que poligono desea: Triangulo o Rectangulo.1 para triangulo 2 para rectangulo 
Opcion: 
1
Ingrese lado 1 del triangulo
2
Ingrese lado 2 del triangulo
3
Ingrese lado 3 del triangulo
4
Desea ingresar otro poligono (s/n)
s
Digite que poligono desea: Triangulo o Rectangulo.1 para triangulo 2 para rectangulo 
Opcion: 
2
Ingrese lado 1 del rectangulo
3
Ingrese lado 2 del rectangulo
5
Desea ingresar otro poligono (s/n)
n
Triangulo{lado1=2.0, lado2=3.0, lado3=4.0}
Area= 2.9047375096555625
Rectangulo{lado1=3.0, lado2=5.0}
Area= 15.0
BUILD SUCCESSFUL (total time: 21 seconds)

No hay comentarios:

Publicar un comentario