Advertisement
chete

ordenar figuras

May 25th, 2014
489
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.59 KB | None | 0 0
  1.     1 import java.util.Scanner;
  2.     2
  3.     3 /**
  4.     4  *
  5.     5  */
  6.     6
  7.     7 public class Main {
  8.     8
  9.     9   /**
  10.    10    * Lee una colección de figuras con su identificador y sus medidas básicas asociadas
  11.    11    * por la entrada estándar y devuelve sus áreas y perímetros, en orden ascendente respecto
  12.    12    * a su identificador de figura.
  13.    13    *
  14.    14    * La entrada será de la forma siguiente
  15.    15    * <LetraTipoFigura> <número_identificativo_unico> <lista_medidas>
  16.    16    *
  17.    17    * donde <LetraTipoFigura> será una T por triángulo, una R por rectángulo y una C por círculo,
  18.    18    * <número_identificativo_único> será un número long único por cada figura, independientemente del
  19.    19    * tipo de figura que sea y <lista_medidas> serán tres números dobles para un triángulo, representando
  20.    20    * la longitud de sus tres lados, dos números dobles para un rectángujo, representando la longitud de
  21.    21    * sus lados y un único número para un círculo, representando la longitud del radio del círculo.
  22.    22    *
  23.    23    * La salida será una línea por cada figura de la entrada, ordenadas por su identificador único de la
  24.    24    * forma:
  25.    25    * <número_identificativo único> <perímetro_figura> <área_figura>
  26.    26    * donde tanto el perímetro como el área se darán con dos dígitos decimales.
  27.    27    * @param args
  28.    28    */
  29.    29   public static void main(String[] args) {
  30.    30       Scanner lee = new Scanner(System.in);
  31.    31       ColeccionFiguras cf = new ColeccionFiguras();
  32.    32      
  33.    33       while (lee.hasNext()){
  34.    34           String tipoFig = lee.next();
  35.    35           long id = lee.nextLong();
  36.    36           Figura f=null;
  37.    37           switch (tipoFig) {
  38.    38           case "T":  f = new Triangulo(id, lee.nextDouble(), lee.nextDouble(), lee.nextDouble()); break;
  39.    39           case "R":  f = new Rectangulo(id, lee.nextDouble(), lee.nextDouble()); break;
  40.    40           case "C":  f = new Circulo(id, lee.nextDouble()); break;
  41.    41           }
  42.    42          
  43.    43           cf.add(f);
  44.    44       }
  45.    45      
  46.    46       cf.ordenarFiguras();
  47.    47      
  48.    48       System.out.println(cf);;
  49.    49   }
  50.    50
  51.    51 }
  52. ********************************************************************************************************
  53.  
  54.  /** Clase abstracta que representa figuras geométricas planas.
  55.     2  *
  56.     3  */
  57.     4 public abstract class Figura implements Comparable{
  58.     5   protected int idFigura; //Identificador único de una figura
  59.     6  
  60.     7   /**
  61.     8    * Calcula el área de una figura geométrica plana.
  62.     9    * @return El área en unidades de longitud al cuadrado.
  63.    10    */
  64.    11   public abstract double area();
  65.    12
  66.    13   /**
  67.    14    * Calcula el perímetro de una figura geométrica plana.
  68.    15    * @return El perímetro en unidades de longitud al cuadrado.
  69.    16    */
  70.    17   public abstract double perimetro();
  71.    18 }
  72. ********************************************************************************************************
  73. /**
  74.     2  * Interfaz que declara un método para comparar dos figuras.
  75.     3  */
  76.     4 public interface Comparable {
  77.     5  
  78.     6   /**
  79.     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.
  80.     8    * @param fig Objeto Figura a comparar con this.
  81.     9    * @return Devuelve un -1 si this es menor que o, 0 si es igual, y 1 si es mayor.
  82.    10    */
  83.    11   int comparaA(Figura fig);
  84.    12
  85.    13 }
  86. ********************************************************************************************************
  87.  1
  88.     2 /**
  89.     3  * Clase que permite almacenar un conjunto de figuras y realizar algunas operaciones con la colección.
  90.     4  * @author adolfo
  91.     5  *
  92.     6  */
  93.     7 public class ColeccionFiguras implements ListaFiguras{
  94.     8  
  95.     9  
  96.    10 }
  97.    11
  98. ********************************************************************************************************
  99. 1 /**
  100.     2  * Define un conjunto de operaciones para
  101.     3  */
  102.     4
  103.     5
  104.     6 public interface ListaFiguras {
  105.     7
  106.     8   /**
  107.     9    * Añade una figura a la colección.
  108.    10    * @param f La figura a añadir.
  109.    11    */
  110.    12   void add (Figura f);
  111.    13
  112.    14   /**
  113.    15    * Ordena las figuras que pertenezcan al objeto de la clase que implementa el interfaz ListaFiguras.
  114.    16    * Después de llamar a éste método las figuras están en orden de menor a mayor respecto a su atributo
  115.    17    * identificador.
  116.    18    */
  117.    19   void ordenaFiguras ();
  118.    20 }
  119.    21
  120.  
  121. ********************************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement