Usuario:ManuelRomero/ProgramacionWeb/php/POO/practica

De WikiEducator
Saltar a: navegación, buscar


  • Se pide que realicemos una aplicación web que resuleva cálculos aritméticos
  • La operación se insertará en una caja de texto
  • La operacion tendrá el siguiente formato
OP1 operador OP2
  • Donde
  1. OP1 es un operador real o racional
  2. operador es una operación que puede ser +,-,*,/,:.
    1. según los operandos sean reales o racionales el operador división será / o : respectivamente
  • El tipo de operación, la deberemos obtener según nos indique un método stático de la clase operación según se indica más abajo.
  • En el cliente veremos la siguiente pantalla

OperacionCalculadora.png

  • Para realizar este ejercicio, tendremos que implementar las siguientes clases según aparece en el dibujo
  • Es obligatorio usar esta jerarquía de clase.

Racional.png

  • Todos los atributos private o protected (no debe de haber atributos public)
  • Los métodos según correspondan serán private protected o public
  • A continuación una descripción de las clases
Racional (p.e 10/6)
Propiedades
  1. Num (p.e 10)
  2. Den (p.e 6)
Métodos
  1. contructor. Hay que sobrecargarlo según se indica
$a = new Racional();      //Crea el racional 1/1
$a=  new Racional (10);   //Crea el racional 10/1
$a = new Racional(10,6);  //Crea el racional 10/6 
$a = new Racional("10/6");//Crea el racional 10/6
$a = new Racional("10");//Crea el racional 10/6
No hace falta recoger otras situaciones no deseadas, no obstante si se hace se debería de crear el Racional 1/1
  1. 'asigna. También se pide que está sobrecargado
$a = new Racional();      //Crea el racional 1/1
$a->asigna(10);   //Asigna al raciona a el valor  10/1
$a->asigna(10,6);  //Asigna al raciona a el valor 10/6 
$a->asigna("10/6");//Asigna al raciona a el valor 10/6
$a->asigna();  //Asigna al raciona a el valor 1/1
$a->asigna("11");//Asigna al raciona a el valor 11/1
  1. simplifica() Simplifica si se puede numerador y denominador (Utilizar el método de Euclides (mcd))
  2. toString() Retorna el número racional como una cadena de caracteres, es decir el contenido del atributo numero
  1. suma
  2. resta
  3. multimplica
  4. divide
Todos estos métodos operan con un argumento racional y retorna un Racional resultado de operarse él mismo con el racional que pasamos como argumento
//En la clase
public function suma (Racional $b) {
 $numResultado = ....;
 $denResultado = ....
 $resultado = new Racional......
 return $resultado;
}
.....
//En el programa que use la clase
 
$a = new Racional("5/6");
$b = new Racional (6,4);
$c= $a->sumar($b);
echo "$a+$b=$c"//Me visualizará 5/6+6/4=56/24, o bien simplificado 7/3
  • Por defecto todas las operaciones se deben de facilitar con el racional simplificado, salvo que se pase en la operación un segundo parámetro a valor false, en cuyo caso no se simplifica y se da el valor sin simplificar
Operacion
  • Como vemos en el diagrama va a tener algún método abstracto, por lo que la vamos a considerar abstracta
Propiedades
  • Operando1 es un atributo que podrá ser real o racional, pero como en php no hay que declarar tipos, nos va bien
  • Operando2 igual
  • Operación será la cadena de caracteres que el usuario inserte en la caja de texto.
  • Operador es el carácter que indica el tipo de operación que se quiere realizar.
  • Resultado es el resultado de la operación, puede ser real o racional
  • Esta clase descompondrá la operación y generará un resultado
Métodos
  • Los que consideres.
OpReal
  • Realiza una operación real
OpRacional
  • Realiza una operación racional