Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/php/POO/ejercicios»
De WikiEducator
Línea 132: | Línea 132: | ||
</source> | </source> | ||
}} | }} | ||
+ | |||
+ | ===Gestión de personal de un ambulatorio=== | ||
+ | Siguiendo el ejemplo planteado en el apartado de herencia, implementamos las clases | ||
+ | ;Clase PersonalAmbulatorio | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | /** | ||
+ | * Description of personalAmbulatorio | ||
+ | * @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> | ||
+ | ;Clase Medica | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | |||
+ | /** | ||
+ | * Description of Medica | ||
+ | * @author manuel | ||
+ | */ | ||
+ | class Medica extends PersonalAmbulatorio { | ||
+ | |||
+ | //put your code here | ||
+ | |||
+ | private $especialidad; | ||
+ | private $visitas = []; | ||
+ | private $consultas = []; | ||
+ | |||
+ | public function __construct($n, $a, $d, $e, $esp) { | ||
+ | parent::__construct($n, $a, $d,$e); | ||
+ | $this->especialidad = $esp; | ||
+ | } | ||
+ | |||
+ | /* public function pasarConsulta($enfermera, $mensaje) { | ||
+ | |||
+ | $msj = "<div style=margin-left:5em> Fecha : " . date("d-m-y", time()) . "</div>"; | ||
+ | $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> | ||
+ | ;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> |
Revisión de 12:16 6 dic 2016