Ejercicio: 2Eva_IIT2001_T4 Control de habitaciones en una clínica
Propuesta de solución en Python:
Se plantea usar una lista para los datos de paciente y un arreglo para la ocupación de las habitaciones.
cédula | nombre | código |
---|---|---|
1234 | Juan | 2 |
456 | Maria | 8 |
La lista de pacientes empieza vacia paciente=[] y se añaden datos con cada ingreso de paciente a la clínica. paciente.append()
código | 1 | 2 | … | 7 | 8 | … |
---|---|---|---|---|---|---|
ocupada | 0 | 1 | … | 0 | 1 | … |
El arreglo de habitaciones se inicializa en la opción=1 con el número de habitaciones disponibles en el edificio. Como el edificio tiene un número de habitaciones fija, se inicializa como un arreglo de tamaño n, con valores ceros al iniciar con todas las habitaciones vacias.
Instrucciones en Python
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 2Eva_IIT2001_T4 Control de habitaciones en una clínica # Tarea: abrir archivo de datos import numpy as np paciente=[] # menu opcion = '0' while not(opcion=='6'): print(' 1. Ingresar habitaciones') print(' 2. Ingresar paciente y asignar habitación') print(' 3. Dar de alta a paciente, habitacion libre') print(' 4. Guardar datos de paciente') print(' 5. Abrir datos de pacientes') print(' 6. Salir') opcion = input('cual opcion: ') if (opcion=='1'): print(' **** 1. Ingresar habitaciones ****') n = int(input('cuantas:')) habitacion = np.zeros(n,dtype=int) print(habitacion) if (opcion=='2'): print(' **** 2. Ingresar paciente y asignar habitación ****') cedula = input('cedula: ') nombre = input('nombre: ') codigo = int(input('cual habitación: ')) while (habitacion[codigo]==1): print(' la habitacion está ocupada,..') codigo = int(input('cual habitación: ')) registro = [cedula,nombre,codigo] paciente.append(registro) habitacion[codigo] = 1 print(paciente) if (opcion=='3'): print(' **** 3. Dar de alta a paciente, habitacion libre ****') print(paciente) cualpaciente=int(input(' numero paciente:')) donde=paciente[cualpaciente][2] if (habitacion[donde]==1): habitacion[donde] = 0 paciente[cualpaciente][2] = 0 else: print(' la habitacion no tiene paciente') print(habitacion) if (opcion=='4'): print(' **** 4. Guardar archivo ****') # trabajar con un archivo archivo = open('pacientes.txt','w') n = len(paciente) fila = 0 while not(fila>=n): # Crea linea de texto con datos # para un registro, separada por comas registro = paciente[fila][0]+',' + paciente[fila][1] +',' registro = registro +',' +str(paciente[fila][2]) +'\n' # Escribe registro en una línea del archivo archivo.write(registro) fila = fila+1 archivo.close() # Cierra el archivo if (opcion=='5'): print(' 5. **** Abrir archivo ****') print(' # TAREA, COMPLETAR EL PROCESO') if (opcion=='6'): print(' 6. **** Salir ****')
completar la tarea.
resultado del algoritmo
1. Ingresar habitaciones 2. Ingresar paciente y asignar habitación 3. Dar de alta a paciente, habitacion libre 4. Guardar datos de paciente 5. Abrir datos de pacientes 6. Salir cual opcion: 1 **** 1. Ingresar habitaciones **** cuantas:10 [0 0 0 0 0 0 0 0 0 0] 1. Ingresar habitaciones 2. Ingresar paciente y asignar habitación 3. Dar de alta a paciente, habitacion libre 4. Guardar datos de paciente 5. Abrir datos de pacientes 6. Salir cual opcion: 1 **** 1. Ingresar habitaciones **** cuantas:10 [0 0 0 0 0 0 0 0 0 0] 1. Ingresar habitaciones 2. Ingresar paciente y asignar habitación 3. Dar de alta a paciente, habitacion libre 4. Guardar datos de paciente 5. Abrir datos de pacientes 6. Salir cual opcion: 2 **** 2. Ingresar paciente y asignar habitación **** cedula: 123 nombre: Juan cual habitación: 8 [['123', 'Juan', 8]] 1. Ingresar habitaciones 2. Ingresar paciente y asignar habitación 3. Dar de alta a paciente, habitacion libre 4. Guardar datos de paciente 5. Abrir datos de pacientes 6. Salir cual opcion: 2 **** 2. Ingresar paciente y asignar habitación **** cedula: 234 nombre: Maria cual habitación: 8 la habitacion está ocupada,.. cual habitación: 7 [['123', 'Juan', 8], ['234', 'Maria', 7]] 1. Ingresar habitaciones 2. Ingresar paciente y asignar habitación 3. Dar de alta a paciente, habitacion libre 4. Guardar datos de paciente 5. Abrir datos de pacientes 6. Salir cual opcion: 3 **** 3. Dar de alta a paciente, habitacion libre **** [['123', 'Juan', 8], ['234', 'Maria', 7]] numero paciente:0 [0 0 0 0 0 0 0 1 0 0] 1. Ingresar habitaciones 2. Ingresar paciente y asignar habitación 3. Dar de alta a paciente, habitacion libre 4. Guardar datos de paciente 5. Abrir datos de pacientes 6. Salir cual opcion: 4 **** 4. Guardar archivo **** 1. Ingresar habitaciones 2. Ingresar paciente y asignar habitación 3. Dar de alta a paciente, habitacion libre 4. Guardar datos de paciente 5. Abrir datos de pacientes 6. Salir cual opcion: 5 5. **** Abrir archivo **** # TAREA, COMPLETAR EL PROCESO 1. Ingresar habitaciones 2. Ingresar paciente y asignar habitación 3. Dar de alta a paciente, habitacion libre 4. Guardar datos de paciente 5. Abrir datos de pacientes 6. Salir cual opcion: 6 6. **** Salir **** >>>