domingo, 17 de febrero de 2013

Código de Reingeniería

Como una solución del ejercicio se podría encontrar el siguiente código en donde se ha cambiado solo parte de la interfaz de calculadora que solo sumaba agregando funcionalidad otras operaciones pero basándose en los métodos de la Clase Ingeniería e implementándolos en la Clase ReIngeniería, como se darán cuenta tuvo que modificarse la clase de ejecución principal; (esto sucede en una calculadora programable), pero cumple con los requisitos de no haber cambiado la clase ya hecha.
public class Calculadora {
   public static void main (String args[]) {
      ReIngenieria instIng = new ReIngenieria();
      instIng.inicia();
   }
}

import java.util.Scanner;
public class ReIngenieria {
   public int resultado, A, B;
   public void inicia() {
      Ingenieria instancia = new Ingenieria();
      int oper = 0; //inicia la Operación
      Scanner dato = new Scanner(System.in);
      System.out.print("Primer entero = ");
      A = dato.nextInt(); //espera el primer entero
      boolean salir = false;
      while(!salir) {
         System.out.println(" Operaciones\n 1. Sumar a \n 2. Cambiar De Signo \n "+
         "3. Resta \n 4. Multiplicacion \n 5. Division \n 6. Residuo");
         oper = dato.nextInt();
         switch(oper){
          case 1: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            instancia.Suma(A, B);
            System.out.println("Resultado = " + instancia.Igual());
            salir=true;
          break; }
          case 2: {
            System.out.print(A);
            A = instancia.Signo(A);
            System.out.println(" ahora es "+A);
            salir = false;
          }
          case 3: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            System.out.println("Resultado = " + Resta(A, B));
            salir=true;
          break; }
          case 4: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            System.out.println("Resultado = " + Multiplicacion(A, B));
            salir=true;
          break; }
          case 5: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            System.out.println("Resultado = " + Division(A, B));
            salir=true;
          break; }
          case 6: {
            System.out.print("Segundo entero = ");
            B = dato.nextInt(); //espera el segundo entero
            System.out.println("Resultado = " + Residuo(A, B));
            salir=true;
          break; }
         }
      }
   }
   public int Resta(int valorA, int valorB) {
      Ingenieria instancia = new Ingenieria();
      instancia.Suma(valorA, instancia.Signo(valorB));
      return instancia.Igual();
   }
   public int Multiplicacion(int valorA, int valorB) {
      int producto = 0;
      Ingenieria instancia = new Ingenieria();
      for(int i = 0 ; i < valorA; i++) {
         instancia.Suma(producto, valorB);
         producto = instancia.Igual();
      }
      producto = instancia.Igual();
      return producto;
   }
   public int Division(int valorA, int valorB) {
      int cociente = 0;
      Ingenieria instancia = new Ingenieria();
      for(int x = 0; x < valorA; x += valorB) {
         instancia.Suma(cociente,1);
         cociente = instancia.Igual();
      }
      return cociente;
   }
   public int Residuo(int valorA, int valorB) {
      Ingenieria instancia = new Ingenieria();
      resultado = Resta(valorA,Multiplicacion(Division(valorA,valorB),valorB));
      return resultado;
   }
}


No hay comentarios:

Publicar un comentario