Herramientas de usuario

Herramientas del sitio


pacientes_de_una_guardia_y_sus_tiempos

¡Esta es una revisión vieja del documento!


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.1562416846.txt.gz · Última modificación: 2019/07/06 08:40 por ignacio