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.
Paciente
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()
Habitación
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 ****
>>>