Advertisement
LEANDRONIEVA

Ejercicio4Tp3

Oct 12th, 2022
542
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.64 KB | None | 0 0
  1. import java.util.Random;
  2. import java.util.Scanner;
  3.  
  4. import tp0.Helper;
  5.  
  6. public class Tp3ejercicio4 {
  7.     static Random aleatorio = new Random();
  8.     static Scanner sc = new Scanner(System.in);
  9.    
  10.     public static void main(String[] args) {
  11.         // TODO Auto-generated method stub
  12.         int opcion;
  13.         String frase;
  14.         Queue<Integer> clave = new Queue<>(4);
  15.  
  16.         System.out.println("Ejercicio 4 Tp 3");
  17.         System.out.println("Este programa nos permite codificar una frase ");
  18.        
  19.         do {
  20.             opcion = menu();
  21.             switch (opcion) {
  22.             case 1:        
  23.                 System.out.println("Ingrese la frase que desea codificar");
  24.                 frase = sc.nextLine();
  25.                 System.out.println("Ingrese el vector clave (4 números enteros)");
  26.                 clave = cargarClave();
  27.                 frase = codificar(frase,clave);
  28.                 System.out.println("La frase codificada es: "+frase);
  29.                 int rpta = Helper.getInteger("Para decodificarla presione 1");
  30.                 if(rpta == 1)
  31.                 System.out.println(decodificar(frase,clave));
  32.                 break;
  33.             case 2:
  34.                 frase = generarFrase();
  35.                 System.out.println("Frase generada: "+frase);
  36.                 clave = generarClave();
  37.                 System.out.println("Clave generada: "+clave);
  38.                 frase = codificar(frase,clave);
  39.                 System.out.println("La frase codificada es: "+frase);
  40.                 rpta = Helper.getInteger("Para decodificarla presione 1");
  41.                 System.out.println(clave);
  42.                 if(rpta == 1)
  43.                 System.out.println(decodificar(frase,clave));
  44.                 break;
  45.             case 3:
  46.                 System.out.println("Programa Terminado");
  47.                 break;
  48.             default:
  49.                 System.out.println("No es una opción correcta ");
  50.                 break;
  51.             }
  52.         }while(opcion!=3);
  53.     }
  54.  
  55.     public static int menu() {
  56.         int op;
  57.         System.out.println();
  58.         System.out.println("1.Ingresar manualmente");
  59.         System.out.println("2.Generar aleatoriamente");
  60.         System.out.println("3.Salir");
  61.         op = Helper.getPositiveInt("Ingrese una opcion");
  62.  
  63.         return op;
  64.     }
  65.    
  66.     public static Queue<Integer> cargarClave() {
  67.         Queue<Integer> cola = new Queue<>(4);
  68.        
  69.         while(!cola.isFull()) {
  70.             cola.add(Helper.getInteger("Ingrese un número"));
  71.         }
  72.        
  73.         return cola;
  74.     }
  75.    
  76.     public static Queue<Integer> generarClave(){
  77.         Queue<Integer> cola = new Queue<Integer>(4);
  78.        
  79.         while(!cola.isFull()) {
  80.             int aux = aleatorio.nextInt(1,10);
  81.             cola.add(aux);
  82.         }
  83.         return cola;
  84.     }
  85.  
  86.     public static String codificar(String cadena, Queue<Integer> clave) {
  87.         String salida = "";
  88.         Queue<Integer> aux = new Queue<>(4);
  89.        
  90.         for(char c: cadena.toCharArray()) {
  91.             if(!aux.isFull())aux.add(clave.peek());
  92.             salida += (char)((int)c+clave.peek());
  93.             clave.add(clave.pool());
  94.         }
  95.         while(!clave.isEmpty()) {
  96.             clave.pool();
  97.         }
  98.         while(!clave.isFull()) {
  99.             clave.add(aux.pool());
  100.         }
  101.        
  102.         return salida;
  103.     }
  104.    
  105.     public static String decodificar(String cadena, Queue<Integer> clave) {
  106.         String salida = "";
  107.         Queue<Integer> aux = new Queue<>(4);
  108.        
  109.         for(char c: cadena.toCharArray()) {
  110.             if(!aux.isFull())aux.add(clave.peek());
  111.             salida += (char)((int)c-clave.peek());
  112.             clave.add(clave.pool());
  113.         }
  114.         while(!clave.isEmpty()) {
  115.             clave.pool();
  116.         }
  117.         while(!clave.isFull()) {
  118.             clave.add(aux.pool());
  119.         }
  120.    
  121.         return salida;
  122.     }
  123.  
  124.     public static String generarFrase() {
  125.         String[] frases = {"Dime con quien andas y te diré quien eres","Una golondrina no hace verano",
  126.                 "El hábito no hace al monje","No hay mal que por bien no venga",
  127.                 "El que no corre, vuela","No hay mal que dure cien años",
  128.                 "Quien mucho abarca poco aprieta","A buen entendedor pocas palabras",
  129.                 "Palabras necias, oídos sordos","Hazte fama y échate a dormir"};
  130.         String salida = "";
  131.         int aux = aleatorio.nextInt(frases.length);
  132.         salida += frases[aux];
  133.        
  134.         return salida;
  135.     }
  136. }
  137.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement