Advertisement
JoseLargo

Untitled

Apr 6th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.15 KB | None | 0 0
  1. /*
  2. Ejercicio (Interface)
  3. Tenemos una clase Períferico que representa todos los periféricos que podemos conectar a un
  4. ordenador (monitores, impresoras, teclados, ratones, auriculares,...etc) y que posee los siguientes
  5. atributos y métodos:
  6. Atributos:
  7. • marca, de tipo privado que se corresponde con la marca del periférico.
  8. Métodos:
  9. • Constructor parametrizado
  10. • Método get, que devuelve el valor del atributo marca
  11. • Método mostrar que muestra por pantalla la marca del periférico.
  12.  */
  13. package ejinterfaz;
  14.  
  15. /**
  16.  *
  17.  * @author Pepeç
  18.  * @version version1.0
  19.  */
  20. public class Periferico {
  21.     protected String marca;
  22.     /**
  23.      *
  24.      * @param marca variable que recoge la marca de un periferico
  25.      */
  26.  
  27.     public Periferico(String marca) {
  28.         this.marca = marca;
  29.     }
  30.     /**
  31.      *
  32.      * @return devuelve la variable marca par  
  33.      */
  34.     public String getMarca() {
  35.         return marca;
  36.     }
  37.    
  38.     public void mostrar(){
  39.         System.out.println("La marca es: "+marca);
  40.     }
  41. }
  42.  
  43. /*
  44. Por otro lado tenemos la clase Monitor que hereda de periférico y que posee la siguiente
  45. definición:
  46. Atributos:
  47. • tamano, de tipo privado que expresa el tamaño en pulgadas del monitor.
  48. • numPixelHor, número de pixel en la horizontal de tipo privado.
  49. • numPixelVert, número de pixels en la vertical de tipo privado
  50. Métodos:
  51. • Constructor parametrizado
  52. • Métodos getters para los tres atributos.
  53. • Método obtener resolución, que devolverá la resolución del monitor en megapixels.
  54. • Método mostrar, que mostrará la siguiente información del monitor: marca, tamaño y
  55. resolución del monitor en megapixels.
  56.  */
  57. package ejinterfaz;
  58.  
  59. /**
  60.  *
  61.  * @author Pepe
  62.  * @version version1.0
  63.  */
  64. public class Monitor extends Periferico implements Comparador{
  65.     private double tamaño;
  66.     private int numPixelHor;
  67.     private int numPixelVer;
  68.  
  69.    
  70.     /**
  71.      *
  72.      * @param tamaño, variable que recoge el tamaño de un monitor
  73.      * @param numPixelHor, cantidad de pixeles en el eje horizontal
  74.      * @param numPixelVer, cantidad de pixeles en el eje vertical
  75.      * @param marca, variable heredada de periferico, que recoge la marca
  76.      */
  77.     public Monitor(double tamaño, int numPixelHor, int numPixelVer, String marca) {
  78.         super(marca);
  79.         this.tamaño = tamaño;
  80.         this.numPixelVer = numPixelVer;
  81.         this.numPixelHor = numPixelHor;
  82.     }
  83.  
  84.     public double getTamaño() {
  85.         return tamaño;
  86.     }
  87.  
  88.     public void setTamaño(double tamaño) {
  89.         this.tamaño = tamaño;
  90.     }
  91.  
  92.     public int getNumPixelHor() {
  93.         return numPixelHor;
  94.     }
  95.  
  96.     public void setNumPixelHor(int numPixelHor) {
  97.         this.numPixelHor = numPixelHor;
  98.     }
  99.  
  100.     public int getNumPixelVer() {
  101.         return numPixelVer;
  102.     }
  103.  
  104.     public void setNumPixelVer(int numPixelVer) {
  105.         this.numPixelVer = numPixelVer;
  106.     }
  107.    
  108.     /**
  109.      *
  110.      * @return Megapixeles de la resolucion del monitor
  111.      */
  112.     public double obtenerResolucion(){
  113.         return ((double)numPixelHor*(double)numPixelVer)/1000000;
  114.     }
  115.    
  116.     public void mostrar(){
  117.         super.mostrar();
  118.         System.out.println("Tamaño: "+tamaño);
  119.         System.out.println("La resolución es: "+obtenerResolucion());
  120.     }
  121.     /**
  122.      *
  123.      * @param o Objeto con el que compara
  124.      * @return verdadero si tiene mas resolucion el objeto y falso al reves
  125.      */
  126.     @Override
  127.     public boolean esMejorQue(Object o){
  128.         if( obtenerResolucion()> ((Monitor)o).obtenerResolucion()){
  129.             return true;
  130.         }
  131.         return false;
  132.     }
  133.     /**
  134.      *
  135.      * @param o Objeto con el que compara
  136.      * @return verdadero si tiene menos resolucion el objeto y falso al reves
  137.      */
  138.     @Override
  139.     public boolean esPeorQue(Object o){
  140.         if( obtenerResolucion()<((Monitor)o).obtenerResolucion()){
  141.             return true;
  142.         }
  143.         return false;
  144.     }
  145.     /**
  146.      *
  147.      * @param o Objeto con el que compara
  148.      * @return verdadero si son iguales y falso si no
  149.      */
  150.     @Override
  151.     public boolean esIgualQue(Object o){
  152.         if( obtenerResolucion()==((Monitor)o).obtenerResolucion()){
  153.             return true;
  154.         }
  155.         return false;
  156.     }
  157.    
  158. }
  159.  
  160. /*
  161. Por otro lado, sabemos que todos los periféricos son Comparables, y comparar un monitor implica
  162. comparar su resolución en megapixels con las de otro monitor y el que posea mayor resolución es
  163. mejor. Aplique una solución mediante interfaces que le permita determinar si un monitor es mejor
  164. que otro, es peor que otro o son de iguales características. La interfaz deberá declarar estos tres
  165. métodos:
  166. • esMejorQue(Object o)
  167. • esPeorQue(Object o)
  168. • esIgualQue(Object o)
  169.  */
  170. package ejinterfaz;
  171.  
  172. /**
  173.  *
  174.  * @author Pepe
  175.  * @version version1.0
  176.  */
  177. public interface Comparador {
  178.     public boolean esMejorQue (Object o);
  179.     public boolean esPeorQue (Object o);
  180.     public boolean esIgualQue (Object o);
  181. }
  182.  
  183. /*
  184. ¿Podría la interfaz diseñada en su solución ser implementada por otras clases, como por
  185. ejemplo electrodomésticos, automóviles, embarcaciones etc?
  186.  
  187. Si solo necesitaria coger la variable miembro correcta para la comparacion
  188.  */
  189. package ejinterfaz;
  190.  
  191. /**
  192.  *
  193.  * @author Pepe
  194.  * @version version1.0
  195.  */
  196. import java.util.*;
  197. import java.util.concurrent.TimeUnit;
  198. public class EjInterfaz {
  199.  
  200.     /**
  201.      * @param args the command line arguments
  202.      * @throws java.lang.InterruptedException
  203.      */
  204.    
  205.     public static void main(String[] args) throws InterruptedException {
  206.         int indice, hor =0, ver=0;
  207.         double tamaño=0;
  208.         String marca=null;
  209.         Scanner sc= new Scanner(System.in);
  210.        
  211.         System.out.println("Cree monitor inicial con el que comparar");
  212.         System.out.println("Introduzca la marca de periferico");
  213.         marca=sc.nextLine();
  214.         System.out.println("Introduzca tamaño del monitor");
  215.         tamaño=sc.nextInt();
  216.         System.out.println("Introduce pixeles horizontales seguido de verticales");
  217.         hor=sc.nextInt();
  218.         ver=sc.nextInt();
  219.        
  220.         Monitor m2= new Monitor (tamaño,hor,ver,marca);
  221.        
  222.        
  223.        
  224.         do{
  225.             menu();
  226.             indice=sc.nextInt();
  227.             switch(indice){
  228.                 case 0:
  229.                     System.out.println("Saliendo");
  230.                     break;
  231.                 case 1:
  232.                     System.out.println("Introduzca la marca de periferico");
  233.                     /*doble lectura por error de Scanner de Netbeans*/
  234.                     marca=sc.nextLine();
  235.                     marca=sc.nextLine();
  236.                     System.out.println("Introduzca tamaño del monitor");
  237.                     tamaño=sc.nextInt();
  238.                     System.out.println("Introduce pixeles horizontales seguido de verticales");
  239.                     hor=sc.nextInt();
  240.                     ver=sc.nextInt();
  241.                     Monitor m= new Monitor (tamaño,hor,ver,marca);
  242.                     break;
  243.                 case 2:
  244.                     m= new Monitor (tamaño,hor,ver,marca);
  245.                     System.out.println("¿Es mejor?: "+m.esMejorQue(m2));
  246.                     break;
  247.                 case 3:
  248.                     m= new Monitor (tamaño,hor,ver,marca);
  249.                     System.out.println("¿Es peor?: "+m.esPeorQue(m2));
  250.                     break;
  251.                 case 4:
  252.                     m= new Monitor (tamaño,hor,ver,marca);
  253.                     System.out.println("¿Es Igual?: "+m.esIgualQue(m2));
  254.                     break;
  255.                 case 5:
  256.                     m= new Monitor (tamaño,hor,ver,marca);
  257.                     m.mostrar();
  258.                     break;
  259.                 case 6:
  260.                     m= new Monitor (tamaño,hor,ver,marca);
  261.                     if (m.esPeorQue(m2)) {
  262.                         System.out.println("Es peor el "+m.marca);
  263.                     }else if(m.esIgualQue(m2)){
  264.                         System.out.println("Es igual ");
  265.                     }else if(m.esMejorQue(m2)){
  266.                         System.out.println("Es mejor el "+m.marca);
  267.                     }
  268.                 break;
  269.                 default:
  270.                     System.out.println("Numero no valido");
  271.             }
  272.         }while(indice!=0);
  273.        
  274.        
  275.     }
  276.        
  277.     public static void menu() throws InterruptedException {
  278.         delay();
  279.         System.out.println(" ");
  280.         System.out.println("\033[32m1.  Crear Monitor\n"
  281.                         +  "\033[32m2.  ¿Es mejor?\n"
  282.                         +  "\033[32m3.  ¿Es peor?\n"
  283.                         +  "\033[32m4.  ¿Es igual?\n"
  284.                         +  "\033[32m5.  Mostrar \n"
  285.                         +  "\033[32m6.  Comparacion absoluta\n"
  286.                         +  "    \033[32mSalir ----> 0");
  287.         delay();
  288.     }
  289.      public static void delay() throws InterruptedException{
  290.          for (int i = 0; i < 4; i++) {
  291.             System.out.print("\033[35m* * * ");
  292.             TimeUnit.SECONDS.sleep(1);
  293.         }
  294.         System.out.println(" ");
  295.      }
  296.    
  297. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement