martes, 29 de abril de 2014

Calculadora en Java

Hola!! 
Viendo un poco de métodos, aprenderemos a realizar una calculadora estándar en Netbeans.
Solo como en base al principio veremos el gráfico de la calculadora.


Realizaremos esta calculadora estándar, también veremos un poco de métodos.

COMENCEMOS:

Primer paso: Introducir los números:
Como vemos en la imagen, se realizara el codigo en el evento actionPerformed del botón.

Para el botón 1:


private void btnUnoActionPerformed(java.awt.event.ActionEvent evt) { 

     jtxtPantalla.setText(jtxtPantalla.getText( ) + "1");

}


Para el botón 2 se hace el mismo código, tan solo se cambia el número 1 por el 2, así se irá cambiando según del número que se ingresará por el botón.

Luego de terminar de programar cada botón numérico:

Declaramos las variables globales, las cuales utilizaremos mediante todo el proceso.
//Variables globales
             String valor1;
             String valor2;
             String signo;


Al realizar una suma de 2 números, se dese saber el primer número, este primer número se almacenará en 'valor1', el signo de suma se almacenará en 'signo' y el segundo número para completar la suma se almacenará en 'valor2'.

Luego crearemos el método calculando, en donde se procederá a realizar el proceso del cálculo de los valores ingresados.

//Metodo que realiza el proceso de la calculadora, segun los valores que se ingrese por pantalla.


public static String calculando(String valor1, String valor2, String signo)

{

     Double resul=0.0;

     String rpt;



     if(signo.equals("-"))

      {

         resul=Double.parseDouble(valor1) - Double.parseDouble(valor2); 

       } 



     if(signo.equals("+"))

      {

         resul=Double.parseDouble(valor1) + Double.parseDouble(valor2);

      }



      if(signo.equals("*"))

        {

           resul=Double.parseDouble(valor1) * Double.parseDouble(valor2);

        }


       if(signo.equals("/"))

        {                 resul=Double.parseDouble(valor1) / Double.parseDouble(valor2);

        }

        

        rpt=resul.toString();

        return rpt;

    }



Como vemos en el código, al igual que las variables globales 'valor1' , 'valor2' , 'signo' son de tipo String , ¿porqué?,  por que al ingresar un valor a la caja de texto 'jtxtPantalla' este se almacena como cadena, es decir tipo String y ese es el resultado que se quiere mostrar al fnal, una repsuesta tipo String. Es por eso que en cada proceso de suma, resta, multiplicación, división, se hace la conversión a  Double (décimal mayor).
Claro antes de realizar el proceso el signo es comparado y así pueda realizar su función.

Ahora veremos en código del botón suma (+):




/* Captura lo que hay en pantalla y dice si lo que hay en pantalla es diferente al vacio (" "), entonces el 'valor1' tendrá almacenado a lo que se haya ingresado en pantalla. Luego le da el valor al signo, que en este caso es de suma (+) y limpia pantalla, para que se ingrese el 'valor2' */

 private void btnMasActionPerformed(java.awt.event.ActionEvent evt) {                                       

if(!jtxtPantalla.getText().equals(""))

  {

     valor1=jtxtPantalla.getText();

     signo="+";

     jtxtPantalla.setText("");

 }

}

El mismo código se utiliza para la resta, multiplicación, división, solo se cambia el valor del signo.

* Si queremos ingresar un valor decimal, como '3.5', entonces el código es el siguiente:

/*Metodo de tipo boolean (recibe solo valores de verdad o falsedad ) para ver si existe un punto en pantalla */
/*declara una variable respuesta 'rpt=false' luego se crea un for para que vaya recorriendo todos los digitos de la variable pantalla que tendra como valor a lo que se ingrese por pantalla, en ese recorrido ira comparando si hay algún punto, en caso que asi sea, mandara como respuesta 'true', en caso contrario se quedara como al principio, con el valor 'false' */

public boolean hayPunto(String pantalla)

{

     boolean rpt;

     rpt=false;



    for(int i=0; i<pantalla.length(); i++)

     {

        if(pantalla.substring(i, i+1).equals("."))

     {
   rpt=true;

   break;

  }



  }return rpt;



}


En el botón punto:
/*Guardara en la variable pantalla de tipo String lo que se ingrese. Luego verifica si no hay elemento en pantalla, si es asi entonces le dará un valor de '0.'
En caso no hay ningun elemento concatenara un '.' a la cadena. Luego se mostrara en pantalla*/

private void btnPuntoActionPerformed(java.awt.event.ActionEvent evt) {                                         
     //mostrara un 0. cuando no haya nada en la caja de texto

     String pantalla;

     pantalla=jtxtPantalla.getText();



     if(pantalla.length()<=0)

      {

         jtxtPantalla.setText("o.");

       }


      else if(!hayPunto(jtxtPantalla.getText()))

      {

          jtxtPantalla.setText(jtxtPantalla.getText() + ".");

      }

}


En el botón 'C' : Este botón elimina de uno en uno los dígitos que hay en pantalla.

    /*Captura los valores de pantalla. Procede a verificar si hay algun elemento en pantalla, si es así (si hay algun digito) entonces la variable de tipo String 'pantalla ' la examina mediante la cantidad de dígitos, si la cantidad de digitos es 5, entonces le restara 1 y se quedara con 4*/
   
private void btnCActionPerformed(java.awt.event.ActionEvent evt) {                                    



     String pantalla; 



     pantalla=jtxtPantalla.getText();

      

       if(pantalla.length()>0)

       {

          pantalla=pantalla.substring(0, pantalla.length()-1);

          jtxtPantalla.setText(pantalla);

       }

}


Botón 'CE' : Elimina todos los elementos que hay en pantalla, lo deja en blanco

private void btnCeActionPerformed(java.awt.event.ActionEvent evt) { 



         jtxtPantalla.setText(" ");



}
  

Botón signo: Dará un valor positivo o negativo a los elementos en pantalla.


/*A la varible de tipo decimal 'num' le da el valor de (-1)  multiplicado por   el valor decimal de pantalla. Luego, como 'num es de tipo decimal y para mostrarlo tiene que ser de tipo cadena, entonces se convierte a cadena con 'ToString''*/

private void btnSignoActionPerformed(java.awt.event.ActionEvent evt) {                                         



     Double num;

     String pantalla;



     pantalla=jtxtPantalla.getText();


       if(pantalla.length()>0)

          {

              num=-1*Double.parseDouble(pantalla);

              jtxtPantalla.setText(num.toString());

           }

}



Nota: Acá les dejo el proyecto de la calculadora en Netbeasn IDE 7.4



calculadora

5 comentarios:

  1. Muchas gracias de verdad funciona!!!

    ResponderEliminar
  2. hola amigo un favor me puedes ayudar a hacer una calculadora en consola en netbeans pero la suma resta multiplicación y división en base 2,3,4,5,6,7,8,9 ejemplo 1212 en base 3 + 1212 en base 3 los dos sumar la base puede ser cualquiera 2 a 9 por favor me lo puedes hacer te pago

    ResponderEliminar
  3. un favor amigo me lo pude hacer necesito urgente le pago ejemplo de 2345 en base 6 + 3453 en base 6 el resultado tiene que ser en base 6 también lo mismo en la resta multiplicación y división por favor en el lenguaje de java (netbeans)

    ResponderEliminar
  4. no me funcion sumar restar ni dividir luego los otros si

    ResponderEliminar
  5. ademas que no tiene codigo en su es igual=

    ResponderEliminar