Sie sind auf Seite 1von 6

Enunciado El Centro Clinico El valle cuenta con una estructura plana, en la cual se encuen tran dispuestos los consultorios

de sta, que estan relacionados uno con otros. De cada uno de los consultorios se almacena: Numero de ste y cantidad de Doctores q ue all atienden, esto debido a que un mismo consultorio pueden atender ms de un do ctor pero no se ha establecido un limite, por lo que se almacena de cada uno de s tos: Cdula, Nombre, Apellido y Especialidad.e desea que en baase a la informacion anteriormente suministrada. se desarrolle un algoritmo en pseudocodigo orientad o a objetos, declarando las clases que considere pertinentes, incluyendo los mtod os que permitan insertar (los consultorios se almacenan ordenados descendentemen te con respecto a su numero) y elimina un consultorio de acuerdo al numero de es te (debido a las remodelaciones que all se han planteado), contratar un nuevo doc tor para que trabaje con su consultorio dado (tome en cuenta que se debe aumenta r la cantidad de doctores para ese consultorio en particular y los doctres se al mecena en el mismo orden en que se van contratando), mostrar los consultorios do nde al menos tres(3) doctores sean Neumonologos y mostrar los doctores de aquell os consultorios donde trabajen cuatro doctores. Algoritmo control_consultorios tipo consultorio^apuntador doctor^apuntador1 clase consultorio entero: numero_consultorio entero:cantidad_doctores apuntador:siguiente_consultorio apuntador:anterior_consultorio constructor consultorio(entero:numero_consultorio;entero:cantida d_doctores;apuntador:siguiente_consultorio;apuntador:anterior_consultorio) inicio numero_consultorio<-n_consultorio cantidad_doctores<-c_doctores siguiente_consultorio<-sig_consultorio anterior_consultorio<-ant_consultorio fin constructor metodo ingresar_consultorio(apuntador:lista_consultorio;apuntado r:principio;apuntador:final) variables entero:bandera=0 inicio Escribir"Bloque Ingreso consultorio inserte todos los da tos solicitados" Escribir "numero" leer(aux->n_consultorio) 0<-c_doctores si (lista_consultorio=nulo) entonces nulo<-aux->sig_consultorio nulo<-axu->ant_consultorio aux<-lista_consultorio lista_consultorio<-principio lista_consultorio<-final 1<-bandera sino si (lista->n_consultorio > aux->n_consul torio) entonces si(lista->siguiente=nulo)entonce

s nulo<-aux->sig_consultorio aux<-lista_consultorio->sig_consultor io lista_consultorio<-aux->ant_c onsultorio aux->final 1<-bandera sino lista_consultorio->sig_c onsultorio<-lista_consultorio si (lista_consultorio->n _consultorio < aux->n_consultorio)entonces lista_consultori o<-aux->sig_consultorio lista_consultori o->ant_consultorio<-lista_consultorio aux->lista_consu ltorio lista_consultori o->sig_consulorio<-lista_consultorio aux<-lista_consu ltorio->ant_consultorio lista_consultori o->ant_consultorio<-lista_consultorio lista_consultori o->ant_consultorio<-lista_consultorio 1<-bandera sino lista_consultori o->anterior<-lista_consultorio fin si fin si sino lista_consultorio<-auxiliar->sig _consultorio aux<-lista_consultorio lista_consultorio->principio 1<-bandera sino si (lista_consultorio->ant_consu ltorio = nulo) entonces lista_consultorio<-aux-> sig_consultorio aux<-lista_anterior->ant _consultorio aux<-lista_consultorio fin si fin si si(bandera=0)entonces si(lista_consultorio->siguiente<>nulo)entonces lista_consultorio->siguiente->lista_cons ultorio fin si fin si fin metodo metodo mostrar_consultorio() inicio escribir" Numero de consultorios, n_consultorios" escribir" Cantidad de doctores, c_doctores"

fin metodo fin clase clase doctor depende_de consultorio entero:cedula cadena:nombre cadena:apellido cadena:especialidad apuntador1:siguiente_doctor constructor doctor(entero.cedula;cadena:nombre;cadena:apellido;c adena:especialidad;apuntador1:siguiente_doctor) inicio cedula<-ced nombre<-nom apellido<-ape especialidad<-esp siguiente_doctor<-sig_doctor fin constructor metodo ingresar doctor(apuntador1:lista_doctor;apuntador:lista_c onsultorio) variables entero:numero_consultorio_buscar entero:bucle entero:bandera inicio escribir "Bloque registro Doctor ingrese todos los datos solitados" si (lista_consultorio<>null) entonces repetir escribir"Numero consultorio" leer(numero_consultorio_buscar) para bucle=0;hasta tamao lista_consultorio;inc ha cer si(lista_consultorio->n_consultorio=nume ro_consultorio_buscar)entonces escribir "cedula" leer(auxiliar->ced) escribir"nombre" leer(auxiliar->nom) escribir"apellido" leer(auxiliar->ape) escribir"especialidad" leer(auxiliar->esp) numero_consultorio_buscar<-aux-> n_consultorio si (lista_doctor=nulo)entonces auxiliar<-lista_doctor sino lista_doctor<-auxiliar-> sig_doctor auxiliar<-lista_doctor fin si lista_consultorio->c_doctor tamao lista_doctor<-bucle 1<-bandera fin si 1+lista_consultorio->c_doctores<-lista_consultor io->c_doctores

lista_consultorio->sig_consultorio<-lista_consul torio fin para si (bandera=0)entonces escriibir"Consultorio no registrado" fin si sino escribir"No hay data de Consultorios" fin si fin metodo metodo mostrar_doctores() inicio escribir"Cedula",ced escribir"Nombre",nom escribir "Apellido", ape escribir "Especialidad",esp fin metodo fin clase variables apuntador:lista_consultorio apuntador1:lista_doctor aux=consultorio nuevo (consultorio) auxiliar=doctor nuevo (doctor) entero:opcion_menu apuntador:principio apuntador:final entero:tipo_procedimiento=0 inicio repetir 0<-tipo_procedimiento escribir "Menu de opciones" escribir"1:Ingresar Consultorio" escribir"2:Eliminar Consultorio" escribir"3:mostrar consultorios" escribri"4:consultorios con minimo 3 Doctores Neumonologos" escribir"5:Consultorios con 4 doctores" escribir"6:Registrar Doctor" escribir"7:"Mostrar Doctores" escribir"8:Salir" leer(opcion_menu) segun_sea (opcion_menu) entonces caso 1: aux.ingresar_consultorio(lista_consultorio,princ ipal,final) caso 2: llamar procedimiento eliminar_consultorio(lista_ consultorio,principio,final) case 3: principio<-lista_consultorio lista_consultorio->mostrar_consu ltorio() lista_consultorio<-sig_consultor io->lista_consultorio case 4: 1<-tipo_procedimiento llamar procedimiento mostrar_con sultorios_exigencias(lista_consultorio,prinicipio,lista_doctor,tipo_procedimient o) case 5: 2<-tipo_procedimiento llamar procedimiento mostrar_consult orios_exigencias(ista_consultorio,prinicipio,lista_doctor,tipo_procedimiento) caso 6: auxiliar.ingresar_doctor(lista_doctor)

caso 7: lista_doctores->mostrar_doctores() lista_doctores<-sig_doctores->li sta_doctores fin segun_sea hasta_que(opcion_menu<>8) fin procedimiento eliminar_consultorio(apuntador: lista_consultorio,apuntador princp io, apuntador: final) variables entero:consultorio_eliminar enteo:bucle entero:bandera=0 auxiliar_borrar=consultorio nuevo (consultorio) entero:numero_consultorio_borrado inicio escribir"Bloque eliminacion consultorio ingrese los datos solicitados a continuacion" escribir"Numero de consultorio" leer(consultorio_eliminar) para bucle=0 hasta tamao de lista_consultorio inc hacer si(lista_consultorio=consultorio_eliminar)entonces lista_consultorio->n_consultorio <- numero_consultorio_borrado tamao de lista_consultorio<-bucle si(principio->n_consutltorio=lista_consultorio->n_consul torio)entonces lista_consultorio->sig_consultorio<-lista_consul torio lista_consultorio<-principio nulo<-lista_consultorio->ant_consultorio bandera=1 fin si si(bandera=0)entonces si(lista_consultrio->n_consultorio=final->n_cons ultorio) lista_consultorio->ant_consultorio<-list a_consultorio lista_consultorio<-final nulo<-lista_consultorio->sig_consultorio bandera=2 fin si fin si si((bandera<>1) y (bandera<>2))entonces lista_consultorio->sig_consultorio<-auxiliar_borrar lista_consultorio->ant_consultorio<-lista_consul torio auxiliar_borrar<-lista_consultorio->sig_consulto rio lista_consultorio<-auxiliar_borrar->ant_consulto rio fin si fin si lista_consultorio->sig_consultorio<-lista_consultorio fin para para bucle=0 hasta tamao de lista_doctor inc doctor si(lista_doctor->n_consultorio=numero_consultorio_borrado)entonc es 0<-lista_doctor->n_consultorio tamao de lista_doctor=bucle

fin si lista_doctor->sig_doctot<-lista_doctor fin para fin procedimiento procedimiento mostrar_doctor_exigencia(apuntador:lista_consultorio;apuntador:pri nicipio;apuntador1:lista_doctor;entero:tipo_procedimiento) variable entero cantidad_doctor=4 entero:cantidad_doctores=3 entero:numero_doctores=0 entero:bucle=0 entero bucle_doctor=0 cadena: especialidad_mostrar="Neumonologo" entero:mostrar=0 inicio principio<-lista_consultorio para bucle=0 hasta tamao_lista_consultorio inc hacer si(lista_consultorio->c_doctores=>cantidad_doctores)entonces si(tipo_procedimiento=1)entonces para bucle_doctor=0 hasta tamao lista_doctor inc hacer si (lista_doctor->esp=especialidad_mostrar)enton ces numero_doctores+1<-numero_doctores fin si lista_doctores->sig_doctor<-lista_doctor fin para si(numero_doctores=>cantidad_doctores)entonces escribir"Numero de Consultorio",lista_co nsultorio->n_consultorio escribir"Cantidad de Doctores",lista_con sultorio->c_doctores,"Neumonologos",numero_doctores fin si fin si si(tipo_procedimiento=2)entonces si(lista_consultorio->c_doctor=cantidad_doctor)e ntonces escribir"Numero de Consultorio",lista_consultorio->n _consultorio escribir"Cantidad de Doctores",lista_con sultorio->c_doctores fin si fin si fin si lista_consultorio->sig_consultorio<-lista_consultorio fin para fin procedimiento

Das könnte Ihnen auch gefallen