Boa tarde.
Estou tentando implementar um programinha em java que é pra fazer o seguinte:
1- O Usuario escolhe quantas pilhas ira usar;
2- Depois digita uma frase para ser criptografada.
3- Depois o programa mostra essa frase criptografada ou seja "invertida" usando a quantidade de pilhas escolhidas no começo do programa
A pilha eu ja consegui fazer pra inverter a frase, só não estou conseguindo implementar a quantidade de pilhas pra serem usadas,
se poderem me dar uma forsinha eu agradeço.
Segue abaixo o programa implementado faltando apenas implementar o numero de pilhas a serem usadas
São tres classes:class Pilha {
private int TamMax;
private char[] VetorPilha;
private int topo;
//--------------------------------------------------------------
public Pilha(int maximo) // constructor
{
TamMax = maximo;
VetorPilha = new char[TamMax];
topo = -1;
}
//--------------------------------------------------------------
public void empilha(char p) // Coloca o item do topo da pilha
{
VetorPilha[++topo] = p;
}
//--------------------------------------------------------------
public char desempilha() // Retira o item do topo da pilha
{
return VetorPilha[topo--];
}
//--------------------------------------------------------------
public char verificaTopo() // Verifica o topo da pilha
{
return VetorPilha[topo];
}
//--------------------------------------------------------------
public boolean vazia() // Retorna verdadeiro ou falso
{ // se a pilha estiver vazia
return (topo == -1);
}
//--------------------------------------------------------------
} // Fim da classe Pilha
////////////////////////////////////////////////////////////////
class Reversora {
private String entrada; // entrada da string
private String saida; // saida da string
//--------------------------------------------------------------
public Reversora(String carac) // contrutor para classe onde acontecerá a criptografia
{
entrada = carac;
}
//--------------------------------------------------------------
public String Reversor() // reverse the string
{
int TamPilha = entrada.length(); // get max stack size
Pilha PilhaAux = new Pilha(TamPilha); // make stack
for (int p = 0; p < entrada.length(); p++) {
char ch = entrada.charAt(p); // get a char from input
PilhaAux.empilha(ch); // push it
}
saida = " ";
while (!PilhaAux.vazia()) {
char ch = PilhaAux.desempilha(); // pop a char,
saida = saida + ch; // append to output
}
return saida;
} // fim do método Reversor ()
//--------------------------------------------------------------
} // fim class Reversora
////////////////////////////////////////////////////////////////
import javax.swing.JOptionPane;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Cleber
*/
class ProgReversor {
public static void main(String[] args) {
String entrada, saida;
while (true) {
entrada = JOptionPane.showInputDialog("Digite uma Frase para ser Criptografada: \n"
+ "Ou pressione 'ENTER' para sair");
if (entrada.equals("")) // quit if [Enter]
break;
Reversora CaracInvertido = new Reversora(entrada);
saida = CaracInvertido.Reversor(); // use it
JOptionPane.showMessageDialog(null, "Frase a ser Criptografada: " + entrada
+ "\nFrase Criptografada:" + saida);
} // fim while
//--------------------------------------------------------------
} // fim main()
}// fim class ProgReversor
////////////////////////////////////////////////////////////////
Só falta implementar o numero de pilhas a ser usadas, agradeço desde ja se puderem me ajudar.
Por Exemplo:
Eu quero usar 3 Pilhas para Criptografar a Frase: Mamae eu te amo muito
Frase criptografada: ito muam ote euae amM
Mais ou menos assim.
Agradeço desde ja.