Advertisement
MOISES_QUISPE_ROJAS

Estructura Datos 2021 - TP03 P02

Oct 8th, 2021
957
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.76 KB | None | 0 0
  1. /* Estructura de Datos - Facultad de Ingenieria - Universidad Nacional de Jujuy
  2.  *
  3.  * @Autor: Equipo 4.1
  4.  */
  5.  /*      @integrantes:                  |    @Carrera:             |   @LU:
  6.    Flores ,Cesar Ismael                 | Lic. en Sistemas         | 1782
  7.    Llampa, Ariel Angel Gabriel          | Ing. Informatica         | 8445
  8.    Machaca, Rodrigo Agustin             | Ing. Informatica         | 8512
  9.    Perez, Emanuel Ismael                | Ing. Informatica         | 8393
  10.    Quispe Rojas, Moises Esteban Nicolas | Ing. Informatica         | 7286
  11.  
  12. Encolar N letras (una por una) en una cola; luego desencolarlas y hacer lo siguiente: contar las apariciones
  13. de cada vocal y devolver una segunda cola en la que se deben guardar las letras de la cola original pero
  14. reemplazando las vocales minúsculas por las correspondientes mayúsculas. Para la resolución del ejercicio
  15. debe utilizar colas circulares.
  16. Modifique el programa escrito de manera que permita optar entre el ingreso de valores por consola o por
  17. un generador de valores aleatorios.
  18. Indicaciones:
  19. Este ejercicio necesita del objeto scanner para ingresar datos por la consola o teclado, se espera que el
  20. código controle los problemas que normalmente ocurren al operar con la consola o teclado.
  21. Se espera una correcta modularización entre el código que realiza el ingreso y validación de los datos
  22. respecto del código que hace lo que se solicita en el ejercicio.
  23. El ejercicio debe implementar un mecanismo para seleccionar el ingreso de valores por consola o
  24. generados aleatoriamente.
  25.  
  26.  */
  27.  
  28. package Queue;
  29.  
  30. public class ED_E2 {
  31.     private Queue<Character> queueLetters;
  32.     private int contA=0,contE=0,contI=0,contO=0,contU=0;
  33.    
  34.     public static void main(String[] args) {
  35.         (new ED_E2()).open();
  36.     }
  37.    
  38.     public void open(){
  39.         char option;
  40.         do{
  41.             System.out.println("Queue de letras, vocales a mayusculas");
  42.             System.out.println("(a) Carga manual de la Queue");
  43.             System.out.println("(b) Carga automatica de la Queue");
  44.             System.out.print("Opcion: ");
  45.             option=Helper.getChar();
  46.         }while(validateOption(option));
  47.     }
  48.    
  49.     public boolean validateOption(char option){
  50.         switch(option){
  51.             case 'a','A':
  52.                 registerManual();
  53.                 return false;
  54.             case 'b','B':
  55.                 registerAutomatic();
  56.                 return false;
  57.                 default:{
  58.                     System.out.println("Error...");
  59.                     System.out.println("Intentelo de nuevo");
  60.                     return true;
  61.                 }
  62.         }
  63.     }
  64.    
  65.     //  Generar valores entre un rango  
  66.     //  new Random().nextInt(max - min + 1) + min;
  67.    
  68.     public void registerAutomatic(){
  69.         int amount=Helper.random.nextInt(40-15+1)+15;
  70.         char lowercaseVowels,uppercaseVowels,vowelToAdd;
  71.         setQueueLetters(new Queue<Character>(amount));
  72.         for(int i=0;i<amount;i++){
  73.             uppercaseVowels=(char) (Helper.random.nextInt(90-65+1)+65);
  74.             lowercaseVowels=(char) (Helper.random.nextInt(122-97+1)+97);          
  75.             vowelToAdd=Helper.random.nextInt(2)==0? lowercaseVowels:uppercaseVowels;          
  76.             getQueueLetters().add(vowelToAdd);
  77.         }      
  78.         System.out.println("Se genero la siguiente Queue: ");
  79.         System.out.println(getQueueLetters());
  80.         // Resolucion del enunciado
  81.         System.out.println("La nueva Queue es la siguiente: ");
  82.         setQueueLetters(deQueueCount(getQueueLetters()));
  83.         System.out.println(getQueueLetters());
  84.         System.out.println("Cantidades de A= "+this.contA);
  85.         System.out.println("Cantidades de E= "+this.contE);
  86.         System.out.println("Cantidades de I= "+this.contI);
  87.         System.out.println("Cantidades de O= "+this.contO);
  88.         System.out.println("Cantidades de U= "+this.contU);
  89.     }
  90.    
  91.     public void registerManual(){
  92.         System.out.print("Ingrese la cantidad de letras a cargar :");
  93.         int amount = Helper.getIntegerPositive();
  94.         char letter;
  95.         setQueueLetters(new Queue<Character>(amount));
  96.         for(int i=0;i<amount;i++){
  97.             do{
  98.                 System.out.print("Ingrese letra: ");
  99.                 letter=Helper.getChar();
  100.             }while(validateLetter(letter));
  101.             getQueueLetters().add(letter);
  102.         }
  103.         System.out.println("Se cargo la siguiente Queue: ");
  104.         System.out.println(getQueueLetters());
  105.         // Resolucion del enunciado
  106.         System.out.println("La nueva Queue es la siguiente: ");
  107.         setQueueLetters(deQueueCount(getQueueLetters()));
  108.         System.out.println(getQueueLetters());
  109.         System.out.println("Cantidades de A= "+this.contA);
  110.         System.out.println("Cantidades de E= "+this.contE);
  111.         System.out.println("Cantidades de I= "+this.contI);
  112.         System.out.println("Cantidades de O= "+this.contO);
  113.         System.out.println("Cantidades de U= "+this.contU);
  114.     }
  115.  
  116.     public boolean validateLetter(char letter){
  117.         letter = Character.toUpperCase(letter);
  118.         int valueASCII= (int) letter;
  119.         if(valueASCII != 165 && (valueASCII < 65 || valueASCII > 90)){
  120.             System.out.println("Error...");
  121.             System.out.println("El valor ingresado no es una letra");
  122.             return true;
  123.         }else{
  124.             return false;
  125.         }      
  126.     }
  127.    
  128.     public Queue deQueueCount(Queue<Character> queueLetters){
  129.         int leng=queueLetters.size();
  130.         char removeLetter;
  131.         for(int i=0;i<leng;i++){
  132.             removeLetter=queueLetters.remove();
  133.             if(isVowels(removeLetter)){
  134.                 queueLetters.add(Character.toUpperCase(removeLetter));
  135.             }else{
  136.                 queueLetters.add(removeLetter);
  137.             }  
  138.         }
  139.         return queueLetters;
  140.  
  141.     }
  142.    
  143.     public boolean isVowels(char removeLetter){
  144.          switch(removeLetter){
  145.                 case 'a','A':
  146.                     this.contA++;
  147.                     return true;
  148.                 case 'e','E':
  149.                     this.contE++;
  150.                     return true;
  151.                 case 'i','I':
  152.                     this.contI++;
  153.                     return true;
  154.                 case 'o','O':
  155.                     this.contO++;
  156.                     return true;
  157.                 case 'u','U':
  158.                     this.contU++;
  159.                     return true;
  160.                     default:
  161.                         return false;
  162.             }  
  163.     }
  164.  
  165.     public Queue<Character> getQueueLetters() {
  166.         return queueLetters;
  167.     }
  168.  
  169.     public void setQueueLetters(Queue<Character> queueLetters) {
  170.         this.queueLetters = queueLetters;
  171.     }
  172.    
  173.    
  174. }
  175.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement