Ir ao conteúdo
  • Cadastre-se

C Cadastro de Pacientes! Trabalho PIM


Roberto Montoni

Posts recomendados

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<locale.h>
#include<string.h>
#include<conio.h>

typedef struct Paciente{
    char nome[50];
    char cpf[50];
    char sexo[20];
    char comorbidades[500];
    int telefone;
    int idade;
    int codi;
    int urg;
    struct Paciente *prox;

}paciente;

typedef struct Listas{
    int qnt;
    struct Paciente *head;
}listas;

typedef struct Arvore{
    struct Paciente *No;
    struct Arvore *Esq;
    struct Arvore *Dir;
}arvore;

int pacientes = 0;

void adicionar(arvore **Arv, paciente *tmp);

listas* inicializarLista(){
    listas *tmp = (listas*)malloc(sizeof(listas));
    tmp->qnt = 0;
    tmp->head = NULL;
    return tmp;
}
//Cadastra os Eletronicos no estoque
void cadastrar_paciente(listas *tmp, arvore *Arv){
      int op_cadastro_paciente = 0;

    printf("\t\t-------------------------CADASTRO-------------------------\n\n");
    do{
        system("cls");
        paciente *aux = (paciente *)malloc(sizeof(paciente));
        printf("\tInforme o nome do paciente\n");
        printf("\tNome: ");
        fflush(stdin);
        gets(aux->nome);
        fflush(stdin);

        printf("\n\tInforme o CPF do paciente\n");
        printf("\tCPF: ");
        scanf("%s", aux->cpf);

        printf("\n\tInforme o telefone do paciente\n");
        printf("\tTelefone: ");
        scanf("%d", &aux->telefone);

        printf("\n\tInforme a idade do paciente\n");
        printf("\tIdade: ");
        scanf("%d", &aux->idade);


        printf("\n\tInforme o sexo do paciente\n");
        printf("\tSexo [M]-[F]: ");
        fflush(stdin);
        scanf("%s", aux->sexo);
        fflush(stdin);

        printf("\n\tInforme as comorbidades do paciente\n");
        printf("\tComorbidades: ");
        fflush(stdin);
        gets(aux->comorbidades);
        fflush(stdin);


        printf("\n\tInforme a urgencia do paciente [de 1 (Mais urgente) a 20 (Menos urgente)]\n");
        printf("\tUrgencia: ");
        scanf("%d", &aux->urg);
        printf("\n\n");


        printf("\n\tInforme o código do paciente\n");
        printf("\tCódigo: ");
        scanf("%d", &aux->codi);
        printf("\n\n");

        //Salva os dados dos Pacientes em TXT
        FILE *paci;
        paci = fopen("Dados_Pacientes.txt", "a+");
        fprintf(paci,"Nome: %s -> CPF: %s -> Sexo: %s -> Idade: %d -> Telefone: %d -> Código: %d\n", aux->nome, aux->cpf, aux->sexo, aux->idade, aux->telefone, aux->codi);
          fclose(paci);

          FILE *sint;
          sint = fopen("Comorbidades.txt", "a+");
          fprintf(sint,"Nome: %s\nIdade: %d\nComorbidades: %s\n", aux->nome,aux->idade, aux->comorbidades);
          fprintf(sint,"----------------------------------------------------------------\n");
        fclose(sint);

        adicionar(&Arv, aux);

        aux->prox = tmp->head;
        tmp->head = aux;
        tmp->qnt++;


        printf("1-Novo cadastro\n2-Voltar ao Menu\n");
        printf("Opção: ");
        scanf("%d", &op_cadastro_paciente);
    }while(op_cadastro_paciente != 2);
}

//Faz a listagem dos pacientes
void listar_pacientes(listas *tmp){
    int op = 0;
    printf("\t----------------------PACIENTES----------------------\n");

    paciente *aux;
    printf("\n\n");
    printf("---------------------------------------------------------------------------------------------------------\n");
    for(aux = tmp->head; aux != NULL; aux = aux->prox){
        printf("Nome: %s\nCPF: %s\nSexo: %s\nIdade: %d\nTelefone: %d\nComorbidades: %s\nCódigo: %d\n", aux->nome, aux->cpf, aux->sexo, aux->idade, aux->telefone,aux->comorbidades, aux->codi);
        printf("---------------------------------------------------------------------------------------------------------\n\n\n");
    }


    printf("---------------------------------------------------------------------------------------------------------\n\n\n");
    printf("\t\t\tExistem %d pacientes cadastrados\n", tmp->qnt);
    free(aux);
    printf("\n\n");
    printf("1-Voltar ao menu\n2-Encerrar o programa ");
    scanf("%d", &op);
    if(op == 2){
        exit(0);
    }
}

void adicionar(arvore **Arv, paciente *pac){
    arvore *temp = NULL;
    if (*Arv == NULL){
        temp = (arvore*)malloc(sizeof(arvore));
        temp->Esq = NULL;
        temp->Dir = NULL;
        temp->No = pac;
        *Arv = temp;
    }
    else {
        if (pac->urg < ((*Arv)->No->urg)){
            adicionar(&((*Arv)->Esq), pac);
        }
        else{
            adicionar(&((*Arv)->Dir), pac);
        }
    }
}

// Em Ordem (Do menor pro maior)
void Mostrar(arvore *Arv){
    if(Arv != NULL){
        Mostrar(Arv->Esq);
        printf("Nome: %s\nCPF: %s\nSexo: %s\nIdade: %d\nTelefone: %d\nComorbidades: %s\nUrgencia: %d\nCódigo: %d\n", Arv->No->nome, Arv->No->cpf, Arv->No->sexo, Arv->No->idade, Arv->No->telefone, Arv->No->comorbidades, Arv->No->urg, Arv->No->codi);
        Mostrar(Arv->Dir);
    }
}


//Alterando os dados dos pacientes
void alterar_paciente(listas* lista_escolhida){
     char nome_substituto[50];
     char cpf_substituto[50];
     int codigo, idade_substituto, telefone_substituto;
     paciente* atual = lista_escolhida->head;
     system("cls");

     printf("\tCódigo do paciente a ser alterado: ");
     scanf("%d", &codigo);

     //Verificando se o código é válido
     while(atual != NULL && atual->codi != codigo){
        atual = atual->prox;
     }


     if(atual!=NULL){
        printf("\n\tNovo nome: ");
        scanf("%s", nome_substituto);
        strcpy(atual->nome,nome_substituto);//Faz a mudança de nome

        printf("\n\tNova idade: ");
        scanf("%d", &idade_substituto);
        atual->idade = idade_substituto;//Altera a idade

        printf("\n\tNovo CPF: ");
        scanf("%s", cpf_substituto);
        strcpy(atual->cpf,cpf_substituto);//Altera o CPF

        printf("\n\tNovo telefone: ");
        scanf("%d", &telefone_substituto);
        atual->telefone = telefone_substituto;//Altera o Telefone


        printf("\n\tDados alterados com sucesso.\n\tVoltando ao menu...");

     }else{
        printf("\n\tpaciente não encontrado\n\tVoltando ao menu...");
     }
     Sleep(3000);

}

listas* excluir_paciente(listas* lista_escolhida){

    //Ponteiro para saber o elemento anterior ao elemento atual da lista.
    paciente *anterior = NULL;
    //Ponteiro para percorrer a lista sem perder o primeiro elemento da lista.
    paciente *atual = lista_escolhida->head;
    int codigo;
    system("cls");
    //Requisitando e lendo o código do paciente a ser excluído.
    printf("\n\nCódigo do paciente a ser excluído: ");
    scanf("%d", &codigo);

    //Procurando o paciente na lista.
    while(atual != NULL && atual->codi != codigo){
       anterior = atual;
       atual = atual->prox;
    }

    //Mensagem caso o paciente não seja encontrado.
    if(atual == NULL){
       printf("\n  Paciente não encontrado.");
       Sleep(1500);
       return lista_escolhida;
    }
    //Excluindo o primeiro paciente da lista.
    if(anterior == NULL){
       printf("\n  Paciente excluído com sucesso.");
       lista_escolhida->head = atual->prox;
       Sleep(1500);
       return lista_escolhida;
    //Excluindo um paciente do meio da lista.
    }else{
       printf("\n  Paciente excluído com sucesso.");
       anterior->prox = atual->prox;
       Sleep(1500);
       return lista_escolhida;
    }
    lista_escolhida->qnt--;
    //Desalocando o espaço da memória.
    free(atual);
    return lista_escolhida;
}


//Faz a animação do "Entrando..."
void entrando(){
    int carregando;
    for(carregando=1;carregando<=3;carregando++){
        printf("\n\n\n\t\t\tCarregando.");
           Sleep(100);
        system("cls");
        printf("\n\n\n\t\t\tCarregando..");
        Sleep(100);
        system("cls");
        printf("\n\n\n\t\t\tCarregando....");
        Sleep(100);
        system("cls");
    }
}

//Menu principal
void menu(){

    int op_menu;
    listas *lista_paciente = inicializarLista();
    arvore *Arv = NULL;

    do{
        printf("\t\t--------------------HOSPITAL UNIP COVID-------------------------\n\n");
        printf("\n\n");
        printf("\tEscolha a opcao desejada\n");
        printf("\t[1] - Adicionar paciente\n");
        printf("\t[2] - Alterar dados do paciente\n");
        printf("\t[3] - Exibir pacientes [Por chegada]\n");
        printf("\t[4] - Exibir pacientes [Por urgencia]\n");
        printf("\t[5] - Excluir pacientes\n");
        printf("\t[0] - Encerrar o programa\n");
        printf("\n\tOpcao: ");
        scanf("%d", &op_menu);
        switch(op_menu){
            case 1:
                system("cls");
                cadastrar_paciente(lista_paciente, Arv);
                break;
            case 2:
                system("cls");
                alterar_paciente(lista_paciente);
                break;
            case 3:
                system("cls");
                listar_pacientes(lista_paciente);
                break;
            case 4:
                system("cls");
                printf("-- Pacientes por ordem de urgencia --");
                Mostrar(Arv);
                system("pause>null");
                break;
            case 5:
                system("cls");
                printf("\tQual paciente deseja excluir?\n");
                lista_paciente = excluir_paciente(lista_paciente);
                break;
            case 0:
                exit(0);
                break;
            default:
                printf("\n\n\n\n");
                printf("Opcao invalida\n");
                Sleep(1500);
                printf("\n\n\n\n");
        }
        system("cls");
    }while(op_menu != 0);
}


//Função principal
int main(){

     while(1)
    {

        char string[5];
        char enter[2];

        printf ("\n Digite a senha : ");
        string[0] = getch();
        printf ("*");
        string[1] = getch();
        printf ("*");
        string[2] = getch();
        printf ("*");
        string[3] = getch();
        printf ("*");
        string[4] = getch();
        printf ("*");

        enter[0] = getch();
        if(enter[0] == 13)
        {
            if((string[0] == 'C') && (string[1] == 'o') && (string[2] == 'v') && (string[3] == 'i') && (string[4] == 'd')) // senha correta é "Covid".
            {


                system("color F1");
                system("cls"); // limpa a tela.
                printf ("\n\n\t\tAcesso permitido!\n\n\t\tParabens!\n\t\tTecle Enter para Acessar o Sistema!\n\n\n\n\n\n\n");
                getchar(); // quando precionar o "ENTER" continua o programa.
                system("cls"); // limpa a tela.
            }
            else
            {
                system("color F1");
                system("cls"); // limpa a tela.
                printf ("\n\n\t\tAcesso negado!\n\n\t\tVoce não tem permissao para acesso! Tecle Enter Para Tentar Novamente!\n\n\n\n\n\n\n\n\n\n\n");
                system("pause>null");
                system("cls"); // limpa a tela.

                return main();
            }


    system("color F1");//Muda a cor do programa
    setlocale(LC_ALL,"Portuguese");
    entrando();//Chama a função responsável por realizar a animação
    menu();//Chama o menu principal
    system("pause>null");
}}}

Bom dia a todos, estou tendo um problema com meu projeto, depois que escrevi o código vi que faltou algumas coisas pedidas, como comparar a idade do paciente com mais de 65 anos e informar que ele é paciente de risco e Fazer com que o programa seja salvo em formato binário! Alguém pode me dar uma ajuda????

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

1 hora atrás, Luís Roberto C. da Silva disse:

@Roberto Montoni Para comparar as idades é só fazer um laço, contando o número de registros e usar a condicional if. Se tiver 65 anos ou mais, é paciente de risco.

Para salvar o programa em formato binário basta compilar.

Obrigado vou tentar fazer isso!

1 hora atrás, Luís Roberto C. da Silva disse:

@Roberto Montoni Para comparar as idades é só fazer um laço, contando o número de registros e usar a condicional if. Se tiver 65 anos ou mais, é paciente de risco.

Para salvar o programa em formato binário basta compilar.

Poderia me dar um norte onde no meu código faço isso? Olha o código que tenho!

#include <stdio.h>
#include <stdlib.h>
//[email protected]//Roberto Montoni
int main(int argc, char *argv[]) {
 // Declarar variáveis
int idade;
int diferenca_tempo;

 // Pedir ao usuário para escrever sua idade
 printf("Digite sua idade: ");
 scanf("%d", &idade);
 // Comparar com a idade mínima
if (idade >= 65) {
 diferenca_tempo = idade - 65;
 printf("Paciente faz parte do grupo de risco!\n");
 printf("Precisa ter certos cuidados com o Paciente",
 diferenca_tempo);
 } else {
 diferenca_tempo = 65 - idade;
 printf("Paciente nao faz parte do Grupo de Risco!\n",
 diferenca_tempo);
 }
return 0;
}

 

Link para o comentário
Compartilhar em outros sites

@Roberto Montoni Ao meu ver deve ser colocado logo após pedir a idade do paciente:
Mas só o if mesmo.

printf("\n\tInforme a idade do paciente\n");
printf("\tIdade: ");
scanf("%d", &aux->idade)
int diferenca_tempo;
if(aux->idade >= 65){
	diferenca_tempo = idade - 65;
  	printf("Paciente faz parte do grupo de risco!\n");
  	printf("Precisa ter certos cuidados com o Paciente", diferenca_tempo);
}
else{
	diferenca_tempo = 65 - idade;
  	printf("Paciente nao faz parte do Grupo de Risco!\n", diferenca_tempo);
}

 

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

  • 1 ano depois...
Em 15/11/2020 às 09:15, Roberto Montoni disse:

Bom dia a todos, estou tendo um problema com meu projeto, depois que escrevi o código vi que faltou algumas coisas pedidas, como comparar a idade do paciente com mais de 65 anos e informar que ele é paciente de risco e Fazer com que o programa seja salvo em formato binário!

 

"faltaram"... 

Um programa sempre é salvo em "formato binário".

Poste a especificação do que deveria fazer.

Considere escrever pequenos programas e juntar depois. Nunca escreva um programa interativo. Só vai perder tempo. Apenas coloque isso quando estiver tudo funcionando.

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!