s2Eva_IIT2001_T4 Control de habitaciones en una clínica

Ejercicio: 2Eva_IIT2001_T4 Control de habitaciones en una clínica

Propuesta de solución en Python:

Control de habitaciones en una clínica.

Se plantea usar una lista para los datos de paciente y un arreglo para la ocupación de las habitaciones.

# 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] +',' +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 ****
>>>