Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/php/POO/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
 
(7 revisiones intermedias por el mismo usuario no mostrado)
Línea 7: Línea 7:
 
*Plantear un segundo método que imprima el nombre y un mensaje si debe o no pagar impuestos (si el sueldo supera a 3000 paga impuestos)
 
*Plantear un segundo método que imprima el nombre y un mensaje si debe o no pagar impuestos (si el sueldo supera a 3000 paga impuestos)
 
}}
 
}}
 
+
<!--
 
<source lang=php>
 
<source lang=php>
 
<html>
 
<html>
Línea 35: Línea 35:
 
   }
 
   }
 
}
 
}
 
+
-->
 
$empleado1=new Empleado();
 
$empleado1=new Empleado();
$empleado1->inicializar('Luis',2500);
+
$empleado1->asigna('Luis',2500);
 
$empleado1->pagaImpuestos();
 
$empleado1->pagaImpuestos();
 
$empleado1=new Empleado();
 
$empleado1=new Empleado();
$empleado1->inicializar('Carla',4300);
+
$empleado1->asigna('Carla',4300);
 
$empleado1->pagaImpuestos();
 
$empleado1->pagaImpuestos();
 
?>
 
?>
Línea 50: Línea 50:
 
Confeccionar una clase Menu. Permitir añadir la cantidad de opciones que necesitemos. Mostrar el menú en forma horizontal o vertical (según que método llamemos)
 
Confeccionar una clase Menu. Permitir añadir la cantidad de opciones que necesitemos. Mostrar el menú en forma horizontal o vertical (según que método llamemos)
 
}}
 
}}
 +
<!--
 
<source lang = php>
 
<source lang = php>
 
<html>
 
<html>
Línea 82: Línea 83:
 
   }
 
   }
 
}
 
}
 
+
-->
 
$menu1=new Menu();
 
$menu1=new Menu();
 
$menu1->cargarOpcion('http://www.google.com','Google');
 
$menu1->cargarOpcion('http://www.google.com','Google');
Línea 96: Línea 97:
 
Construir una clase llamado racional que podamos inicializar con un string del tipo por ejemplo "8/5"
 
Construir una clase llamado racional que podamos inicializar con un string del tipo por ejemplo "8/5"
 
}}
 
}}
 +
<!--
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 108: Línea 110:
 
     }
 
     }
 
}
 
}
 +
-->
  
 
$a=new racional("8/5");
 
$a=new racional("8/5");
Línea 133: Línea 136:
 
}}
 
}}
  
===Gestión de personal de un ambulatorio===
+
{{MRM_Actividad|Title=App de geometría|
Siguiendo el ejemplo planteado en el apartado de herencia, implementamos las clases
+
;Realiza una app que me permita dibjar dos puntos o una línea en un linezo.
;Clase PersonalAmbulatorio
+
*Para ello usaremos  un lienzo o cambas
<source lang=php>
+
<source lang=html5>
<?php
+
<canvas id="canvas" width=100 height=500 style="margin-left=$l, margin-right=$r">
/**
+
            <p>Su navegador no soporta canvas :(</p>
  * Description of personalAmbulatorio
+
         </canvas>
* @author manuel
+
*/
+
class PersonalAmbulatorio {
+
    //put your code here
+
    protected $nombre;
+
    protected $apellido;
+
    protected $direccion;
+
    protected $edad;
+
   
+
    public function __construct($n,$a, $d,$e){
+
        $this->nombre = $n;
+
        $this->apellido=$a;
+
        $this->direccion=$d;
+
        $this->edad=$e;
+
    }
+
    public function hacerTurno($turno){
+
        return "turno de esta semana es $turno<br />";
+
       
+
    }
+
    public function hacerIncidencia($msg){
+
        $incidencia ="Persona que crea incidencia $this->apellido, $this->nombre  <br />";
+
        $incidencia .="incidencia creada con fecha ".date("d-m-y", time())."<hr />";
+
         $incidencia .="<strong>$msg</strong>";
+
    }
+
}
+
 
</source>
 
</source>
;Clase Medica
 
<source lang=php>
 
<?php
 
  
/**
+
;Dibujar un punto
* Description of Medica
+
<source lang=javascript>
* @author manuel
+
      var canvas = document.getElementById('canvas');
*/
+
      var lienzo = canvas.getContext('2d');
class Medica extends PersonalAmbulatorio {
+
      lienzo.fillStyle = "#ff2626"; // Color rojo
 
+
      lienzo.beginPath(); // Iniciar trazo
    //put your code here
+
      lienzo.arc($this->x, $this->y, $this->size, 0, Math.PI * 2, true); // Dibujar un punto usando la funcion arc
 
+
      lienzo.fill(); // Terminar trazo
    private $especialidad;
+
</source>
    private $visitas = [];
+
;Dibujar una línea
    private $consultas = [];
+
<source lang=javascript>
 
+
//Declaro la variable
    public function __construct($n, $a, $d, $e, $esp) {
+
  var canvas = document.getElementById("canvas");
        parent::__construct($n, $a, $d,$e);
+
  var lienzo = canvas.getContext("2d");
        $this->especialidad = $esp;
+
  lienzo.lineWidth = 3//ancho de la línea
    }
+
  lienzo.strokeStyle = "#f00"; //Color
 
+
  lienzo.beginPath(); //Empiezo a dibujar
/*    public function pasarConsulta($enfermera, $mensaje) {
+
  lienzo.moveTo(20, 130); //Posición inicial
 
+
  lienzo.lineTo(230, 20); //Posición final
        $msj = "<div style=margin-left:5em> Fecha : " . date("d-m-y", time()) . "</div>";
+
  lienzo.stroke(); //DIBUJA la línea
        $msj.="<div style=margin-left:5em>Enfermera $enfermera</div>";
+
        $msj.="<div style=margin-left:5em>Tipo de consulta  " . $mensaje ."</div>";
+
        $this->consultas[] =$msj;
+
       
+
    }
+
*  
+
*/
+
    public function pasarConsulta($enfermera, $mensaje) {
+
 
+
        $msj = "Fecha : " . date("d-m-y H:i:s", time()) ;
+
        $msj.=".  Enfermero/a :  $enfermera";
+
        $msj.=".  Tipo de consulta  <strong>" . $mensaje."</strong>" ;
+
        $this->consultas[] =$msj;
+
       
+
    }
+
 
+
    public function realizarVisita($ordenante, $aviso) {
+
       
+
        $msj = "Fecha : " . date("d-m-y H:i:s", time()) . "";
+
        $msj.=". Envía  <strong> $ordenante</strong>";
+
        $msj.=". Aviso: <strong>$aviso</strong>";
+
        $this->visitas[] = $msj;
+
    }
+
 
+
    public function __toString() {
+
        $msj = "<div class='medico'> Medico : <strong>$this->apellido, $this->nombre</strong> de $this->edad años de edad";
+
        $msj.=".  Especialidad <strong>$this->especialidad</strong>";
+
        $msj.="<div class='tituloAcciones'>Consultas realizadas  " . count($this->consultas) . " consultas :</div>";
+
        $msj.="<div class='contenidoAcciones'>";
+
        foreach ($this->consultas as $num => $consulta) {
+
            $msj.="Consulta $num: ";
+
            $msj.=  "$consulta<br />";
+
        }
+
        $msj.="</div>";
+
        $msj.="<div class='tituloAcciones'>Visitas realizadas : " . count($this->visitas) . " visitas.</div>";
+
        $msj.="<div class='contenidoAcciones'>";
+
        foreach ($this->visitas as $num => $visita) {
+
            $msj.=" Visita $num: ";
+
            $msj.= " $visita <br />";
+
        }
+
        $msj.="</div>" ;
+
        $msj.="</div>" ;
+
        return $msj;
+
    }
+
 
+
}
+
 
</source>
 
</source>
;Clase Enfermera
 
<source lang=php>
 
class Enfermera extends PersonalAmbulatorio {
 
    //put your code here
 
  private $anyoTitulacion;
 
  private $curas=[];
 
   
 
  public function  __construct($n, $a, $d, $e, $aT){
 
        parent::__construct($n,$a,$d,$e);
 
        $this->anyoTitulacion=$aT;
 
    }
 
    public function avisoMedico(Medica $medico, $mensaje){
 
        $medico->pasarConsulta($this->apellido, $mensaje, 1);
 
    }
 
   
 
    public function hacerCura($ordenante, $tipoCura){
 
        $msj="Fecha : ".date("d-m-y", time())."<br/>";
 
        $msj.="Ordenante $ordenante<br />";
 
        $msj.="Tipo de cura $cura <hr />";
 
        $this->curas[]=$msj;
 
    }
 
}
 
  
</source>
+
  }}
;Clase Conserje
+
<source lang=php>
+
class Conserje extends PersonalAmbulatorio {
+
    //put your code here
+
    private $ubicacion;
+
   
+
    public function __construct($n, $a, $d, $e, $u){
+
        parent::__construct($n,$a,$d);
+
        $this->ubicacion=$u;
+
    }
+
   
+
    public function avisoMedico(Medica $medico, $mensaje,$tipoAviso){
+
        if ($tipoAviso=="Consulta")
+
            $medico->pasarConsulta($this->apellido, $mensaje, 2);
+
        if ($tipoAviso =="Visita")
+
            $medico->realizarVisita($this->apellido, $mensaje);
+
    }
+
    public function avisoEnfermera(Enfermera $enfermera, $mensaje){
+
        $enfermera->hacerCura($this->apellido, $mensaje);
+
    }
+
}
+
</source>
+

Última revisión de 19:36 13 nov 2019



Icon activity.jpg
Actividad
Empleado
  • Confeccionar una clase Empleado, definir como atributos su nombre y sueldo.
  • Definir un método inicializarlo para que lleguen como dato el nombre y sueldo.
  • Plantear un segundo método que imprima el nombre y un mensaje si debe o no pagar impuestos (si el sueldo supera a 3000 paga impuestos)



$empleado1=new Empleado(); $empleado1->asigna('Luis',2500); $empleado1->pagaImpuestos(); $empleado1=new Empleado(); $empleado1->asigna('Carla',4300); $empleado1->pagaImpuestos(); ?> </body> </html> </source>



Icon activity.jpg
Actividad

Confeccionar una clase Menu. Permitir añadir la cantidad de opciones que necesitemos. Mostrar el menú en forma horizontal o vertical (según que método llamemos)



$menu1=new Menu(); $menu1->cargarOpcion('http://www.google.com','Google'); $menu1->cargarOpcion('http://www.yahoo.com','Yhahoo'); $menu1->cargarOpcion('http://www.msn.com','MSN'); $menu1->mostrarVertical(); ?> </body> </html> </source>



Icon activity.jpg
Actividad

Construir una clase llamado racional que podamos inicializar con un string del tipo por ejemplo "8/5"




$a=new racional("8/5"); $b=new racional("6/4"); echo "
valor de \$a: $a
"; echo "
valor de \$b: $b"; ?> </source>




Icon activity.jpg
Actividad

Creamos la clase factura

  • Constantes IVA
  • Atributos Importe Base, fecha, impuestos, Importe bruto, estado (pagada o pendiente)
  • Métodos: imprime




Icon activity.jpg
Sobrecargar el constructor de un racional

Siguiendo el ejemplo establecido anteriormente realiza un constructor que permita instanciar un objeto de la clase racional de la siguiente manera

$a = new racional ("8/5");/*   8/5  */
$b = new racional (5,4);  /*   5/6  */
$c = new racional (5);    /*   5/1  */
$d = new racional ();     /*   1/1   */





Icon activity.jpg
App de geometría
Realiza una app que me permita dibjar dos puntos o una línea en un linezo.
  • Para ello usaremos un lienzo o cambas
 <canvas id="canvas"  width=100 height=500 style="margin-left=$l, margin-right=$r">
             <p>Su navegador no soporta canvas :(</p>
        </canvas>
Dibujar un punto
       var canvas = document.getElementById('canvas');
       var lienzo = canvas.getContext('2d');
       lienzo.fillStyle = "#ff2626"; // Color rojo
       lienzo.beginPath(); // Iniciar trazo
       lienzo.arc($this->x, $this->y, $this->size, 0, Math.PI * 2, true); // Dibujar un punto usando la funcion arc
       lienzo.fill(); // Terminar trazo
Dibujar una línea
//Declaro la variable 
  var canvas = document.getElementById("canvas");
  var lienzo = canvas.getContext("2d");
  lienzo.lineWidth = 3//ancho de la línea
  lienzo.strokeStyle = "#f00"; //Color
  lienzo.beginPath(); //Empiezo a dibujar
  lienzo.moveTo(20, 130); //Posición inicial
  lienzo.lineTo(230, 20); //Posición final
  lienzo.stroke(); //DIBUJA la línea