Advertisement
JoseLargo

Untitled

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