Ejemplo n.º 1
0
 def __init__(self):
     self.pacientes = Cola()
     self.pacientesAtendidos = Pila()
     self.historialPacientes = Pila()
     self.cardiologia = Cola()
     self.neumologia = Cola()
     self.fisioterapia = Cola()
     self.otras = Cola()
Ejemplo n.º 2
0
		def conseguir_ruta_el_mejor(self, ciudad_inicial):
			#Condiciones inciales
			lista_soluciones = []
			visitados = []
			visitados_aux = []
			cola = Cola()
			costo_de_referencia = 1000000

			#cambiar de string a nodos
			ciudad_actual = self.cadena_nodo(ciudad_inicial)

			######### Busqueda el mejor #########
			# Primera iteracion
			ciudad_actual.establecer_ruta_nodo(ciudad_actual.conseguir_ruta_nodo(),ciudad_actual.conseguir_nombre_ciudad())
			visitados_aux.append(ciudad_actual.conseguir_nombre_ciudad())
			visitados = visitados + self.marcar_visita(ciudad_actual, visitados_aux)
			if (self.es_solucion(ciudad_actual) == False): #Si no es solucion
				hijos = ciudad_actual.conseguir_hijos()
				for hijo in hijos:
					nombre_hijo = hijo[0]
					if nombre_hijo not in visitados:
						# Establecemos la ciudad hija como nodo
						nodo_hijo = copy.deepcopy(self.cadena_nodo(nombre_hijo))
						# Establecemos un costo y una ruta
						nodo_hijo.establecer_ruta_nodo(ciudad_actual.conseguir_ruta_nodo(), nodo_hijo.conseguir_nombre_ciudad())
						nodo_hijo.establecer_costo(hijo[1])
						# Ingresamos la ciudad hija en la cola
						if nodo_hijo.conseguir_costo() < costo_de_referencia:
							cola.push(nodo_hijo)
			else:
				costo_de_referencia = ciudad_actual.conseguir_costo()
				lista_soluciones.append(copy.deepcopy(ciudad_actual))
				#return ciudad_actual.conseguir_ruta_nodo()
		
			ciudad_actual = cola.pop()
			# Iteraciones
			while (cola.esVacio() == False): # Mientras la cola tenga ciudades por visitar
				if (self.es_solucion(ciudad_actual) == False): #Si no es solucion
					hijos = ciudad_actual.conseguir_hijos()
					for hijo in hijos:
						nombre_hijo = hijo[0]
						if nombre_hijo not in visitados:
							# Establecemos la ciudad hija como nodo
							nodo_hijo = copy.deepcopy(self.cadena_nodo(nombre_hijo))
							# Establecemos un costo y una ruta
							nodo_hijo.establecer_ruta_nodo(ciudad_actual.conseguir_ruta_nodo(), nodo_hijo.conseguir_nombre_ciudad())
							nodo_hijo.establecer_costo(hijo[1]+ciudad_actual.conseguir_costo())
							# Ingresamos la ciudad hija en la cola
							if nodo_hijo.conseguir_costo() < costo_de_referencia:
								cola.push(nodo_hijo)
				else:
					costo_de_referencia = ciudad_actual.conseguir_costo()
					lista_soluciones.append(copy.deepcopy(ciudad_actual))
					#return ciudad_actual.conseguir_ruta_nodo()
				visitados_aux.append(ciudad_actual.conseguir_nombre_ciudad())
				visitados = visitados + self.marcar_visita(ciudad_actual, visitados_aux)
				ciudad_actual = cola.pop()

			ciudad_solucion = self.conseguir_mejor_solucion(lista_soluciones)
			return ciudad_solucion.conseguir_ruta_nodo()
Ejemplo n.º 3
0
class Gestion(object):
    def __init__(self):
        self.pacientes = Cola()
        self.pacientesAtendidos = Pila()
        self.historialPacientes = Pila()
        self.cardiologia = Cola()
        self.neumologia = Cola()
        self.fisioterapia = Cola()
        self.otras = Cola()

    def espera(self, paciente):
        self.pacientes.encolar(paciente)
        self.historialPacientes.apilar(paciente)
        self.asignarEspecialidades()

    def asignarEspecialidades(self):
        while not self.pacientes.es_vacia():
            if (self.pacientes.ver_cola().getEspecialidad() == 'cardiologia'):
                self.cardiologia.encolar(self.pacientes.desencolar())
            elif (self.pacientes.ver_cola().getEspecialidad() == 'neumologia'):
                self.neumologia.encolar(self.pacientes.desencolar())
            elif (self.pacientes.ver_cola().getEspecialidad() == 'fisioterapia'
                  ):
                self.fisioterapia.encolar(self.pacientes.desencolar())
            else:
                self.otras.encolar(self.pacientes.desencolar())

    def atender(self, nEspecialidad):
        if (nEspecialidad == 1):
            if not self.cardiologia.es_vacia():
                self.pacientesAtendidos.apilar(self.cardiologia.ver_cola())
                return self.cardiologia.desencolar()
        elif (nEspecialidad == 2):
            if not self.neumologia.es_vacia():
                self.pacientesAtendidos.apilar(self.neumologia.ver_cola())
                return self.neumologia.desencolar()
        elif (nEspecialidad == 3):
            if not self.neumologia.es_vacia():
                self.pacientesAtendidos.apilar(self.fisioterapia.ver_cola())
                return self.fisioterapia.desencolar()
        else:
            if not self.otras.es_vacia():
                self.pacientesAtendidos.apilar(self.otras.ver_cola())
                return self.otras.desencolar()
        return ""

    def getHistorial(self):
        return self.historialPacientes

    def getAtendidos(self):
        return self.pacientesAtendidos

    def getCardiologia(self):
        return self.cardiologia

    def getNeumologia(self):
        return self.neumologia

    def getFisioterapia(self):
        return self.fisioterapia

    def getOtras(self):
        return self.otras
Ejemplo n.º 4
0
    def getOtras(self):
        return self.otras


#menu
hospital = Gestion()
##datos prueba
hospital.espera(Persona(1, 'persona1', 'cardiologia'))
hospital.espera(Persona(2, 'persona2', 'fisioterapia'))
hospital.espera(Persona(3, 'persona3', 'cardiologia'))
hospital.espera(Persona(4, 'persona4', 'medicina general'))
hospital.espera(Persona(5, 'persona5', 'neumologia'))
hospital.espera(Persona(6, 'persona6', 'medicina general'))

a = True
auxCola = Cola()

while a:
    print("Elija una opcion")
    print("1 nuevo paciente")
    print("2 atender")
    print("3 pacientes en espera")
    print("4 pacientes atendidos")
    print("5 historial")
    print("6 salir")
    opcion = input("Selecciones una opcion:")
    if (opcion == 1):
        hospital.espera(
            Persona(raw_input("Ingrese el documento: "),
                    raw_input("Ingrese el nombre: "),
                    raw_input("Ingrese la especialidad: ")))
Ejemplo n.º 5
0
        op = window.getch()
        if op is 10:
            break
        elif op is not -1:
            string += str(chr(op))
        op = -1
    return string


if __name__ == '__main__':
    #---------------------
    ld = ListaDoble()
    #---------------------
    lcd = ListaCircularDoble()
    #---------------------
    cola = Cola()
    #---------------------
    pila = Pila()
    #---------------------
    usuario = ""

    curses.initscr()
    curses.beep()
    curses.beep()

    window = curses.newwin(ALTO, ANCHO, 0, 0)
    window.timeout(TIMEOUT)
    window.keypad(1)
    curses.noecho()
    curses.curs_set(0)
def encolar():
    numero = str(request.form['dato'])
    Nodo = Cola.NodoCola(numero)
    ColaPython.insertarCola(Nodo)
    return "Elemento: " + str(numero) + " Insertado a la Cola"
from flask import Flask, request
from Estructuras import Cola
from Estructuras import Pila
from Estructuras import Lista
from Estructuras import Matriz
import os

app = Flask("Practica2")

ColaPython = Cola.Cola()
pilaDePrueba = Pila.Pila()
ListaPython = Lista.Lista()
MatrizP = Matriz.Matriz()


@app.route('/Conectar')
def conectar():
    return 'Conexión Exitosa!'


# INICIO DE LOS METODOS DE COLA
@app.route('/Encolar', methods=['POST'])
def encolar():
    numero = str(request.form['dato'])
    Nodo = Cola.NodoCola(numero)
    ColaPython.insertarCola(Nodo)
    return "Elemento: " + str(numero) + " Insertado a la Cola"


@app.route('/VerCola')
def verCola():
Ejemplo n.º 8
0
from flask import Flask, request
from Estructuras import Cola
from Estructuras import ListaSimple
from Estructuras import Pila
from Estructuras import Matriz

app=Flask("Practica_2")

Col=Cola.Cola()
Pil=Pila.Pila()
Lis=ListaSimple.Lista()
Mat=Matriz.Matriz()

@app.route('/Conectar')
def conectar():
	return "Si conecto"

@app.route("/AgregarCola", methods=['POST'])
def agregarcol():
	num=str(request.form['dato'])
	Col.agregar(num)
	return "Dato Ingresado: " + str(num)

@app.route('/listarCola')
def listarcol():
	mostrar=Col.listar()
	return str(mostrar)

@app.route('/eliminarcol')
def elimcol():
	mostrar=Col.eliminar()