andresnogales

Main1.java

Oct 13th, 2021 (edited)
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.46 KB | None | 0 0
  1. public class Main1 {
  2.     static final int MAX_SIZE = 5;
  3.    
  4.     public static void main(String[] args) {               
  5.         CircularQueue queue = new CircularQueue(MAX_SIZE);
  6.        
  7.         String[] options = {
  8.                 "Ingresar número",
  9.                 "Eliminar primero en la cola",
  10.                 "Generar números aleatorios",
  11.                 "Mostrar elementos guardados",
  12.                 "Eliminar múltiplos"
  13.                 };
  14.        
  15.         Menu menu = new Menu(options);
  16.         Integer inputNumber;
  17.         Integer option = 0;
  18.        
  19.         do {
  20.             option = menu.getOption();
  21.            
  22.             switch(option) {
  23.             case 1:
  24.                 //Ingreso de un número por teclado implementado la clase Helper
  25.                 try {
  26.                     inputNumber = Helper.getInt("Ingrese un número: ");
  27.                     queue.enqueue(inputNumber);
  28.                     System.out.println("Número almacenado");
  29.                     queue.print();
  30.                   } catch(RuntimeException e) {
  31.                    System.err.println("No se pudo realizar la acción " + e);
  32.                   }                            
  33.                 Helper.pressEnterKeyToContinue();
  34.                 break;
  35.            
  36.             case 2:
  37.                 //Elimina el número que está primero en la cola
  38.                 try {
  39.                     Integer numberDequeue = queue.dequeue();
  40.                     System.out.println("Número que salió: " + numberDequeue);
  41.                     queue.print();
  42.                   } catch(RuntimeException e) {
  43.                    System.err.println("No se pudo realizar la acción " + e);
  44.                   }                            
  45.                 Helper.pressEnterKeyToContinue();
  46.                 break;
  47.            
  48.             case 3:
  49.                 //Genera números aleatorios implementado la clase Helper
  50.                 queue = new CircularQueue(MAX_SIZE);
  51.                 for(int i = 0; i < MAX_SIZE; i++) {
  52.                     queue.enqueue(Helper.randomInt(1, 500));
  53.                 }
  54.                 System.out.println("Números generados");
  55.                 queue.print();
  56.                 Helper.pressEnterKeyToContinue();
  57.                 break;
  58.            
  59.             case 4:
  60.                 //Muestra los elementos de la cola segun orden de ingreso
  61.                 queue.print();
  62.                 Helper.pressEnterKeyToContinue();
  63.                 break;
  64.            
  65.             case 5:
  66.                 //Llamada al método que resuelve lo que solicita el ejercicio
  67.                 System.out.println("Se suprimiránn todas las apariciones de los múltiplos de un número");
  68.                 inputNumber = Helper.getInt("Ingrese dicho número: ");
  69.                 queue = deleteMultiples(queue,inputNumber);
  70.                 queue.print();
  71.                 Helper.pressEnterKeyToContinue();
  72.                 break;
  73.             }          
  74.         }while(option !=0);
  75.        
  76.         System.out.println("Fin del programa");
  77.     }
  78.    
  79.     public static CircularQueue deleteMultiples(CircularQueue queue, Integer number) {
  80.         if(queue.isEmpty()) {
  81.             throw new RuntimeException("Error: La cola está vacía");
  82.         }
  83.         //Se crea una cola auxiliar donde se copiaran los elementos que
  84.         //no sean multiplos
  85.         CircularQueue queueReturn = new CircularQueue(MAX_SIZE);
  86.        
  87.         int i = 0;
  88.         //Head apunta al primer elemento de la cola y será el indice
  89.         //a partir del cual se empezará a recorrer la misma
  90.         int index = queue.getHead();
  91.        
  92.         while(i < queue.getActualSize()) {
  93.             Integer numberInQueue = queue.getElements()[index];
  94.             if(numberInQueue % number != 0) {
  95.                 //El numero que no es multiplo se enconla en la cola a retornar
  96.                 queueReturn.enqueue(numberInQueue);
  97.             }else {
  98.                 System.out.println(numberInQueue + " es multiplo");
  99.             }
  100.             index = queue.next(index);
  101.             i++;  
  102.         }
  103.         //Si las dos colas terminan con el mismo tamaño, entones no se
  104.         //descarto ningun elemento
  105.         if(queue.getActualSize() == queueReturn.getActualSize()) {
  106.             System.out.println("No hubo modificaciones en la cola");
  107.         }        
  108.         return queueReturn;
  109.     }
  110. }
  111.  
Add Comment
Please, Sign In to add comment