Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Random;
- import java.util.Scanner;
- import tp0.Helper;
- public class Tp3ejercicio4 {
- static Random aleatorio = new Random();
- static Scanner sc = new Scanner(System.in);
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- int opcion;
- String frase;
- Queue<Integer> clave = new Queue<>(4);
- System.out.println("Ejercicio 4 Tp 3");
- System.out.println("Este programa nos permite codificar una frase ");
- do {
- opcion = menu();
- switch (opcion) {
- case 1:
- System.out.println("Ingrese la frase que desea codificar");
- frase = sc.nextLine();
- System.out.println("Ingrese el vector clave (4 números enteros)");
- clave = cargarClave();
- frase = codificar(frase,clave);
- System.out.println("La frase codificada es: "+frase);
- int rpta = Helper.getInteger("Para decodificarla presione 1");
- if(rpta == 1)
- System.out.println(decodificar(frase,clave));
- break;
- case 2:
- frase = generarFrase();
- System.out.println("Frase generada: "+frase);
- clave = generarClave();
- System.out.println("Clave generada: "+clave);
- frase = codificar(frase,clave);
- System.out.println("La frase codificada es: "+frase);
- rpta = Helper.getInteger("Para decodificarla presione 1");
- System.out.println(clave);
- if(rpta == 1)
- System.out.println(decodificar(frase,clave));
- break;
- case 3:
- System.out.println("Programa Terminado");
- break;
- default:
- System.out.println("No es una opción correcta ");
- break;
- }
- }while(opcion!=3);
- }
- public static int menu() {
- int op;
- System.out.println();
- System.out.println("1.Ingresar manualmente");
- System.out.println("2.Generar aleatoriamente");
- System.out.println("3.Salir");
- op = Helper.getPositiveInt("Ingrese una opcion");
- return op;
- }
- public static Queue<Integer> cargarClave() {
- Queue<Integer> cola = new Queue<>(4);
- while(!cola.isFull()) {
- cola.add(Helper.getInteger("Ingrese un número"));
- }
- return cola;
- }
- public static Queue<Integer> generarClave(){
- Queue<Integer> cola = new Queue<Integer>(4);
- while(!cola.isFull()) {
- int aux = aleatorio.nextInt(1,10);
- cola.add(aux);
- }
- return cola;
- }
- public static String codificar(String cadena, Queue<Integer> clave) {
- String salida = "";
- Queue<Integer> aux = new Queue<>(4);
- for(char c: cadena.toCharArray()) {
- if(!aux.isFull())aux.add(clave.peek());
- salida += (char)((int)c+clave.peek());
- clave.add(clave.pool());
- }
- while(!clave.isEmpty()) {
- clave.pool();
- }
- while(!clave.isFull()) {
- clave.add(aux.pool());
- }
- return salida;
- }
- public static String decodificar(String cadena, Queue<Integer> clave) {
- String salida = "";
- Queue<Integer> aux = new Queue<>(4);
- for(char c: cadena.toCharArray()) {
- if(!aux.isFull())aux.add(clave.peek());
- salida += (char)((int)c-clave.peek());
- clave.add(clave.pool());
- }
- while(!clave.isEmpty()) {
- clave.pool();
- }
- while(!clave.isFull()) {
- clave.add(aux.pool());
- }
- return salida;
- }
- public static String generarFrase() {
- String[] frases = {"Dime con quien andas y te diré quien eres","Una golondrina no hace verano",
- "El hábito no hace al monje","No hay mal que por bien no venga",
- "El que no corre, vuela","No hay mal que dure cien años",
- "Quien mucho abarca poco aprieta","A buen entendedor pocas palabras",
- "Palabras necias, oídos sordos","Hazte fama y échate a dormir"};
- String salida = "";
- int aux = aleatorio.nextInt(frases.length);
- salida += frases[aux];
- return salida;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement