Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Oscaro55443

#1
main.c
#include"menu.h"
#include<locale.h>
#include<stdlib.h>
#include<string.h>

int main() {
   //setlocale(LC_CTYPE,"Spanish");
   
    int *contadorindice;
    int opcion;
    int bfolio;
    Paciente *pacientes;
   //Asignación memoria dinámica
   if(pacientes==NULL)
   {
   printf("memoria de espacio no asginada");
   }
   else{
   pacientes=(Paciente *)malloc(MAX_PA*sizeof(Paciente));
   pacientes[*contadorindice].nombrepa->apellidopapaciente=(char *)malloc(MAX_TEXTO*sizeof(char));
   pacientes[*contadorindice].nombrepa->nombrepaciente=(char *)malloc(MAX_TEXTO*sizeof(char));
   pacientes[*contadorindice].nombrepa->apellidomapaciente=(char*)malloc(MAX_TEXTO*sizeof(char));
   pacientes[*contadorindice].estatus->motivo=(char *)malloc(MAX_MOTIVO*sizeof(char));
   pacientes[*contadorindice].genero=(char*)malloc(MAX_TEXTO*sizeof(char));
   
   do {
   
       printf("Ingrese una opcion\n\n");
        printf("1)Registrar paciente\n2)Listar pacientes\n3)Busqueda de paciente por clave\n4)Borrar paciente\n5)Actualizar datos\n6)Triage\n7)Salir\nOpcion:");
        scanf("%i",&opcion);
        system("cls");
        switch (opcion) {
            fflush(stdin);
            case 1: {
               capturarPaciente(contadorindice,pacientes);
                  printf("indice: %i",*contadorindice);
               system("pause");
              system("cls");
               break;
            }
               
            case 2: {
                fflush(stdin);
                listarPaciente(contadorindice, pacientes);
                system("pause");
              system("cls");
                }
                break;
           case 3:{
                 printf("\nIngrese el folio del paciente que desea buscar: ");
               scanf("%i",&bfolio);
               busquedaPacientefo(bfolio,pacientes);
               system("pause");
              system("cls");
               }
               break; 
           case 6:{
              char archivotriage[100]="triage.txt",linea[1000];
              FILE *archivo;
              archivo=fopen(archivotriage,"r");
              while(!feof(archivo)){
                 printf("%s",fgets(linea,999,archivo));
              }
              system("pause");
              system("cls");
              break;
           }
           case 5:{
              printf("\nIngrese el folio del paciente que desea actualizar: ");
               scanf("%i",&bfolio);
               //MenuactualizarPaciente(*paciente, bfolio);
              break;
           }
           case 4:{
              printf("\nIngrese el folio del paciente que desea borrar: ");
              scanf("%i",&bfolio);
              borrarPaciente(bfolio,contadorindice,pacientes);   
              break;
           }
           case 7:{
              printf("Hasta la proxima\n");
              break;
           }
           
    }
   }while (opcion != 7);
   
      free(pacientes->genero);
      free(pacientes[*contadorindice].estatus->motivo);
      free(pacientes[*contadorindice].nombrepa->apellidomapaciente);
      free(pacientes[*contadorindice].nombrepa->nombrepaciente);
      free(pacientes[*contadorindice].nombrepa->apellidopapaciente);
      free (pacientes);
   
   contadorindice=NULL;
   pacientes=NULL;

   return 0;
   }
}

paciente.h
#ifndef paciente_h
#define paciente_h
#define MAX_TEXTO 30
#define MAX_PA 5
#define MAX_MOTIVO 300
//Variables

//prototipos
typedef struct {
   int mes;
    int dia;
    int ano;
}Fecha;
typedef struct{
   int horai;
   int minutosi;
}Hora;

typedef struct {
   char *nombrepaciente;
   char *apellidopapaciente;
   char *apellidomapaciente;
}Nombrepa;

typedef struct{
   int peso;
   char *motivo;
}Estatus;

typedef struct {
    int edad;
    char *genero;
    int folio;
    int contadorindice;
    Estatus *estatus;
    Nombrepa *nombrepa;
    Fecha fecha;
    Hora hora;
   
} Paciente;
void capturarPaciente (int *contadorindice,Paciente *paciente);
void listarPaciente (int *contadorindice,Paciente *paciente);
void busquedaPacientefo(int b,Paciente *paciente);
void MenuactualizarPaciente(Paciente paciente,int b);
void borrarPaciente(int b,int *contadorindice,Paciente *paciente);
//void actualizarPacienteInt(int *b,Paciente *paciente);
//void actualizarPacienteChar();


#endif /* paciente_h */

paciente.c
#include <stdio.h>
#include "paciente.h"
#include<string.h>
#include<stdlib.h>

void capturarPaciente (int *contadorindice,Paciente *paciente){
   
    printf ("Folio: \n");
    scanf ("%i",&paciente[*contadorindice].folio);
    printf ("Nombre: \n");
    scanf ("%s", paciente[*contadorindice].nombrepa->nombrepaciente);
    printf ("Apellido paterno: \n");
    scanf ("%s", paciente[*contadorindice].nombrepa->apellidopapaciente);
    printf ("Apellido materno: \n");
    scanf ("%s", paciente[*contadorindice].nombrepa->apellidomapaciente);
    printf("Genero: \n");
    scanf("%s",paciente[*contadorindice].genero);
    printf ("Edad: \n");
    scanf ("%i",&paciente[*contadorindice].edad);
    printf ("Dia de ingreso: \n");
    scanf ("%i", &paciente[*contadorindice].fecha.dia);
    printf ("Mes de ingreso: \n");
    scanf ("%i", &paciente[*contadorindice].fecha.mes);
   printf ("Año de ingreso: \n");
    scanf ("%i", &paciente[*contadorindice].fecha.ano);
    printf ("Hora de ingreso: \n");
    scanf ("%i", &paciente[*contadorindice].hora.horai);
   printf ("Minutos: \n");
    scanf ("%i", &paciente[*contadorindice].hora.minutosi);
    printf("Breve explicacion del motivo de la visita del paciente\n");
    fflush(stdin);
    gets(paciente[*contadorindice].estatus->motivo);
       printf("indice: %i",*contadorindice);
    (*contadorindice)++;
       printf("indice: %i",*contadorindice);
}
void listarPaciente (int *contadorindice,Paciente *paciente){
    int i;
    for (i=0;i<*contadorindice;i++){
    printf ("Folio: %i \nNombre del paciente: %s %s %s\nGenero: %s\nEdad: %i\nDia de ingreso: %i/%i/%i \nHora de ingreso: %i:%i\n\n",
            paciente->folio, paciente->nombrepa->nombrepaciente, paciente->nombrepa->apellidopapaciente ,paciente->nombrepa->apellidomapaciente
         ,paciente->genero,paciente->edad,paciente->fecha.dia,paciente->fecha.mes,paciente->fecha.ano,paciente->hora.horai,paciente->hora.minutosi );
            paciente++;
            }//para arreglo de pacientes

}

void busquedaPacientefo(int b,Paciente *paciente){
   int i;

   for(i=0;i<MAX_PA+1;i++,paciente++){
      if(b==paciente->folio){
         printf ("Folio: %i \nNombre del paciente: %s %s %s\nGenero: %s\nEdad: %i\nDia de ingreso: %i/%i/%i \nHora de ingreso: %i:%i\nMotivo por el que ingresó:\n %s\n",
            paciente->folio, paciente->nombrepa->nombrepaciente, paciente->nombrepa->apellidopapaciente ,paciente->nombrepa->apellidomapaciente
         ,paciente->genero,paciente->edad,paciente->fecha.dia,paciente->fecha.mes,paciente->fecha.ano,paciente->hora.horai,paciente->hora.minutosi,paciente->estatus->motivo );
         
       }
   }
   printf("\nEste paciente no se encuentra en la sala de urgencias\n");
}
void MenuactualizarPaciente(Paciente *paciente,int b){
   int i,opcionact;
   int nuevodatoint;
   char nuevodatochar[MAX_TEXTO];
   
   printf("\n¿Que dato desea modificar?");
   printf("\n1)Edad");
   printf("\n2)Nombre");
   printf("\n3)Apellido Paterno");
   printf("\n4)Apellido Materno");
   printf("\n5)Genero\n");
   scanf("%i",&opcionact);
   system("cls");
   switch(opcionact){
      case 1:{
         printf("\nIngrese el nuevo dato\n");
         scanf("%i",&nuevodatoint);
         for(i=0;i<MAX_PA+1;i++,paciente++){
            if(b==paciente->folio){
               paciente.edad=nuevodatoint;
            }
         system("cls");
         }
         break;
      }
      case 2:{
         printf("\nIngrese el nuevo dato\n");
         scanf("%s",nuevodatochar);
         for(i=0;i<MAX_PA+1;i++,paciente++){
            if(b==paciente->folio){
               strcpy(paciente.nombrepa->nombrepaciente,nuevodatochar);
            }
         system("cls");
         }
         break;
      }
      case 3:{
         printf("\nIngrese el nuevo dato\n");
         scanf("%s",nuevodatochar);
         for(i=0;i<MAX_PA+1;i++,paciente++){
            if(b==paciente->folio){
               strcpy(paciente.nombrepa->apellidopapaciente,nuevodatochar);
            }
         system("cls");
         }
         break;
      }
      case 4:{
         printf("\nIngrese el nuevo dato\n");
         scanf("%s",nuevodatochar);
         for(i=0;i<MAX_PA+1;i++,paciente++){
            if(b==paciente->folio){
               strcpy(paciente.nombrepa->apellidomapaciente,nuevodatochar);
            }
         system("cls");
         }
         break;
      }
      case 5:{
         printf("\nIngrese el nuevo dato\n");
         scanf("%s",nuevodatochar);
         for(i=0;i<MAX_PA+1;i++,paciente++){
            if(b==paciente->folio){
               strcpy(paciente.genero,nuevodatochar);
            }
         system("cls");
         }
         break;
      }
      
   }
   
}
void borrarPaciente(int b,int *contadorindice,Paciente *paciente){//pequeño fallo al querer borrar el 2 paciente de 3
   int i;
   Paciente aux;
   printf("indice: %i",*contadorindice);
   for(i=0;i<MAX_PA+1;i++,paciente++){
      if(b==paciente->folio){
         aux=paciente;
         paciente=paciente[*contadorindice-1];
            printf("indice: %i",*contadorindice);
         (*contadorindice)--;
            printf("indice: %i",*contadorindice);
         printf("\nPaciente con folio %i fue borrado\n",b);
         system("pause");
         system("cls");
      }
   }
   
}