Caro colega,
Até então tudo tem sido ótimo, já consegui aprender e fazer muita coisa com a ajuda de voces, agradeço muito por esta oportunidade e disposição de ajuda de voces para com o fórum. Na oportunidade, gostaria de mais uma ajudinha: Consegui fazer o programa da calculadora do meu jeito. Está funcionando. Eu gostaria de faze-lo mais apresentado, o que voces me sugeririam ou alterariam para ele ter uma melhor interface ou uma melhor apresentação? São 3 arquivos. No programa estou utilizando pilha e fila. O código segue abaixo:
Atenciosamente,
Edson
//--------------------------------------------------------
Calculadora.java
//--------------------------------------------------------
import javax.swing.*;
public class Calculadora
{
public static void main(String args[])
{
JTextArea st = new JTextArea();
int NumDigitado, i, NumDesempilhado;
String Opera;
String Final;
double Total;
NumDesempilhado = 0;
NumDigitado = 0;
Total = 0;
Opera = " "; // Operador
Final = " ";
Pilha Numero = new Pilha();
Fila Operador = new Fila();
for (i = 0; i < 5; i++)
{
NumDigitado = Integer.parseInt(JOptionPane.showInputDialog("Digite o " + (i + 1) + "º Número:"));
Numero.empilha(NumDigitado);
Opera = JOptionPane.showInputDialog("Digite o "+ (i + 1) +"º operador:");
Operador.enfilera(Opera);
}
for (i = 0; i < 5; i++)
{
NumDesempilhado = Numero.desempilha();
if (Total > 0)
{
if (Opera.equals("/"))
Total = Total / NumDesempilhado;
else if (Opera.equals("*"))
Total = Total * NumDesempilhado;
else if (Opera.equals("+"))
Total = Total + NumDesempilhado;
else if (Opera.equals("-"))
Total = Total - NumDesempilhado;
}
else
{
Total = NumDesempilhado;
}
Opera = Operador.desenfilera();
Final = Final + NumDesempilhado +" " + Opera +"\n";
}
Final = Final + "........."+"\n" + Total;
JOptionPane.showMessageDialog(null, Final);
System.exit(0);
}
}
//------------------------------------------------------------------------------------
Pilha.java
//------------------------------------------------------------------------------------
public class Pilha {
public int vet[];
public int topo;
public Pilha() {
vet = new int[5];
topo = 0;
}
public boolean vazia(){
return(topo == 0);
}
public boolean cheia(){
return(topo == 5);
}
public void empilha(int x){
if(!cheia()){
vet[topo] = x;
topo++;
}
else{
System.out.println("Estouro de pilha");
}
}
public int desempilha(){
if(!vazia()){
topo--;
}
else{
System.out.println("Pilha vazia");
}
return(vet[topo]);
}
}
//------------------------------------------------------------------------
Aqui o Fila.java
//------------------------------------------------------------------------
public class Fila {
public String vet[],pri;
public int topo;
public Fila() {
vet = new String[5];
topo = 0;
}
public boolean vazia(){
return(topo == 0);
}
public boolean cheia(){
return(topo == 5);
}
public void enfilera(String x){
if(!cheia())
{
vet[topo] = x;
topo++;
}
else{
System.out.println("Estouro de pilha!...");
}
}
public String desenfilera(){
if(!vazia())
{
topo--;
pri = vet[0];
for (int i=0; i<topo; i++)
{
vet[i] = vet[i+1];
}
}
else{
System.out.println("Pilha vazia!...");
}
return(pri);
}
}
