Foros del Web » Programación para mayores de 30 ;) » Java »

programa de iniciación en java

Estas en el tema de programa de iniciación en java en el foro de Java en Foros del Web. Buenas, estoy aprendiendo java, pero tengo un problema a la hora de desarrollar un ejercicio, este es el enunciado: Desarrollar una aplicación de cifrado de ...
  #1 (permalink)  
Antiguo 06/03/2014, 04:54
 
Fecha de Ingreso: marzo-2014
Mensajes: 3
Antigüedad: 10 años, 8 meses
Puntos: 0
programa de iniciación en java

Buenas, estoy aprendiendo java, pero tengo un problema a la hora de desarrollar un ejercicio, este es el enunciado:

Desarrollar una aplicación de cifrado de códigos numéricos.

El cifrador recibirá un código numérico y una implementación de un algoritmo de cifrado/descifrado y la orden de cifrar o descifrar el código.

Existen distintos algoritmos:

• Multiplicar por un número determinado.

• Diferencia existente a un número determinado.

• El XOR con un número determinado.

Desarrollar la clase Actividad5 que en su método main cree un cifrador, y le pida cifrar y descifrar varios códigos usando distintos algoritmos de encriptación.

Realizar también el diseño del Diagrama de Clases UML.


hasta ahora este es el codigo que yo tenia realizado, el cual funcionaba

Código:
public interface Algoritmo 
{ 
public abstract int encriptar(); 
public abstract int desencriptar(); 
}
Código:
public class Cifrado {
	static int numero2;

	public Cifrado(int numero2) {
	Cifrado.numero2=numero2;		
	}
	 
	public int encriptar(int numero2) 
	{ 
	return numero2; 
	} 
	public int desencriptar(int numero2) 
	{ 
	return numero2; 
	} 
	}
Código:
public abstract class Diferencia extends Cifrado implements Algoritmo {
//Atributos 
private int numero; 

//Constructores 
public Diferencia(int param) 
{ 
	super(numero2);
numero = param; 
} 

//Metodos 
public int encriptar() 
{ 
return numero - numero2; 
} 
public int desencriptar() 
{ 
return numero + numero2;
} 
public void encriptacionDiferencia() 
{ 
System.out.print("Algoritmo diferencia: "); 
System.out.print("código encriptado -> " + encriptar()); 
System.out.println(" código desencriptado -> " + desencriptar()); 
} 
}
Código:
public abstract class Multiplica extends Cifrado implements Algoritmo {
//Atributos 
private int numero; 

//Constructores 
public Multiplica(int param) 
{ 
	super(numero2);
numero = param; 
} 

//Metodos 
public int encriptar() 
{ 
return numero - numero2; 
} 
public int desencriptar() 
{ 
return numero / numero2;
} 
public void encriptacionDiferencia() 
{ 
System.out.print("Algoritmo diferencia: "); 
System.out.print("código encriptado -> " + encriptar()); 
System.out.println(" código desencriptado -> " + desencriptar()); 
} 
}
Código:
public abstract class Xor extends Cifrado implements Algoritmo {
//Atributos 
private int numero; 

//Constructores 
public Xor(int param) 
{ 
	super(numero2);
numero = param; 
} 

//Metodos 
public int encriptar() 
{ 
return numero ^ numero2; 
} 
public int desencriptar() 
{ 
return numero2 ^ numero;
} 
public void encriptacionDiferencia() 
{ 
System.out.print("Algoritmo diferencia: "); 
System.out.print("código encriptado -> " + encriptar()); 
System.out.println(" código desencriptado -> " + desencriptar()); 
} 
}
Código:
public class Actividad5 
{
    public static void main(String[] args) {
        Cifrado c = new Cifrado(4);
        Diferencia algoritmo1 = new Diferencia(10){}; 
        Multiplica algoritmo2 = new Multiplica(5){}; 
        Xor algoritmo3 = new Xor(20){}; 
        c.encriptar(4); 
        algoritmo1.encriptacionDiferencia(); 
        algoritmo2.encriptacionDiferencia(); 
        algoritmo3.encriptacionDiferencia(); 
    } 
}
Pero lo tengo mal planteado desde el principio, me dicen que tengo que tener el constructor de cifrador así:

public Cifrador(long l, Algoritmo tipoCifrado, boolean b){

................

y utilizarlo así:

Cifrador c=new Cifrador(111L, new Xor(),true);

pero no entiendo para que tengo que crear un "new Xor()" o un "boolean" ni que parte del código aparte del constructor y el main tendría que modiicar

por favor si me pudrieran guiar un poco me ayudaría mucho.

Saludos y gracias de antemano!

Etiquetas: clase, metodo, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:20.