Está en la página 1de 5

https://apuntesingenieriam.blogspot.

com/2018/12/java-3-
pelotitas-rebotando-en-la.html

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)

También podría gustarte