Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
#include <stdio.h> #include "funciones.h" int ingresarPaciente( struct paciente_s * paciente, int n) { static int i = 0 ; if (i > n) printf("\nCupos Llenos"); else { printf("\nIngrese los datos del paciente"); printf("\n Nombre: "); scanf("%s",paciente[i].nombre); printf(" Apellido: "); scanf("%s",paciente[i].apellido); printf(" DNI: "); scanf("%d",&paciente[i].dni); printf(" Especialidad (0,1,2): "); scanf("%d",&paciente[i].especialidad); printf(" Gravedad(0-5): "); scanf("%d",&paciente[i].gravedad); getchar(); paciente[i].turno = (i+1) ; paciente[i].atendido = 0 ; i++; } return i ; } void ordenarPacientes_porGravedad(struct paciente_s * paciente, int n) { int i, j ; for(i=0; i<n-1; i++) { for(j=0; j<n-1-i; j++) { if (paciente[j].gravedad < paciente[j+1].gravedad ) { swapp(paciente, j) ; } } } } void ordenarPacientes_porTurno_asc(struct paciente_s * paciente, int n) { int i, j ; for(i=0; i<n-1; i++) { for(j=0; j<n-1-i; j++) { if (paciente[j].turno > paciente[j+1].turno ) { swapp(paciente, j) ; } } } } void ordenarPacientes_porTurno_desc(struct paciente_s * paciente, int n) { int i, j ; for(i=0; i<n-1; i++) { for(j=0; j<n-1-i; j++) { if (paciente[j].turno < paciente[j+1].turno ) { swapp(paciente, j) ; } } } } int atenderPaciente( struct paciente_s * paciente_vec, struct paciente_s * paciente, int n) { int especialidad, flag = 0 , i ; printf("\nIngrese la especialidad a atender(0,1,2): "); scanf("%d",&especialidad); getchar(); ordenarPacientes_porTurno_asc(paciente_vec, n); ordenarPacientes_porGravedad(paciente_vec, n); for (i = 0 ; flag == 0 && i<n ; i++) { if( paciente_vec[i].especialidad == especialidad && paciente_vec[i].atendido == 0 ) { paciente_vec[i].atendido = 1 ; *paciente = paciente_vec[i]; flag = 1 ; } } return flag; } void imprimirPaciente(struct paciente_s * paciente) { printf("\n\n Nombre: %s",paciente->nombre); printf("\n Apellido: %s", paciente->apellido); printf("\n DNI: %d", paciente->dni); printf("\n Gravedad(0-5): %d",paciente->gravedad); printf("\n Turno: %d",paciente->turno); } void imprimirTotal(struct paciente_s * paciente, int n_pacientes, int n_especialidades) { int i , j; ordenarPacientes_porTurno_asc(paciente, n_pacientes); for (i=0 ; i<n_especialidades ; i++) { printf("\n\nEspecialidad: %d",i); for (j=0 ; j<n_pacientes ; j++) { if (paciente[j].especialidad == i ) imprimirPaciente (&paciente[j]) ; } } } void imprimirRestantes(struct paciente_s * paciente, int n_pacientes, int n_especialidades) { int i , j; ordenarPacientes_porTurno_desc(paciente, n_pacientes); ordenarPacientes_porGravedad(paciente, n_pacientes); for (i=0 ; i<n_especialidades ; i++) { printf("\n\nEspecialidad: %d",i); for (j=0 ; j<n_pacientes ; j++) { if (paciente[j].especialidad == i && paciente[j].atendido == 0 ) imprimirPaciente (&paciente[j]) ; } } } void swapp(struct paciente_s * paciente, int j) { struct paciente_s paciente_auxiliar ; paciente_auxiliar = paciente[j]; paciente[j]=paciente[j+1]; paciente[j+1]=paciente_auxiliar; }
Compartir