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 23:16 5 dic 2016