Calculadora

6 respostas
E

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);
	}
	
}

6 Respostas

fmeyer

Por favor, antes de perguntar, leia este topico: http://www.guj.com.br/posts/list/15477.java

use as tags [ code] [ /code] para formatar melhor seu codigo

E

caro scoty,

ok. fiz o que voce sugeriu. Voce pode ajudar? Senão, continuo aguardando a ajuda dos demais colegas que sempre tem colaborado principalmente comigo.

Obrigado,

Edinho

cv1

Cara, ainda fugindo da questao, mas vc violou algumas convencoes de programacao comumente usadas no Java. De uma olhada nesse guia:

http://java.sun.com/docs/codeconv/

E

CAros colegas,

Desculpem-me a ignorancia se for o caso, mas qual é o problema que está acontecendo? ainda sou novo aqui no forum e ja estou ficando preocvupado em fazer parte do mesmo pois acho que é normal ter estas dúvidas. Como eu disse, talvez vendo o rpblema eu consiga me situar melhor, me ajudem a entender… Agora estou com amis problemas alem do Java?

grato,

Edinho

Z

Você disse que o código está rodando beleza e só queria algumas sugestões para melhorar a apresentação. Apareceu alguma dúvida que você esqueceu de dizer? :wink:

E

Prezado colega,

Não seria bem uma dúvida, seria o seguinte: mostrar o que eu estou mostrando neste programa, quando a gente vai ver o resultado, uma interface diferente, como por exemplo Um textarea, emfim acho que pode ficar mais apresentada. Como eu ainda estou aprendendo, estou curioso para saber isso pois aqui não tenho curos de java onde possa aprender isso. Procuro ajuda aqui no forum pois sei que aqui tem muita gente boa, experiente e que estão mesmo dispostas a ajudarem. Eu também estou e mais tarde, quando eu tiver o que oferecer e mais conhecido do forum, com certeza vou poder ajudar muita gente também, assim como muitas pessoas aqui do forum tem feito.

Obrigado,

Edinho

Criado 25 de junho de 2005
Ultima resposta 26 de jun. de 2005
Respostas 6
Participantes 4