[size=24]galera… estou com um exercicio e estou com dificuldade para resolve-lo… se alguem puder resolver ele para mim aprender ficarei muito grato… abraços[/size]
[size=18]Instrução Geral[/size]
[color=#444444][size=12]Escreva um aplicativo que aceita como entrada um inteiro de no máximo 4 dígitos e realize a criptografia/decriptografia
deste número imprimindo-os na tela. Para isto crie, no mínimo duas classes para solucionar este problema.[/size][/color]
[size=18]Questão 1[/size]
[size=12]A primeira classe deverá chamar ?Cripto? e deverá possuir um atributo (variável de instância) para armazenar o número
criptografado (numeroOculto). Além disso, a classe deve conter no mínimo três métodos públicos denominados:[/size]
[u][color=green]- O método público “getNumeroOculto” deve retornar o valor do atributo “numeroOculto” da referida classe.
- O método público “getNumeroOriginal” deve retornar o valor decriptografado do atributo “numeroOculto” da
referida classe. - O método público “setNumeroOculto” deve criptografar o número recebido como parâmetro e armazená-lo no
atributo “numeroOculto” da referida classe. Lembre-se de válidar se o número possui exatos 4 digitos antes de
criptografá-lo e posteriormente armazená-lo.[/color][/u]
[color=#444444]Como sugestão, no intuito de organizar o seu código e facilitar sua implementação, escreva no mínimo dois métodos
privados chamados “criptografa” e “decriptografa”.[/color]
[u][color=green]- O método privado “criptografa” deverá critografar o número recebido com parâmetro conforme DICA1,
retornando o número criptografado.
- O método privado “decriptografa” deverá decriptografar o número armazenado “numeroOculto” e retornar o
valor decriptografado conforme DICA 2.[/color][/u]
[size=18]Questão 2[/size]
A segunda classe deverá chamar “CriptoTest” e deverá conter o método “main”
bem como a instanciação de no mínimo dois objetos do tipo “Cripto”(classe do item anterior).
Além disso, a classe “CriptoTest” deverá fazer uso de todos os métodos públicos da classe
“Cripto” através de seus objetos presentes. A classe “CriptoTest”, também deverá interagir
com o usuário utilizando-se a classe “Scanner” ou a classe “JOptionPane” para coletar e/ou
exibir qualquer tipo de informação para o usuário.
Lembre-se que apenas esta classe, “CriptoTest” pode fazer uso de outras classes que permitam
a interação do aplicativo com o usuário.
[size=18]DICA1:[/size]
Cada digito informado chamaremos de “di” e seu correspondente criptografado
chamaremos de “dc”. Seu aplicativo deve ler um inteiro de quatro dígitos
inserido pelo usuário e criptografá-lo da seguinte maneira: substitua cada
digito informado ( di ) pelo resultado da adição de 6 ao digito e obtenha o
resto da divisão do novo valor por 10. Ou seja, dc = ((di + 6 ) % 10). De posse
do resto ( dc ), troque então o primeiro digito com o terceiro digito e o
segundo digito com o quarto digito. O resultado final será o número
criptografado.
Por exemplo, se o usuário digitar o numero “1234” o resultado parcial do
processo de criptografia - apenas usando a formula dc = ((di + 6 ) % 10) - será
“7890”. Após isso basta trocar os digitos de lugar, ou seja, o numero
criptografado deverá ser “9078”
[size=18]DICA2:[/size]
Para decriptografar os digitos criptogrfados acima basta usar a seguinte
fórmula: di = ((dc + 4 ) % 10).