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.