[ Foro de C ]

Menu de clinica

03-Dec-2020 21:32
Esteban xd
0 Respuestas

Necesito ayuda, tengo que hacer que cada menu de paciente, empleado, y consulta al buscar despliegue un menu en donde de opcion al usuario a modificar los datos, alguien me ayudaria con eso, no se como hacerlo, aqui mi codigo:
Pd: El usuario es: ADMIN
y la contraseña: 123

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define usuario "ADMIN"
#define clave "123"
#define TAM 20

int opc,b;
int opcP=0,acumP=0,contP,bandP;//VARIABLES DE PACIENTES
int opcE=0,acumE=0,contE,bandE;//VARIABLES PARA EL EMPLEADO
int opcC=0,acumC=0,contC,bandC;
int opcM=0,acumM=0,contM,bandM;
int auxE;//VARIABLES PARA EMPLEADO
char auxP[30];
char auxC[40];

//ESTRUCTURAS DE CAPTURA
struct Alta_empleado{
   int numEmp;
   char nombre[50],fechaI[12],categoria[20],estudios[20],horario[10],ubicacion[20];
}empleados[TAM];

struct paciente{
   int edad,telefono;
   char sexo[10];
   char nombre[50],RFC[20],tipoPaci[20],CURP[25],domicilio[50];
}pacientes[TAM];
struct consulta{
   int talla,peso, presarte,periabd;
   char ID[40];
   char nommedic[50],RFC[20],fecha[20],sintpaci[100];
}consulta[TAM];
//FUNCIONES DE EMPLEADO Y MENU DE EMPLEADO
void captura_empleado()
{
   printf("\n\n\t * CAPTURA DE REGISTRO * ");
   do{
                       printf("\n\n\t Numero de empleado:");
scanf("%d",&empleados[acumE].numEmp);
                       for(int i=0;i<acumE;i++){
                       if(empleados[acumE].numEmp==empleados[i].numEmp){
                        b=1;
                        printf("\n\tel registro ya existe.");
                        system("cls");
                        break;
}else{
b=2;
}}

                       }while(b==1);
printf("\n\t Nombre:");
                       fflush(stdin);
                       gets(empleados[acumE].nombre);
                       printf("\n\t Fecha de ingreso:");
                       fflush(stdin);
                       gets(empleados[acumE].fechaI);
                       printf("\n\t Categoria:");
                       fflush(stdin);
                       gets(empleados[acumE].categoria);
                       printf("\n\t Estudios:");
                       fflush(stdin);
                       gets(empleados[acumE].estudios);
                       printf("\n\t Horario:");
                       fflush(stdin);
                       gets(empleados[acumE].horario);
                       printf("\n\t Ubicacion:");
                       fflush(stdin);
                       gets(empleados[acumE].ubicacion);
                       acumE++;
                       printf("\n\t");
                       system("PAUSE");
                       system("cls");
}
void mostrar_empleado()
{
   for(contE=0;contE<acumE;contE++){
           printf("\n\n\t * MOSTRAR REGISTRO * ");
           printf("\n\t Registro %d",contE+1);
           printf("\n\t Numero de empleado: %d",empleados[contE].numEmp);
           printf("\n\t Nombre: %s",empleados[contE].nombre);
           printf("\n\t Fecha de ingreso: %s",empleados[contE].fechaI);
           printf("\n\t Categoria: %s",empleados[contE].categoria);
           printf("\n\t Estudios: %s",empleados[contE].estudios);
           printf("\n\t Horario: %s",empleados[contE].horario);
           printf("\n\t Ubicacion: %s",empleados[contE].ubicacion);
   }
   printf("\n\t");
   system("PAUSE");
   system("cls");
}
void buscar_empleado()
{
 bandE=0;
           printf("\n\n\t * BUSCAR REGISTRO * ");
           printf("\n\n\t Ingresa el numero de empleado: ");
           fflush(stdin);
           scanf("%d",&auxE);
           for(contE=0;contE<acumE;contE++){
           if(auxE==empleados[contE].numEmp){
                   bandE+=1;                  //Aqui se comparan datos con la funcion strcmp
               printf("\n\t Registro %d",contE+1);
           printf("\n\t Numero de empleado: %d",empleados[contE].numEmp);
           printf("\n\t Nombre: %s",empleados[contE].nombre);
           printf("\n\t Fecha de ingreso: %s",empleados[contE].fechaI);
           printf("\n\t Categoria: %s",empleados[contE].categoria);
           printf("\n\t Estudios: %s",empleados[contE].estudios);
           printf("\n\t Horario: %s",empleados[contE].horario);
           printf("\n\t Ubicacion: %s",empleados[contE].ubicacion);
           submenu_buscar();
           }
           }
           if(bandE==0){
               printf("No existe en el registro\n\t");
           }
           printf("\n\t");
           system("PAUSE");
           system("cls");
}
int submenu_empleado()
{
   do{
   printf("\n\t1)Dar de alta empleado\n\t2)Visualizar empleado\n\t3)Buscar empleado\n\t0)Regresar al menu principal\n\t Opcion:");
   fflush(stdin);
   scanf("%d",&opcE);
   switch(opcE){
       case 0:{
    system("cls");
       }
       break;
       case 1:{
           captura_empleado();
       }
       break;
       case 2:{
           mostrar_empleado();
       }
       break;
       case 3:{
           buscar_empleado();

       }
       break;
   }
   }while(opcE!=0);
   return (opcE);

}
//MENUS
int menu_principal()
{
   printf("\n\t1)Empleado\n\t2)Paciente\n\t3)Consulta\n\t0)Salir\n\t Opcion:");
   scanf("%d",&opc);
   return(opc);
}
//capturar paciente
void captura_paciente()
{
printf("\n\n\t * CAPTURA DE REGISTRO * ");
                       printf("\n\t Nombre: ");
                       fflush(stdin);
                       gets(pacientes[acumP].nombre);
                        printf("\n\t edad: ");
                       fflush(stdin);
                       scanf("%d",&pacientes[acumP].edad);
                        printf("\n\t Sexo: ");
                       fflush(stdin);
                       gets(pacientes[acumP].sexo);
                       do{
printf("\n\n\t Numero de RFC: ");
fflush(stdin);
                       gets(pacientes[acumP].RFC);
                       for(int i=0;i<acumP;i++){
                       if(strcmp(pacientes[acumP].RFC,pacientes[i].RFC)==0){
                        b=1;
                        printf("\n\tEl RFC ya existe.");
                        system("cls");
                        break;
}else{
b=2;
}}

                       }while(b==1);
                       printf("\n\t Tipo de paciente: ");
                       fflush(stdin);
                       gets(pacientes[acumP].tipoPaci);
                       printf("\n\t CURP: ");
                       fflush(stdin);
                       gets(pacientes[acumP].CURP);
                       printf("\n\t Domicilio: ");
                       fflush(stdin);
                       gets(pacientes[acumP].domicilio);
                       printf("\n\t Telefono: ");
                       fflush(stdin);
                       scanf("%d",&pacientes[acumP].telefono);
                       acumP++;
}
//mostrar paciente
void mostrar_paciente()
{
   for(contP=0;contP<acumP;contP++){
           printf("\n\n\t * MOSTRAR REGISTRO * ");
           printf("\n\t Registro %d",contP+1);
           printf("\n\t Numero de nombre: %s",pacientes[contP].nombre);
           printf("\n\t Edad: %d",pacientes[contP].edad);
           printf("\n\t Sexo: %s",pacientes[contP].sexo);
           printf("\n\t Numero de RFC: %s",pacientes[contP].RFC);
           printf("\n\t Tipo de paciente: %s",pacientes[contP].tipoPaci);
           printf("\n\t CURP: %s",pacientes[contP].CURP);
           printf("\n\t Domicilio: %s",pacientes[contP].domicilio);
           printf("\n\t Telefono; %d", pacientes[contP].telefono);
   }
   printf("\n\t");
   system("PAUSE");
   system("cls");
}
//buscar paciente
void buscar_paciente()
{
 bandP=0;
           printf("\n\n\t * BUSCAR REGISTRO * ");
           printf("\n\n\t Ingresa el RFC del paciente a buscar: ");
           fflush(stdin);
           gets(auxP);
           for(contP=0;contP<=acumP;contP++){
           if(strcmp(auxP,pacientes[contP].RFC)==0){
                   bandP+=1;                  //Aqui se comparan datos con la funcion strcmp
                printf("\n\t Registro %d",contP+1);
           printf("\n\t Numero de nombre: %s",pacientes[contP].nombre);
           printf("\n\t Edad: %d",pacientes[contP].edad);
           printf("\n\t Sexo: %s",pacientes[contP].sexo);
           printf("\n\t Numero de RFC: %d",pacientes[contP].RFC);
           printf("\n\t Tipo de paciente: %s",pacientes[contP].tipoPaci);
           printf("\n\t CURP: %s",pacientes[contP].CURP);
           printf("\n\t Domicilio: %s",pacientes[contP].domicilio);
           printf("\n\t Telefono; %d\n", pacientes[contP].telefono);

           }
           }
           if(bandP==0){
               printf("No existe en el registro\n\t");
           }
           printf("\n\t");
           system("PAUSE");
           system("cls");
}
//Clientes
int submenu_paciente()
{do{
system("cls");
   printf("\n\t1)Dar de alta paciente\n\t2)Visualizar pacientes\n\t3)Buscar paciente\n\t0)Regresar al menu principal\n\t Opcion:");
   fflush(stdin);
   scanf("%d",&opcP);
   switch(opcP){
       case 0:{
    system("cls");
       }
       break;
       case 1:{
           captura_paciente();
       }
       break;
       case 2:{
           mostrar_paciente();
       }
       break;
       case 3:{
           buscar_paciente();
       }
       break;
   }
   }while(opcP!=0);
   return (opcP);
}


//CONSULTAS
void captura_consulta()
{
printf("\n\n\t * CAPTURA DE REGISTRO * ");
                       printf("\n\t ID: ");
                       fflush(stdin);
                       gets(consulta[acumC].ID);
                        printf("\n\t RFC (registrado): ");
                       fflush(stdin);
                       gets(consulta[acumC].RFC);
                       for(int i=0;i<=acumC;i++){
                       if(strcmp(consulta[acumC].RFC,pacientes[i].RFC)==0){
                        b=1;

                        break;
}else{
b=3;
printf("\n\tEl RFC no existe.");
getch();
                        system("cls");

}}
                       if(b==1){
                        printf("\n\t Nombre del medico (registrado): ");
                        fflush(stdin);
                        gets(consulta[acumC].nommedic);
                        for(int i=0;i<=acumE;i++){
                       if(strcmp(consulta[acumC].nommedic,empleados[i].nombre)==0){
                        b=1;

                        break;
}else{
b=3;
printf("\n\tEl registro no esta en existencia.");
getch();
                        system("cls");

}}
                       if(b==1){
                        printf("\n\t FECHA (dd//mm//aaaa): ");
                        fflush(stdin);
                        gets(consulta[acumC].fecha);
                        printf("\n\t TALLA: ");
                        fflush(stdin);
                        scanf("%d",&consulta[acumC].talla);
                        printf("\n\t PESO: ");
                        fflush(stdin);
                        scanf("%d",&consulta[acumC].peso);
                        printf("\n\t Presion arterial: ");
                        fflush(stdin);
                        scanf("%d",&consulta[acumC].presarte);
                        printf("\n\t Perimetro abdominal: ");
                        fflush(stdin);
                        scanf("%d",&consulta[acumC].periabd);
                        printf("\n\t Sintomas del paciente: ");
                        fflush(stdin);
                        gets(consulta[acumC].sintpaci);
                        acumC++;}}
}
//mostrar paciente
void mostrar_consulta()
{
   for(contC=0;contC<acumC;contC++){
           printf("\n\n\t * MOSTRAR REGISTRO * ");
           printf("\n\t Registro %d",contC+1);
           printf("\n\t ID: %s",consulta[contC].ID);
           printf("\n\t RFC: %s",consulta[contC].RFC);
           printf("\n\t Nombre del medico: %s",consulta[contC].nommedic);
           printf("\n\t Fecha: %s",consulta[contC].fecha);
           printf("\n\t Talla: %d",consulta[contC].talla);
           printf("\n\t Peso: %d",consulta[contC].peso);
           printf("\n\t Presion arterial: %d",consulta[contC].presarte);
           printf("\n\t Perimetro abdominal: %d", consulta[contC].periabd);
           printf("\n\t Sintomas del paciente: %s", consulta[contC].sintpaci);
   }
   printf("\n\t");
   system("PAUSE");
   system("cls");
}
//buscar paciente
void buscar_consulta()
{
 bandC=0;
           printf("\n\n\t * BUSCAR REGISTRO * ");
           printf("\n\n\t Ingresa el ID del paciente a buscar: ");
           fflush(stdin);
           gets(auxC);
           for(contC=0;contC<=acumC;contC++){
           if(strcmp(auxC,consulta[contC].ID)==0){
                   bandC+=1;                  //Aqui se comparan datos con la funcion strcmp
             printf("\n\n\t * REGISTRO * ");
           printf("\n\t Registro %d",contC+1);
           printf("\n\t ID: %s",consulta[contC].ID);
           printf("\n\t RFC: %s",consulta[contC].RFC);
           printf("\n\t Nombre del medico: %s",consulta[contC].nommedic);
           printf("\n\t Fecha: %s",consulta[contC].fecha);
           printf("\n\t Talla: %d",consulta[contC].talla);
           printf("\n\t Peso: %d",consulta[contC].peso);
           printf("\n\t Presion arterial: %d",consulta[contC].presarte);
           printf("\n\t Perimetro abdominal: %d", consulta[contC].periabd);
           printf("\n\t Sintomas del paciente: %s", consulta[contC].sintpaci);
           submenu_buscar();
           }
           }
           if(bandC==0){
               printf("No existe en el registro\n\t");
           }
           printf("\n\t");
           system("PAUSE");
           system("cls");
}

void modificar_consulta()
{
   int indice_modificado,modifica;
printf("\n\t Nombre del medico (registrado): ");
fflush(stdin);
scanf("%i",&indice_modificado);
printf("\n\tDeseas modificar:\n\t1)Nombre del empleado\n\t2)Fecha de ingreso\n\t3)Categoria\n\t4)Estudios\n\t5)Horario\n\t6)Ubicacion");
printf("\n\tOpcion: ");
fflush(stdin);
scanf("%i",&modifica);
switch(modifica)
{
case 1:printf("\n\tEl nombre del empleado: ");
      fflush(stdin);
  gets(empleados[indice_modificado-1].nombre);
      break;
case 2:printf("\n\tFecha de ingreso: ");
  fflush(stdin);
  gets(empleados[indice_modificado-1].fechaI);
      break;
case 3:printf("\n\Categoria: ");
      fflush(stdin);
  gets(empleados[indice_modificado-1].categoria);
      break;
case 4:printf("\n\tEstudios: ");
      fflush(stdin);
  gets(empleados[indice_modificado-1].estudios);
      break;
case 5:printf("\n\tHorario: ");
      fflush(stdin);
  gets(empleados[indice_modificado-1].horario);
      break;
case 6:printf("\n\tUbicacion: ");
      fflush(stdin);
  gets(empleados[indice_modificado-1].ubicacion);
      break;
default:printf("\n\tOpcion equivocada \n");
}
           }


int submenu_buscar()
{do{
system("cls");
   printf("\n\t1)Modificar datos del empleado\n\t2)Modificar datos del paciente\n\t1)Modificar datos de la consulta\n\t0)Regresar al menu anterior\n\t Opcion:");
   fflush(stdin);
   scanf("%d",&opcM);
   switch(opcM){
       case 1:{
           modificar_consulta();
    system("cls");
       }
       break;
       case 0:{
           submenu_consulta();
       }
       break;
       default:

       break;
   }
   }while(opcM!=0);
   return (opcM);
}

//Clientes
int submenu_consulta()
{do{
system("cls");
   printf("\n\t1)Anotar consulta\n\t2)Visualizar Consultas\n\t3)Buscar consultas\n\t0)Regresar al menu principal\n\t Opcion:");
   fflush(stdin);
   scanf("%d",&opcC);
   switch(opcC){
       case 0:{
    system("cls");
       }
       break;
       case 1:{
           captura_consulta();
       }
       break;
       case 2:{
           mostrar_consulta();
       }
       break;
       case 3:{
           buscar_consulta();
       }
       break;
   }
   }while(opcC!=0);
   return (opcC);
}

//FUNCION PRINCIPAL.
int main()
{
   char usuario2[7];
   char clave2[4];
   char caracter;
   int i,bandera,intentos,c=0;
   int Salir=1,p,e;
   do{
           i=0;
   printf("\n\tIngrese su usuario:");
   fflush(stdin);
   scanf("%s",&usuario2);
   printf("\n\tIngrese su clave: ");
   while(caracter=getch()){
       if(caracter== 13){
           clave2[i]='\0';
           break;
       }
       else{
           printf("*");
           clave2[i]=caracter;
           i++;
       }
   }
   if(strcmp(clave2, clave)== 0 && strcmp(usuario2,usuario)==0){
       bandera=1;
       break;
   }
   else{
       printf("\n\tUsuario o contrase%ca incorrecta\n\t",164);
       intentos++;
       bandera=0;
       getchar();
       fflush(stdin);
       }
   }while(intentos<3);

   if(bandera==1){
    for(c=0,p=0,e=0;Salir==1;){
    system("cls");
       printf("\n\tBienvenido, eliga una opcion:");
       menu_principal();
    system("cls");
       switch(opc){
           case 1:{
               system("cls");
               submenu_empleado();
           }
           break;
           case 2:{
            system("cls");
            submenu_paciente();
               break;
           }
           case 3:{
               system("cls");
           submenu_consulta();
               break;
           }
           case 0:{
               printf("\n\t *ADIOS*");
               Salir=0;}
               break;
           }
       }
   }

   else
   printf("\n\t Tus intentos se acabaron.");

   return 0;
}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)