Herramientas de usuario

Herramientas del sitio


pacientes_de_una_guardia_y_sus_tiempos

Un programa administra los ingresos de los pacientes a una guardia. Cada paciente tiene un código único y se registra su ingreso a la guardia y el tiempo de espera en minutos. Esto se hace en base a las siguientes estructuras:

#define L 30

struct fecha {
	int dia;
	int mes;
	int anio;
};

typedef struct fecha fecha_t;

struct registro {
	int codigo;
	char nombre[L];
	char apellido [L];
	fecha_t fechaVisita;
	int tiempoEspera;
};

typedef struct registro registro_t;

Se pide resolver las siguientes funciones en archivos guardia.c y guardia.h, con un programa que haga la prueba de su funcionamiento.

a) registro_t* IngresoGuardia(registro_t* p, int* n);

Esta función debe permitir ingresar un paciente en la memoria al final del array. El parámetro n guarda la cantidad de ingresos guardados. La función debe reservar memoria para el nuevo ingreso y luego pedir los datos al usuario. En caso de que el ingreso sea exitoso, el contador n debe ser incrementado y se devuelve el puntero a la nueva locación de memoria reservada.

b) void TiempoEspera(registro_t *p, int n);

Esta función debe imprimir en pantalla la cantidad de pacientes que esperaron mas de 30 minutos, más de 1 hora, más de 2 horas y más de 3 horas. Luego debe imprimir el promedio general de espera.

c) int PacienteMayorDemora (registro_t*p, int n);

Esta función debe imprimir todos los datos del paciente que más esperó y devolver el índice del array.

d) void IngresosMesActual (registro_t*p, int n);

Esta función imprime en pantalla los nombres y apellidos de los pacientes ingresados este mes. Se puede averiguar la fecha actual con el siguiente código:

#include <time.h>
#include <stdio.h>

int main (void){
    time_t myTime;

    myTime = time(NULL);
    struct tm*hoy = localtime(&myTime);
    int mesActual = hoy->tm_mon+1;
    int anioActual = hoy->tm_year+1900;
    printf("mes actual:%d\nAño actual:%d\n",  mesActual,  anioActual);

    return 0;
}

e) void PromediosMensuales (registro_t*p, int n);

Esta función debe imprimir la cantidad de pacientes y el tiempo de espera promedio de cada mes, sin importar el año.

pacientes_de_una_guardia_y_sus_tiempos.txt · Última modificación: 2019/07/06 08:43 por ignacio