ayuda con este ejercicio
/*Ejercicio 2.- El hospital Clínico Universitario de Valladolid desea, para gestionar el
servicio de urgencias, hacer un programa que permita:
1. Dar de alta a las personas que llegan a una consulta. Se pedirá el nombre y la prioridad,
que podrá ser 1, 2 o 3.
2. Seleccionar la siguiente persona para ser atendida. El programa elegirá a la que tenga
mayor prioridad, y en caso de empate a la que haya llegado antes. El nombre de la persona
elegida será mostrado en pantalla y ésta será eliminada pues se supone que ya ha sido atendida.
3. Listar los nombres y prioridades de todas las personas que están esperando.*/
//Programa realizado por Noelia Sanz Peñas
#include <stdio.h>
#include <conio.h>
#include <string.h>
void menu();
void altas(struct urgencias *pac);
void siguiente(struct urgencias pac[]);
void listar(struct urgencias pac[]);
struct urgencias
{
char nombre[20];
int prioridad;
}pac[3];
//______________________________________________________________________________
int i=0;
void main()
{
int op;
char opc;
do
{
clrscr();
menu();
scanf("%d",&op);
switch(op)
{
case 1: do
{
altas(&pac[i]);
i++;
printf("nDesea introducir otro paciente?(S/N): ");
fflush(stdin);
opc=getche();
}while((opc=='s')||(opc=='S')&&(i<3));break;
case 2: siguiente(pac);break;
case 3: listar(pac);break;
}
}while(op!=4);
getch();
}
//______________________________________________________________________________
void menu()
{
printf("ttt M E N U");
printf("nttt_______________");
printf("nnttt1) AGREGAR PACIENTE A LA LISTA DE ESPERA");
printf("nttt2) SELECCIONAR AL SIGUIENTE PACIENTE EN SER ATENDIDO");
printf("nttt3) VER LISTA DE PACIENTES EN LISTA DE ESPERA");
printf("nttt4) SALIR");
printf("nntttElija una opcion: ");
}
//______________________________________________________________________________
void altas(struct urgencias *pac)
{
clrscr();
printf("ntttAGREGAR PACIENTE A LISTA DE ESPERA");
printf("ntt___________________________________________");
printf("nnttNOMBRE: ");
fflush(stdin);
gets(pac->nombre);
do{
printf("nttPRIORIDAD (1=MAX,2=MED,3=MIN)");
scanf("%d",&pac->prioridad);
}while((pac->prioridad<=0)||(pac->prioridad>3));
}
//______________________________________________________________________________
void siguiente(struct urgencias pac[])
{
struct urgencias pac2[3];
int max,pos=0,x=0,j=0;
max=pac[0].prioridad;
for(i=1;i<3;i++)
{
if((pac[i].prioridad<max)&&(pac[i].prioridad!=0))
{
max=pac[i].prioridad;
pos=i;
}
}
textcolor(3);
cprintf("Paciente seleccionado");
printf("n____________");
printf("nnPACIENTE %d",pos+1);
printf("nNOMBRE:%s",pac[pos].nombre);
printf("nPRIORIDAD: %d",pac[pos].prioridad);
i=0;
j=0;
do
{
if(i!=pos)
{
strcpy(pac2[j].nombre,pac[i].nombre);
pac2[j].prioridad=pac[i].prioridad;
j++;
}
i++;
}while(x<3);
for(x=0;x<3;x++)
{
strcpy(pac[i].nombre,pac2[i].nombre);
pac[i].prioridad=pac2[i].prioridad;
}
i--;
}
//______________________________________________________________________________
void listar (struct urgencias pac[])
{
int j;
clrscr();
for(j=0;j<i;j++)
{
printf("nnPACIENTE %d",j+1);
printf("n____________");
printf("nnNOMBRE: %s",pac[j].nombre);
printf("nPRIORIDAD: %d",pac[j].prioridad);
}
}
Me gustaria saber que me falla en este ejercicio si alguien me lo pudiera corregir antes del 24 de este mes se lo agradeceria mucho
gracias
espero respuestas
servicio de urgencias, hacer un programa que permita:
1. Dar de alta a las personas que llegan a una consulta. Se pedirá el nombre y la prioridad,
que podrá ser 1, 2 o 3.
2. Seleccionar la siguiente persona para ser atendida. El programa elegirá a la que tenga
mayor prioridad, y en caso de empate a la que haya llegado antes. El nombre de la persona
elegida será mostrado en pantalla y ésta será eliminada pues se supone que ya ha sido atendida.
3. Listar los nombres y prioridades de todas las personas que están esperando.*/
//Programa realizado por Noelia Sanz Peñas
#include <stdio.h>
#include <conio.h>
#include <string.h>
void menu();
void altas(struct urgencias *pac);
void siguiente(struct urgencias pac[]);
void listar(struct urgencias pac[]);
struct urgencias
{
char nombre[20];
int prioridad;
}pac[3];
//______________________________________________________________________________
int i=0;
void main()
{
int op;
char opc;
do
{
clrscr();
menu();
scanf("%d",&op);
switch(op)
{
case 1: do
{
altas(&pac[i]);
i++;
printf("nDesea introducir otro paciente?(S/N): ");
fflush(stdin);
opc=getche();
}while((opc=='s')||(opc=='S')&&(i<3));break;
case 2: siguiente(pac);break;
case 3: listar(pac);break;
}
}while(op!=4);
getch();
}
//______________________________________________________________________________
void menu()
{
printf("ttt M E N U");
printf("nttt_______________");
printf("nnttt1) AGREGAR PACIENTE A LA LISTA DE ESPERA");
printf("nttt2) SELECCIONAR AL SIGUIENTE PACIENTE EN SER ATENDIDO");
printf("nttt3) VER LISTA DE PACIENTES EN LISTA DE ESPERA");
printf("nttt4) SALIR");
printf("nntttElija una opcion: ");
}
//______________________________________________________________________________
void altas(struct urgencias *pac)
{
clrscr();
printf("ntttAGREGAR PACIENTE A LISTA DE ESPERA");
printf("ntt___________________________________________");
printf("nnttNOMBRE: ");
fflush(stdin);
gets(pac->nombre);
do{
printf("nttPRIORIDAD (1=MAX,2=MED,3=MIN)");
scanf("%d",&pac->prioridad);
}while((pac->prioridad<=0)||(pac->prioridad>3));
}
//______________________________________________________________________________
void siguiente(struct urgencias pac[])
{
struct urgencias pac2[3];
int max,pos=0,x=0,j=0;
max=pac[0].prioridad;
for(i=1;i<3;i++)
{
if((pac[i].prioridad<max)&&(pac[i].prioridad!=0))
{
max=pac[i].prioridad;
pos=i;
}
}
textcolor(3);
cprintf("Paciente seleccionado");
printf("n____________");
printf("nnPACIENTE %d",pos+1);
printf("nNOMBRE:%s",pac[pos].nombre);
printf("nPRIORIDAD: %d",pac[pos].prioridad);
i=0;
j=0;
do
{
if(i!=pos)
{
strcpy(pac2[j].nombre,pac[i].nombre);
pac2[j].prioridad=pac[i].prioridad;
j++;
}
i++;
}while(x<3);
for(x=0;x<3;x++)
{
strcpy(pac[i].nombre,pac2[i].nombre);
pac[i].prioridad=pac2[i].prioridad;
}
i--;
}
//______________________________________________________________________________
void listar (struct urgencias pac[])
{
int j;
clrscr();
for(j=0;j<i;j++)
{
printf("nnPACIENTE %d",j+1);
printf("n____________");
printf("nnNOMBRE: %s",pac[j].nombre);
printf("nPRIORIDAD: %d",pac[j].prioridad);
}
}
Me gustaria saber que me falla en este ejercicio si alguien me lo pudiera corregir antes del 24 de este mes se lo agradeceria mucho
gracias
espero respuestas
