Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1 import java.util.Scanner;
- 2
- 3 /**
- 4 *
- 5 */
- 6
- 7 public class Main {
- 8
- 9 /**
- 10 * Lee una colección de figuras con su identificador y sus medidas básicas asociadas
- 11 * por la entrada estándar y devuelve sus áreas y perímetros, en orden ascendente respecto
- 12 * a su identificador de figura.
- 13 *
- 14 * La entrada será de la forma siguiente
- 15 * <LetraTipoFigura> <número_identificativo_unico> <lista_medidas>
- 16 *
- 17 * donde <LetraTipoFigura> será una T por triángulo, una R por rectángulo y una C por círculo,
- 18 * <número_identificativo_único> será un número long único por cada figura, independientemente del
- 19 * tipo de figura que sea y <lista_medidas> serán tres números dobles para un triángulo, representando
- 20 * la longitud de sus tres lados, dos números dobles para un rectángujo, representando la longitud de
- 21 * sus lados y un único número para un círculo, representando la longitud del radio del círculo.
- 22 *
- 23 * La salida será una línea por cada figura de la entrada, ordenadas por su identificador único de la
- 24 * forma:
- 25 * <número_identificativo único> <perímetro_figura> <área_figura>
- 26 * donde tanto el perímetro como el área se darán con dos dígitos decimales.
- 27 * @param args
- 28 */
- 29 public static void main(String[] args) {
- 30 Scanner lee = new Scanner(System.in);
- 31 ColeccionFiguras cf = new ColeccionFiguras();
- 32
- 33 while (lee.hasNext()){
- 34 String tipoFig = lee.next();
- 35 long id = lee.nextLong();
- 36 Figura f=null;
- 37 switch (tipoFig) {
- 38 case "T": f = new Triangulo(id, lee.nextDouble(), lee.nextDouble(), lee.nextDouble()); break;
- 39 case "R": f = new Rectangulo(id, lee.nextDouble(), lee.nextDouble()); break;
- 40 case "C": f = new Circulo(id, lee.nextDouble()); break;
- 41 }
- 42
- 43 cf.add(f);
- 44 }
- 45
- 46 cf.ordenarFiguras();
- 47
- 48 System.out.println(cf);;
- 49 }
- 50
- 51 }
- ********************************************************************************************************
- /** Clase abstracta que representa figuras geométricas planas.
- 2 *
- 3 */
- 4 public abstract class Figura implements Comparable{
- 5 protected int idFigura; //Identificador único de una figura
- 6
- 7 /**
- 8 * Calcula el área de una figura geométrica plana.
- 9 * @return El área en unidades de longitud al cuadrado.
- 10 */
- 11 public abstract double area();
- 12
- 13 /**
- 14 * Calcula el perímetro de una figura geométrica plana.
- 15 * @return El perímetro en unidades de longitud al cuadrado.
- 16 */
- 17 public abstract double perimetro();
- 18 }
- ********************************************************************************************************
- /**
- 2 * Interfaz que declara un método para comparar dos figuras.
- 3 */
- 4 public interface Comparable {
- 5
- 6 /**
- 7 * Compara según el orden definido por el identificador de una figura la figura this con la figura fig que se pasa como parámetro.
- 8 * @param fig Objeto Figura a comparar con this.
- 9 * @return Devuelve un -1 si this es menor que o, 0 si es igual, y 1 si es mayor.
- 10 */
- 11 int comparaA(Figura fig);
- 12
- 13 }
- ********************************************************************************************************
- 1
- 2 /**
- 3 * Clase que permite almacenar un conjunto de figuras y realizar algunas operaciones con la colección.
- 4 * @author adolfo
- 5 *
- 6 */
- 7 public class ColeccionFiguras implements ListaFiguras{
- 8
- 9
- 10 }
- 11
- ********************************************************************************************************
- 1 /**
- 2 * Define un conjunto de operaciones para
- 3 */
- 4
- 5
- 6 public interface ListaFiguras {
- 7
- 8 /**
- 9 * Añade una figura a la colección.
- 10 * @param f La figura a añadir.
- 11 */
- 12 void add (Figura f);
- 13
- 14 /**
- 15 * Ordena las figuras que pertenezcan al objeto de la clase que implementa el interfaz ListaFiguras.
- 16 * Después de llamar a éste método las figuras están en orden de menor a mayor respecto a su atributo
- 17 * identificador.
- 18 */
- 19 void ordenaFiguras ();
- 20 }
- 21
- ********************************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement