Calculadora...!

1 resposta
E

Bem começei a fazer esse prog mais estou com alguns problemas…
sempre que eu escolho o operador da divisão me vem uma messagem
NaN gostaria de saber o que é isso…! vo deixar meu código logo abaixo para que vcs possam verificar…!
Classe main

import javax.swing.*;

public class Calculadora
{
	public static void main(String args[])
	{
		boolean chave=false;
		int cont=0,i;
		CalculadoraP chama= new CalculadoraP();
		double num,num2=0,soma=0,soma2=0,soma3=0;
		String op=null;
		double vet[]= new double [2];
		double vet2[]= new double[2];
	
	
		while(!chama.cheia())
		{
			
		    
		    if(chama.vazia())
		    {
		    	
			   JOptionPane.showMessageDialog(null,"Pilha vazia","ATENÇÂO",JOptionPane.ERROR_MESSAGE);
		       cont=0;
		      
		    }
		    cont++;
		    num=Double.parseDouble(JOptionPane.showInputDialog("Dígite o número"));
		    chama.empilhar(num);
		  
		  	
		  //*************************
		  if(cont>=2)
		  {
		 
		   do
		   {
		   
		  	  num2=Double.parseDouble(JOptionPane.showInputDialog(null,"Dígite 1 para Somar\nDígite 2 para Subtrair\nDígite 3 para Multiplicar\nDígite 4 para Dividir\nDígite 5 continuar a dígitar sem usar os operadores","Atençao no opção 5",JOptionPane.WARNING_MESSAGE));
		  	  if(num2==5)
		  	  {
		  	  	chave=true;
		  	  }
		   }
		   while(num2!=1&&num2!=2&&num2!=3&&num2!=4&&chave!=true);
		  
		   
		  }
		  if(!chama.vazia())
		  {
		  
		  			//**************************
		  			if(num2==1)
		  			{
		  	   			for(i=0;i<2;i++)
		  	   			{	
		  	   	  			soma+=chama.desempilhar();
		  	   	   			if(i==1)
		  		   			System.out.println(soma);
		  	   			}  
		  			}
		  			//****************************
		    
		    		if(num2==2)
		    		{
		  	    		for(i=0;i<2;i++)
		  	    	 	{
		  	   	     	vet[i]=chama.desempilhar();
		  	   	     	
		  	     	 	}
		  	     	 	for(i=0;i<2;i++)
		  	     	 	{
		  	     	       soma1=vet[0]-vet[1];
		  	     	       if(i==1) 
		  	     	       System.out.println(soma1);

		  	     	      }
		  	     	   
		  	  		}
		  	   
		  	
		    		//****************************
		     		if(num2==3)
		     		{
		  	   				for(i=0;i<2;i++)
		  	   				{
		  	   	  				soma*=chama.desempilhar();
		  	   	   				if(i==1)
		  		   				System.out.println(soma);
		  	   				}
		  			}
		 			 //****************************
		 			if(num2==4)
		  			{
		  	   			for(i=0;i<2;i++)
		  	   			{
		  	   	 			vet2[i]=chama.desempilhar();
		  	   			}
		  	   			soma3=vet[0]/vet[1];
		  	   			System.out.println(soma3);
		  			}
		  
           }
           
		}

		
		
	}
}

Classe pilha

public class CalculadoraP
{
	
	public double vet[] = new double[10]; 
	public int topo=0;  
	
	public boolean cheia()
	{
		return(topo == vet.length);
		
	}
	
	public boolean vazia()
	{
		return(topo ==0);
		
	}
	
	public void empilhar(double x)
	{
		vet[topo] = x;
		topo++;
	}
	
	public double desempilhar()
	{
		topo--;
		return(vet[topo]);
	}
}

1 Resposta

F

O Eddy,
no site do
JairElton tem uma calculadora em java.
Baixa lá, deve te ajudar.
Abração.

Criado 27 de agosto de 2006
Ultima resposta 29 de ago. de 2006
Respostas 1
Participantes 2