Problema de if em calculadora

1 resposta
E

então pessoal estou fazendo uma calculadora em java, está quase pronta, só falta a parte final

package relembrar;


import java.awt.*;
    import java.awt.event.*;
      import java.math.*;
    import javax.swing.*;
    import javax.swing.event.*;
    
    public class Relembrar extends JFrame implements ActionListener {
       
       private Container      cont;
       
       private JTextField       txtValor1;
       private JTextField       txtValor2;
       
         
       private ButtonGroup    grupo;
       private JRadioButton    btMais;
       private JRadioButton    btMenos;
       private JRadioButton    btDiv;
       private JRadioButton    btMult;
        private JRadioButton    btpot;
        private JRadioButton    btrad;
        private JRadioButton    btsen;
        private JRadioButton    btcos;
        private JRadioButton    bttan;
        private JRadioButton    btx;

       
       private JButton       btResult;
       private JButton         btSair;
          
       
       private JPanel          panelCentro;
       private JPanel         panelDir;
       private JPanel         panelSul;
       
       private char         op;
       private char         arm;
        private char         arm1;
       
       public static void main(String args[]) {
          
         new Relembrar();
       }
       
       public Relembrar() {
          
          super ("Calculadora");
          
          cont          = getContentPane();
          cont.setLayout(new BorderLayout());
          
          panelCentro      = new JPanel(new GridLayout(2,2,5,5));
          panelDir      = new JPanel(new GridLayout(4,1));
          panelSul      = new JPanel(new GridLayout(1,2));
          
          btResult      = new JButton("Resultado");
          btSair         = new JButton("Sair");
        
          
          grupo         = new ButtonGroup();
          btMais         = new JRadioButton("Adição",true);
          btMenos         = new JRadioButton("Subtração",false);
          btDiv         = new JRadioButton("Divisão",false);
          btMult         = new JRadioButton("Multiplicação",false);
          btpot         = new JRadioButton("potenciação",false);
          btrad         = new JRadioButton("radiciação",false);
          btsen         = new JRadioButton("seno",false);
           btcos         = new JRadioButton("cosseno",false);
           bttan         = new JRadioButton("tangente",false);
           btx         = new JRadioButton("m+",false);
        
       
             
          txtValor1      = new JTextField();
          txtValor2      = new JTextField();
        
          
          grupo.add(btMais);
          grupo.add(btMenos);
          grupo.add(btDiv);
          grupo.add(btMult);
          grupo.add(btpot);
           grupo.add(btrad);
           grupo.add(btsen);
             grupo.add(btcos);
              grupo.add(bttan);
              grupo.add(btx);
        
          
          panelCentro.add(new JLabel("Valor 1: "));
          panelCentro.add(txtValor1);
          panelCentro.add(new JLabel("Valor 2: "));
          panelCentro.add(txtValor2);
      
          
          panelDir.add(btMais);
          panelDir.add(btMenos);
          panelDir.add(btDiv);
          panelDir.add(btMult);
          panelDir.add(btpot);
          panelDir.add(btrad);
          panelDir.add(btsen);
           panelDir.add(btcos);
           panelDir.add(bttan);
           panelDir.add(btx);
       
          
          panelSul.add(btResult);
          panelSul.add(btSair);
         
          
          btResult.addActionListener(this);
          btSair.addActionListener(this);
       
          btMais.addActionListener(this);
          btMenos.addActionListener(this);
          btDiv.addActionListener(this);
          btMult.addActionListener(this);
          btpot.addActionListener(this);
          btrad.addActionListener(this);
          btsen.addActionListener(this);
           btcos.addActionListener(this);
             bttan.addActionListener(this);
              btx.addActionListener(this);
      
          cont.add(new JLabel("Calculadora"), BorderLayout.NORTH);
          cont.add(panelCentro, BorderLayout.CENTER);
          cont.add(panelSul, BorderLayout.SOUTH);
          cont.add(panelDir, BorderLayout.EAST);
          
          setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
          setSize(640,140);
          setVisible(true);
       }
        
         
     
       public void actionPerformed(ActionEvent e) {
          
               if (e.getSource() == btResult)    calcula();
          else if (e.getSource() == btSair)       System.exit(0);
         
          else if (e.getSource() == btMais)       op = '+';
          else if (e.getSource() == btMenos)       op = '-';
          else if (e.getSource() == btDiv)       op = '/';
          else if (e.getSource() == btMult)       op = '*';
          else if (e.getSource() == btpot)       op = '^';
          else if (e.getSource() == btrad)       op = 'v';
          else if (e.getSource() == btsen)       op = 's';
        
          else if (e.getSource() == btcos)       op = 'c';
               else if (e.getSource() == bttan)       op = 't';
                else if   (e.getSource() == btx)     arm='x'   ;
            
       }
 
       
     
       public void calcula() {
          
          try {
             
             Double v1  = new Double(txtValor1.getText().trim());
             Double v2 = new Double(txtValor2.getText().trim());
          
          
             double resultado;
           double armazena = 0;
       
            armazena=armazena- v2.doubleValue();
           
             switch (op) {
                   

                case '+': { resultado = v1.doubleValue() + v2.doubleValue(); break; }
                case '-': { resultado = v1.doubleValue() - v2.doubleValue(); break; }
                case '/': { resultado = v1.doubleValue() / v2.doubleValue(); break; }
                case '*': { resultado = v1.doubleValue() * v2.doubleValue(); break; }
                case '^': { resultado = Math.pow(v1,v2) ; break; }
                case 'v': { resultado = Math.pow(v1,1/v2) ; break; }
                case 's': { resultado =  (Math.PI/180) * v1;
                resultado = Math.sin(resultado); resultado = ( Math.round( (resultado * 100000.0) ) ) / 100000.0; break; }
                case 'c': { resultado  = (Math.PI/180) * v1;
                resultado = Math.cos(resultado);  resultado = ( Math.round( (resultado * 100000.0) ) ) / 100000.0; break; }
                case 't': {resultado = (Math.PI/180) * v1;
                resultado= Math.tan(resultado);  resultado = ( Math.round( (resultado * 100000.0) ) ) / 100000.0; break; }
          
          
                default:{ resultado = 0; break; }
           
            
             }
           
             armazena = resultado;
             switch (arm)  
             
             {
                
            
            case 'x': { resultado= armazena + v2.doubleValue() ; break; }
          
               
             } 
             
    // if(armazena == resultado){<<<o que colocar aqui?
             JOptionPane.showMessageDialog(null, new Double(resultado).toString());
    // }else if(armazena > resultado){   <<<< e aqui?
        JOptionPane.showMessageDialog(null, new Double(armazena).toString());
    // }  
     
     }
            
          catch (Exception e) {
             JOptionPane.showMessageDialog(null, "Verifique os números digitados.");
          }
      
       }
    }

o meu problema é o seguinte , quando clico no botao m+ da calculadora o objetivo dele é pegar o que está em resultado e somar com o valor 2, até ai tudo bem, mas qdo volto e quero fazer uma simples adicao, ele continua com esse mesmo processo do m+, entao consegui resolver esse problema parcialmente colocando outra caixa de texto que mostra o valor de “armazena”, entao minha pergunta é a seguinte como faço um if para mostrar o resultado qdo clico em algumas das operacoes, e um outro if para mostrar o armazena qdo clico em m+

agradeço desde já

1 Resposta

E

então pessoal consegui resolver o meu problema de um jeito meio “porco” mas para o que eu preciso tá valendo,
então vou deixar o codigo aqui para outro usuarios novatos poderem usar e tambem para os usuarios + experientes darem umas dicas de como melhorá-lo

package relembrar;


import java.awt.*;
    import java.awt.event.*;
      import java.math.*;
    import javax.swing.*;
    import javax.swing.event.*;
    
    public class Relembrar extends JFrame implements ActionListener {
       
       private Container      cont;
       
       private JTextField       txtValor1;
       private JTextField       txtValor2;
       
         
       private ButtonGroup    grupo;
       private JRadioButton    btMais;
       private JRadioButton    btMenos;
       private JRadioButton    btDiv;
       private JRadioButton    btMult;
        private JRadioButton    btpot;
        private JRadioButton    btrad;
        private JRadioButton    btsen;
        private JRadioButton    btcos;
        private JRadioButton    bttan;
        private JRadioButton    btx;

       
       private JButton       btResult;
       private JButton         btSair;
          
       
       private JPanel          panelCentro;
       private JPanel         panelDir;
       private JPanel         panelSul;
       
       private char         op;
       private char         arm;
        private char         arm1;
       
       public static void main(String args[]) {
          
         new Relembrar();
       }
       
       public Relembrar() {
          
          super ("Calculadora");
          
          cont          = getContentPane();
          cont.setLayout(new BorderLayout());
          
          panelCentro      = new JPanel(new GridLayout(2,2,5,5));
          panelDir      = new JPanel(new GridLayout(4,1));
          panelSul      = new JPanel(new GridLayout(1,2));
          
          btResult      = new JButton("Resultado");
          btSair         = new JButton("Sair");
        
          
          grupo         = new ButtonGroup();
          btMais         = new JRadioButton("Adição",false);
          btMenos         = new JRadioButton("Subtração",false);
          btDiv         = new JRadioButton("Divisão",false);
          btMult         = new JRadioButton("Multiplicação",false);
          btpot         = new JRadioButton("potenciação",false);
          btrad         = new JRadioButton("radiciação",false);
          btsen         = new JRadioButton("seno",false);
           btcos         = new JRadioButton("cosseno",false);
           bttan         = new JRadioButton("tangente",false);
           btx         = new JRadioButton("m+",false);
        
       
             
          txtValor1      = new JTextField();
          txtValor2      = new JTextField();
        
          
          grupo.add(btMais);
          grupo.add(btMenos);
          grupo.add(btDiv);
          grupo.add(btMult);
          grupo.add(btpot);
           grupo.add(btrad);
           grupo.add(btsen);
             grupo.add(btcos);
              grupo.add(bttan);
              grupo.add(btx);
        
          
          panelCentro.add(new JLabel("Valor 1: "));
          panelCentro.add(txtValor1);
          panelCentro.add(new JLabel("Valor 2: "));
          panelCentro.add(txtValor2);
      
          
          panelDir.add(btMais);
          panelDir.add(btMenos);
          panelDir.add(btDiv);
          panelDir.add(btMult);
          panelDir.add(btpot);
          panelDir.add(btrad);
          panelDir.add(btsen);
           panelDir.add(btcos);
           panelDir.add(bttan);
           panelDir.add(btx);
       
          
          panelSul.add(btResult);
          panelSul.add(btSair);
         
          
          btResult.addActionListener(this);
          btSair.addActionListener(this);
       
          btMais.addActionListener(this);
          btMenos.addActionListener(this);
          btDiv.addActionListener(this);
          btMult.addActionListener(this);
          btpot.addActionListener(this);
          btrad.addActionListener(this);
          btsen.addActionListener(this);
           btcos.addActionListener(this);
             bttan.addActionListener(this);
              btx.addActionListener(this);
      
          cont.add(new JLabel("Calculadora"), BorderLayout.NORTH);
          cont.add(panelCentro, BorderLayout.CENTER);
          cont.add(panelSul, BorderLayout.SOUTH);
          cont.add(panelDir, BorderLayout.EAST);
          
          setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
          setSize(640,140);
          setVisible(true);
       }
        
         
     
       public void actionPerformed(ActionEvent e) {
          
               if (e.getSource() == btResult)    calcula();
          else if (e.getSource() == btSair)       System.exit(0);
         
          else if (e.getSource() == btMais)       op = '+';
          else if (e.getSource() == btMenos)       op = '-';
          else if (e.getSource() == btDiv)       op = '/';
          else if (e.getSource() == btMult)       op = '*';
          else if (e.getSource() == btpot)       op = '^';
          else if (e.getSource() == btrad)       op = 'v';
          else if (e.getSource() == btsen)       op = 's';
        
          else if (e.getSource() == btcos)       op = 'c';
               else if (e.getSource() == bttan)       op = 't';
                else if   (e.getSource() == btx)     arm='x'   ;
            
       }
 
       
     
       public void calcula() {
          
          try {
             
             Double v1  = new Double(txtValor1.getText().trim());
             Double v2 = new Double(txtValor2.getText().trim());
          
          
             double resultado;
           double armazena;
        double calculo = 0;
           double i=0x0;
          double g;
            g=arm;
             switch (op) {
                   

                case '+': { resultado = v1.doubleValue() + v2.doubleValue(); break; }
                case '-': { resultado = v1.doubleValue() - v2.doubleValue(); break; }
                case '/': { resultado = v1.doubleValue() / v2.doubleValue(); break; }
                case '*': { resultado = v1.doubleValue() * v2.doubleValue(); break; }
                case '^': { resultado = Math.pow(v1,v2) ; break; }
                case 'v': { resultado = Math.pow(v1,1/v2) ; break; }
                case 's': { resultado =  (Math.PI/180) * v1;
                resultado = Math.sin(resultado); resultado = ( Math.round( (resultado * 100000.0) ) ) / 100000.0; break; }
                case 'c': { resultado  = (Math.PI/180) * v1;
                resultado = Math.cos(resultado);  resultado = ( Math.round( (resultado * 100000.0) ) ) / 100000.0; break; }
                case 't': {resultado = (Math.PI/180) * v1;
                resultado= Math.tan(resultado);  resultado = ( Math.round( (resultado * 100000.0) ) ) / 100000.0; break; }
          
          
                default:{ resultado = 0; break; }
           
            
             }
           
             armazena = resultado;
             switch (arm)  
             
             {
                
            
            case 'x': { calculo= armazena + v2.doubleValue() ; break; }
          
               
             }            

      //   if(calculo <= armazena){
             JOptionPane.showMessageDialog(null," para calculos com operadores considere essa resposta"+new Double(resultado).toString());
  //  }else {
       JOptionPane.showMessageDialog(null," para calculos com memoria considere essa resposta"+ new Double(calculo).toString());
 // }      
            
    }
            
          catch (Exception e) {
             JOptionPane.showMessageDialog(null, "Verifique os números digitados.");
          }
      
       }
    }
Criado 25 de novembro de 2011
Ultima resposta 25 de nov. de 2011
Respostas 1
Participantes 1