viernes, 26 de septiembre de 2014

Calculadora (Usando Poo)

Hace rato que no me paro por el blog ahora les pondre el codigo de una calculadora usando herencia, encapsulamiento, polimorfismo etc, espero les sea de ayuda para aquellos que lo necesitan :)

--------------------------------------------------------------------------------------------------
package calculadord;
/** * * @author Abimael */
public class CalculadorD {

  private float numA,numB;
  private float R;
  private char Operacion;
      
  public CalculadorD (){//constructor
      this.numA = 0;
      this.numB = 0;
      this.R = 0;
      this.Operacion = ' ';
  }

    public float getNumA() {//SetsandGets
        return numA;
    }

    public void setNumA(float numA) {
        this.numA = numA;
    }

    public float getNumB() {
        return numB;
    }

    public void setNumB(float numB) {
        this.numB = numB;
    }

    public float getR() {
        return R;
    }

    public void setR(float R) {
        this.R = R;
    }

    public char getOperacion() {
        return Operacion;
    }

    public void setOperacion(char Operacion) {
        this.Operacion = Operacion;
    }
 
  }
----------------------------------------------------------------------------------
--------------------Metodos Calculadora Basica--------------
package calculadord;

/**
 *
 * @author Abimael
 */
public class CalculadoraBasica extends CalculadorD{

   
public static float sumar(float numA, float numB){
return  numA + numB; 
}

public static float resta(float numA, float numB){
return numA - numB; 
}



public static float multiplicar(float numA, float numB){
return numA * numB; 
}

   ---------------------------------------------------------------------------
--------------Metodos Calculadora Cientifica-------------- 
package calculadord;

/**
 *
 * @author Abimael
 */
public class Calculadoracientifica extends CalculadoraBasica {

    public static float raiz (float numA){
   float R = (float) Math.sqrt(numA);
   return R;
   
    }  
   public static float potencia (float numA, float numB){
    float R = (float)Math.pow(numA,numB);
    return R;
}
   public static float division(float numA, float numB){
return numA / numB; 
    }
}
-------------------------------------------------------------------------------
---------------------------------Main------------------------

public class Main  {
    
    private static CalculadorD obtenerdivision()throws ArithmeticException{
        Scanner Division = new Scanner(System.in);
        boolean Viri = true;
        boolean Suzie = true;
        CalculadorD Sion = new CalculadorD();
     do{
    try{    
        System.out.println("Ingresa Primer Operando");
        Sion.setNumA(Division.nextFloat());
        Viri=false;
     do{
    try{   
        System.out.println("Ingresa el Segundo:");
        Sion.setNumB(Division.nextFloat());
        Suzie=false;
        }catch(ArithmeticException Ari)
           {
             Division.nextLine();
             System.err.printf("Excepcion: %s", Ari);
             System.out.println("Cero es un denominador invalido intente de nuevo");
           }
         catch(InputMismatchException Armon)
         {
            Division.nextLine();
            System.out.println("Ingrese numero Correctamente: lol");
         }
   
       
          }while(Suzie);
        }catch(InputMismatchException Roman){
            Division.nextLine();
            System.out.println("Ingrese numero Correctamente");
        }
        }while(Viri);
      return Sion;
    }
    private static CalculadorD obtenerraiz()throws Exception{
     Scanner Chi = new Scanner(System.in);
     boolean Genjutsu = true;
     CalculadorD Ita = new CalculadorD();
 do{
   try
     {
     System.out.println("Ingresa Operando a sacar la raiz: ");
     Ita.setNumA(Chi.nextFloat());
     Genjutsu=false;
     }catch
         (InputMismatchException Kalel){
          Chi.nextLine();
         System.out.println("Ingrese operando valido... ");
     }
     }while(Genjutsu);     

     return Ita;
     }
     
     private static CalculadorD obtenerpotencia()throws Exception{
     Scanner Excel = new Scanner(System.in);
     boolean Vegeta = true;
     boolean Kakashi = true;   
     CalculadorD Ita = new CalculadorD();
 do{
    try{
     System.out.println("Ingresa el Número: ");
     Ita.setNumA(Excel.nextFloat());
     Vegeta=false;
 do{
    try{   
     System.out.println("Ingresa el Número de la potencia:  ");
     Ita.setNumB(Excel.nextFloat()); 
     Kakashi=false;
     }catch   (InputMismatchException Lorel){
     Excel.nextLine();
     System.out.println("Ingrese operando valido... ");
     }
     }while(Kakashi);
     }catch
     (InputMismatchException Lorel){
     Excel.nextLine();
     System.out.println("Ingrese operando valido... ");
     }
     }while(Vegeta);
     return Ita;
     }
     
private static CalculadorD obtenerDatos()throws ArithmeticException{
         
    Scanner Rocky = new Scanner(System.in);//Para leer datos
     boolean continuarCiclo = true;//
     boolean continuarCiclo2 = true;
     CalculadorD Sasuke = new CalculadorD();//CalculadorD 
   
     do{
     try{
    
     System.out.println("Ingresa el primer numero: ");
     Sasuke.setNumA(Rocky.nextFloat());
     continuarCiclo=false;
     
     do {
     try
         {
         System.out.println("Ingresa El segundo: ");
         Sasuke.setNumB(Rocky.nextFloat());
         continuarCiclo2=false; 
         }
         catch (InputMismatchException Mael)
         {
          Rocky.nextLine();
          System.out.println(
          "Debe introducir numeros. Intente de nuevo.");
         }   
   
     }while(continuarCiclo2);
         }        
         catch (InputMismatchException Abi)
         {
         Rocky.nextLine();
         System.out.println(
         "Debe introducir numeros. Intente de nuevo.");
         }
         }while(continuarCiclo);
         return Sasuke;
         }
  

    
     public static void main(String[] args){ 
            
        int Goku=0;
        while(Goku != 7){
      
        System.out.println("-----------------Que operacion desea realizar------------------------------");
        System.out.println("1. Suma:");
        System.out.println("2. Resta:");
        System.out.println("3. Multiplicacion:");
        System.out.println("4. Division:");
        System.out.println("5. Raiz:");
        System.out.println("6. Potencia:");
        System.out.println("7. Fin de operacion");
    
        System.out.println("Su eleccion:");
            
        CalculadorD Rocky;//Objeto
        Scanner Terminator = new Scanner (System.in);//lee las lineas que introduzcas 
        try{
        Goku = Terminator.nextInt();
       
   
       
     float R;
     switch(Goku){
      case 1:
     Rocky = obtenerDatos(); 
     R = CalculadoraBasica.sumar(Rocky.getNumA(), Rocky.getNumB()); 
     System.out.println("Resultado:");
     System.out.println(R);
     break;
   
      case 2:
     Rocky = obtenerDatos(); 
     R = CalculadoraBasica.resta(Rocky.getNumA(), Rocky.getNumB()); 
     System.out.println("Resultado:");
     System.out.println(R);
     break;
   
     case 3:
     Rocky = obtenerDatos(); 
     R = CalculadoraBasica.multiplicar(Rocky.getNumA(), Rocky.getNumB()); 
     System.out.println("Resultado:");
     System.out.println(R);
     break;
         
     case 4:
      boolean Larra=true; 
     
   do{ 
     Rocky = obtenerdivision(); 
     R = Calculadoracientifica.division(Rocky.getNumA(), Rocky.getNumB()); 
     if (Rocky.getNumB()  == 0)
      {
     System.out.println("Valor no valido");
      }
     else if (Rocky.getNumB() <= 1)
     {
     Larra=false;
     System.out.println("Resultado:");
     System.out.println(R);
     }
     }while(Larra);
     break;
        
     case 5:
     boolean Mon= true;
     do{
     Rocky = obtenerraiz();
     R = Calculadoracientifica.raiz(Rocky.getNumA());
     if (Rocky.getNumA()<=-1)
     {
     System.out.println("Error numeros negativos");   
     }
     else if (Rocky.getNumB() <= 1)
     {
     Mon=false;
     System.out.println("Resultado:");
     System.out.println(R);
     }
     }while(Mon);
     break;
         
     case 6:
     Rocky = obtenerpotencia(); 
     R = Calculadoracientifica.potencia(Rocky.getNumA(), Rocky.getNumB()); 
     System.out.println("Resultado: ");
     System.out.println(R);
     break;
         
     case 7:
     System.out.println("Adios...."); 
         
     break;
    
     default: 
     System.out.print("Eleccion incorrecta........intente nuevamente\n" );
  
     }
     }catch(Exception e)
     {
     System.out.print("Intente nuevamente....\n ");
     }
     }     
     }
     }
    
    

No hay comentarios.:

Publicar un comentario