Ir ao conteúdo
  • Cadastre-se

C Trabalho PimIV cadastro de pacientes


Fabi66

Posts recomendados

Boa noite, alguém me da uma ajudinha nesse trabalho ficaram faltando algumas coisas e estou com dificuldade para conseguir inserir no trabalho, eu teria que calcular a idade baseado na data de nascimento e se a idade for 65> é grupo de risco eu teria que fazer uma ficha com o cep baseado no endereço idade e comorbidade. 

 

 

<

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

#include <string.h>



int opcao = 0;



void tela_login() {

    char login[15] = "2264585";

    char login1[15];

    char senha[15] = "2264585";

    char senha1[15];

    int login_efetuado = 0;



    while(!login_efetuado){

        printf("LOGIN: \n");

        scanf("%s", login1);



        printf("SENHA: \n");

        scanf("%s", senha1);



        if (strcmp(login, login1) == 0 && strcmp(senha, senha1) == 0) {

            printf("\n\nLOGADO!\n\n");

            login_efetuado = 1;

        }

        else {

            printf("\n\nDADOS INVALIDOS!\n\n");

        }

    }

}



void mostrar_menu(){

    printf("*************\n\n");

    printf("***SEJA BEM-VINDO***\n\n");

    printf("*************\n\n");

    printf("1) - CADASTRO DE PACIENTES\n");

    printf("2) - SAIR DO SISTEMA\n\n");

    printf("DIGITE A OPCAO DESEJADA: ");

    scanf("%d", &opcao);



    getchar();

}



char *remove_nova_linha(char *texto) {

    char *pos;

    if ((pos=strchr(texto, '\n')) != NULL)

        *pos = '\0';



    return texto;

}



void verificar_grupo_risco(char *data_de_nascimento, char *comorbidade, char *endereco) {

    if (strcmp(comorbidade, "") == 0)

        return;



    // TODO: Calcular a idade

    int idade = 0;



    // TODO: pegar o CEP do endereco

    char cep[20] = "";

    if (idade > 65) {

        FILE *ponteiro = fopen("grupo_risco.txt","a+");

        fprintf(ponteiro, "%d, %s\n", idade, cep);

        fclose(ponteiro);

    }

}



void cadastro_pacientes(){

    char nome[255];

    char cpf[255];

    char telefone[255];

    char endereco[255];

    char data_de_nascimento[255];

    char email[255];

    char data_do_diagnostico[255];

    char comorbidade[255];

    int contador;

    FILE *ponteiro;



    printf("\n\nAdicione os dados do Cliente\n");



    ponteiro = fopen("pacientes.txt","a+");



    do{

        printf("Digite o nome do Paciente: \n");

        fgets(nome, 255, stdin);



        printf("Digite o CPF do Paciente: \n");

        fgets(cpf, 255, stdin);



        printf("Digite o Telefone do Paciente: \n");

        fgets(telefone, 255, stdin);



        printf("Digite o Endereco do Paciente: \n");

        fgets(endereco, 255, stdin);



        printf("Digite a Data de Nascimento do Paciente: \n");

        fgets(data_de_nascimento, 255, stdin);



        printf("Digite o Email do Paciente: \n");

        fgets(email, 255, stdin);



        printf("Digite a Data do Diagnostico do Paciente: \n");

        fgets(data_do_diagnostico, 255, stdin);



        printf("Digite a Comorbidade do Paciente: \n");

        fgets(comorbidade, 255, stdin);



        printf("Deseja cadastrar mais Paciente? Digite 1 (SIM), Digite qualquer numero (não): \n");

        scanf("%d", &contador);



        fprintf(ponteiro, "Paciente: %s, ", remove_nova_linha(nome));

        fprintf(ponteiro, "CPF: %s, ", remove_nova_linha(cpf));

        fprintf(ponteiro, "Telefone: %s, ", remove_nova_linha(telefone));

        fprintf(ponteiro, "Endereço: %s, ", remove_nova_linha(endereco));

        fprintf(ponteiro, "Data de Nascimento: %s, ", remove_nova_linha(data_de_nascimento));

        fprintf(ponteiro, "Email: %s, ", remove_nova_linha(email));

        fprintf(ponteiro, "Data do Diagnóstico: %s, ", remove_nova_linha(data_do_diagnostico));

        fprintf(ponteiro, "Comorbidade: %s\n", remove_nova_linha(comorbidade));



        verificar_grupo_risco(data_de_nascimento, comorbidade, endereco);

        /*

            calcular a idade do paciente

            verifique se possui comorbidade

            verifique se é 65+



            salva em um arquivo de texto o CEP e a idade

        */

    }while(contador == 1);



    fclose(ponteiro);



    system("pause");

}



void cadastro_corretores(){

    printf("\n\nAdicione os dados do Corretor\n");

}



int main() {

    setlocale(LC_ALL, "");



    tela_login();



    mostrar_menu();



    switch (opcao) {

        case 1: // Gravar Pacientes

            cadastro_pacientes();

            break;



        case 2: // Sair

            break;



        default:

            printf("Opção Invalida!");

            break;

    }



    return 0;

}

>

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Fabi66 @Fabi66    para calcular a idade você subtrai a data de nascimento da Data Atual ,  usando a função 

 #include   <time.h>
 char string[9] = {""}; /// 8 espacos para a Data e um para o '\0' finalizador de string  
 _strdate( string );    /// pega a data atual e no idioma inglês

e essa setlocale , costuma não funcionar bem   não  ,   e você está armazenando os dados em string's simples e gravando direto no arquivo ,  mas se você quiser mostrar esses dados terá muito trabalho ,  e se for modificar ou excluir algum deles , mais difícil ainda  , e de modo simples para um iniciante você poderia usar essa mesmas variáveis como sendo matriz de string's ,  assim esses dados ficariam armazenados nas matrizes , e você pode modificar  alguma coisa mais facilmente ,  e no final , quando for sair do programa ,  faz a gravação no arquivo .

e um modo mais avançado  você pode usar struct ou typedef struct  :

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
typedef struct
{
  char nome               [255];
  char cpf                [255];
  char telefone           [255];
  char endereco           [255];
  char data_de_nascimento [255];
  char email              [255];
  char data_do_diagnostico[255];
  char comorbidade        [255];
  int  contador;
} Dados;
/// int opcao = 0;
int tela_login()
{
  char login[15] = "2264585";
  char login1[15];
  char senha[15] = "2264585";
  char senha1[15];
  int login_efetuado = 0;
  while( login_efetuado == 1 )
  {
    printf("LOGIN: \n");
    scanf("%s", login1);
    printf("SENHA: \n");
    scanf("%s", senha1);
    if (strcmp(login, login1) == 0 && strcmp(senha, senha1) == 0)
    {
      printf("\n\nLOGADO!\n\n");
      login_efetuado = 1;
    }
    else
    {
      printf("\n\nDADOS INVALIDOS!\n\n");
    }
  }
  return login_efetuado;
}
int mostrar_menu()
{
  int opcao = 0;
  printf(
    "           **************     \n"
    "       *** SEJA BEM-VINDO *** \n"
    "       ********************** \n"
    " 0 ) - MOSTRAR DADOS          \n"
    " 1 ) - CADASTRO DE PACIENTES  \n"
    " 2 ) - SAIR DO SISTEMA        \n"
    "       DIGITE A OPCAO DESEJADA: ");
  scanf("%d", &opcao);
  getchar();
  return opcao;
}
char *remove_nova_linha(char *texto)
{
  char *pos;
  if ((pos=strchr(texto, '\n')) != NULL)
    *pos = '\0';
  return texto;
}
void verificar_grupo_risco(char *data_de_nascimento, char *comorbidade, char *endereco , int idade )
{
  if (strcmp(comorbidade, "") == 0 )
    return;
  // TODO: Calcular a idade
  ///  int idade = 0;
  // TODO: pegar o CEP do endereco
  char cep[20] = "";
  if (idade > 65) /// idade maior de 65
  {
    FILE *ponteiro = fopen("grupo_risco.txt","a+");
    fprintf(ponteiro, "%d, %s\n", idade, cep);
    fclose(ponteiro);
  }
}
void cadastro_pacientes(char data_Atual[])
{
  char nome               [255];
  char cpf                [255];
  char telefone           [255];
  char endereco           [255];
  char data_de_nascimento [255];
  char email              [255];
  char data_do_diagnostico[255];
  char comorbidade        [255];
  int  contador                ;
  int idade                 = 0;
  FILE *ponteiro;
  char d[3];
  char m[3];
  char a[5];
  d[0] = data_Atual[3];
  d[1] = data_Atual[4];
  d[2] = 0            ;
  m[0] = data_Atual[0];
  m[1] = data_Atual[1];
  m[2] = 0            ;
  a[0] = '2'          ;
  a[1] = '0'          ;
  a[2] = data_Atual[6];
  a[3] = data_Atual[7];
  a[4] = 0            ;
  int dia = atoi   (d);
  int mes = atoi   (m);
  int ano = atoi   (a);
  printf( "\n\tData AtuaL Em PortuguEs => %d / %d / %d", dia,mes,ano);
  printf("\n\n Adicione os dados do Cliente\n");
  ponteiro = fopen("pacientes.txt","a+");
  if( ponteiro == NULL )
    ponteiro = fopen( "pacientes.txt", "w" );
  while(fscanf( ponteiro, "%s%s%s%s%s%s%s%s", nome, cpf,
                telefone, endereco, data_de_nascimento, email,
                data_do_diagnostico,    comorbidade )  !=  EOF  )
    contador++                                         ;
  do
  {
    printf( " Digite o nome do Paciente -------------------------: " );
    fgets ( nome, 255, stdin                                         );
    printf( " Digite o CPF do Paciente --------------------------: " );
    fgets ( cpf, 255, stdin                                          );
    printf( " Digite o Telefone do Paciente ---------------------: " );
    fgets ( telefone, 255, stdin                                     );
    printf( " Digite o Endereco do Paciente ---------------------: " );
    fgets ( endereco, 255, stdin                                     );
    printf( " Digite a Data de Nascimento do Paciente (ddmmaaa) -: " ); /// 8 numeros 2 para dia 2 para mes 4 para ano tudo junto sem espaCo
    fgets ( data_de_nascimento, 255, stdin                           );
    printf( " Digite o Email do Paciente ------------------------: " );
    fgets ( email, 255, stdin                                        );
    printf( " Digite a Data do Diagnostico do Paciente ----------: " );
    fgets ( data_do_diagnostico, 255, stdin                          );
    printf( " Digite a Comorbidade do Paciente ------------------: " );
    fgets ( comorbidade, 255, stdin                                  );
    printf( " Deseja cadastrar mais Paciente ? ------------------: "
    "\n Digite 1 (SIM), Digite qualquer numero (não) ------: "       );
    scanf("%d", &contador);
    fprintf(ponteiro, "Paciente ----------------------: %s, ", remove_nova_linha(nome               ));
    fprintf(ponteiro, "CPF ---------------------------: %s, ", remove_nova_linha(cpf                ));
    fprintf(ponteiro, "Telefone ----------------------: %s, ", remove_nova_linha(telefone           ));
    fprintf(ponteiro, "Endereço ----------------------: %s, ", remove_nova_linha(endereco           ));
    fprintf(ponteiro, "Data de Nascimento (ddmmaaaa) -: %s, ", remove_nova_linha(data_de_nascimento ));
    fprintf(ponteiro, "Email -------------------------: %s, ", remove_nova_linha(email              ));
    fprintf(ponteiro, "Data do Diagnóstico -----------: %s, ", remove_nova_linha(data_do_diagnostico));
    fprintf(ponteiro, "Comorbidade -------------------: %s\n", remove_nova_linha(comorbidade        ));
                       /// calcular a idade do paciente
    char ano_nasc[5]; 
    ano_nasc[0] = data_de_nascimento[4];
    ano_nasc[1] = data_de_nascimento[5];
    ano_nasc[2] = data_de_nascimento[6];
    ano_nasc[3] = data_de_nascimento[7];
    ano_nasc[4] = 0                    ;
    idade = ano - atoi( ano_nasc      );
    printf("\n Idade Do PacienTe = %d\n\n" , idade  );
                       /// verifique se possui comorbidade
                       /// verifique se é 65+
                       /// salva em um arquivo de texto o CEP e a idade
    verificar_grupo_risco(data_de_nascimento, comorbidade, endereco , idade );
  } while(contador == 1);
  fclose(ponteiro);
  system("pause");
}
void cadastro_corretores()
{
  printf("\n\nAdicione os dados do Corretor\n");
}
int main()
{
  setlocale(LC_ALL, "");
  printf ("Localidade corrente dessa Regiao: %s\n", setlocale(LC_ALL,NULL) );
  char dateStr[9];    // a data tem 6 dígitos e mais 2 barras e hum '\0' fim de string
  char timeStr[9];
  _strdate( dateStr); /// pega a data atual
  printf("\n\t\tData Atual Em inglês ==> %s\n\n\n",dateStr);
  int ret = tela_login();
  int opcao = mostrar_menu();
  switch (opcao)
  {
  case 1: // Gravar Pacientes
    cadastro_pacientes(dateStr);
    break;
  case 2: // Sair
    break;
  default:
    printf("Opção Invalida!");
    break;
  }
  return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!