Ir ao conteúdo
  • Cadastre-se

WASSANTOS

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <conio.h> #define BUFFER 64 //TRABALHO ACADEMICO DE CADASTRO E ENTRADA DE PACIENTES EM HOSPITAL POR NIVEL DE CLASSIFICACAO DE RISCO typedef struct lista { char *nome; char *gravidade; int idade; struct lista *proximo; } Dados; Dados *inicia_dados(char *nome, char *gravidade, int idade); Dados *insere_dados(Dados *dados, char *nome, char *gravidade, int idade); void exibe_dados(Dados *dados); void busca_dados(Dados *dados, char *chave); Dados *deleta_dados(Dados *dados); int checa_vazio(Dados *dados); void insere(void); void exibe(void); void busca(void); void deleta(void); Dados *principal = NULL; Dados *inicia_dados(char *nome, char *gravidade, int idade) { Dados *novo; novo = (Dados *)malloc(sizeof(Dados)); novo->nome = (char *)malloc(strlen(nome)+1); strncpy(novo->nome, nome, strlen(nome)+1); novo->gravidade = gravidade; novo->idade = idade; novo->proximo = NULL; return novo; } Dados *insere_dados(Dados *dados, char *nome, char *gravidade, int idade) { Dados *novo; novo = (Dados *)malloc(sizeof(Dados)); novo->nome = (char *)malloc(strlen(nome)+1); strncpy(novo->nome, nome, strlen(nome)+1); novo->gravidade = gravidade; novo->idade = idade; novo->proximo = dados; return novo; } void exibe_dados(Dados *dados) { fprintf(stdout, " Lista de pacientes:\n\n"); fprintf(stdout, "------------------------\n"); for (; dados != NULL; dados = dados->proximo) { fprintf(stdout, "Nome: %s\n", dados->nome); fprintf(stdout, "Gravidade: %s\n", dados->gravidade); fprintf(stdout, "Idade: %d\n", dados->idade); fprintf(stdout, "------------------------\n "); } printf("Pressione qualquer tecla para continuar."); getch(); } void busca_dados(Dados *dados, char *chave) { int achou = 0; fprintf(stdout, "Cadastro:\n\n"); for (; dados != NULL; dados = dados->proximo) { if (strcmp(chave, dados->nome) == 0) { fprintf(stdout, "------------------------\n"); fprintf(stdout, "Nome: %s\n", dados->nome); fprintf(stdout, "Gravidade: %s\n", dados->gravidade); fprintf(stdout, "Idade: %d\n", dados->idade); fprintf(stdout, "------------------------\n"); achou++; } } if (achou == 0) fprintf(stdout, "Nenhum resultado encontrado.\n Pressione uma tecla para continuar.\n"); else fprintf(stdout, "Foram encontrados %d registros. \nPressione uma tecla para continuar.\n", achou); sleep(1); getch(); } Dados *deleta_dados(Dados *dados) { Dados *novo; novo = dados->proximo; free(dados->nome); free(dados); fprintf(stdout, "O ultimo registro inserido foi deletado com sucesso.\\n"); sleep(1); return novo; } int checa_vazio(Dados *dados) { if (dados == NULL) { fprintf(stdout, "Lista vazia!\\n"); sleep(1); return 1; } else return 0; } void insere(void) { char *nome; char *gravidade; int idade; nome = (char *)malloc(BUFFER); gravidade = (char *)malloc(BUFFER); fprintf(stdout, "\n\nDigite o Nome: \n----> "); scanf("%s", nome); fprintf(stdout, "\n"); fprintf(stdout, "\n\nInforme a classificacao de risco do paciente: \n----> "); fprintf(stdout, "Vermelho(alto risco) - Amarelo(medio risco) - Verde(baixo risco) \n"); scanf("%s", gravidade); fprintf(stdout, "\n"); fprintf(stdout, "Digite a Idade: \n----> "); scanf("%d", &idade); fprintf(stdout, "\n"); if (principal == NULL) principal = inicia_dados(nome, gravidade, idade); else principal = insere_dados(principal, nome, gravidade, idade); } void exibe(void) { if (!checa_vazio(principal)) exibe_dados(principal); } void busca(void) { char *chave; if (!checa_vazio(principal)) { chave = (char *)malloc(BUFFER); fprintf(stdout, "Digite o nome paciente para buscar: \\n--> "); scanf("%s", chave); busca_dados(principal, chave); getch(); } } void deleta(void) { if (!checa_vazio(principal)) principal = deleta_dados(principal); } int main(void) { char escolha; do { system("cls"); fprintf(stdout, "\n\t\t\t HOSPITAL DE URGENCIA E EMERGENCIA \n\n"); fprintf(stdout, "\t**********************Escolha uma opcao:************************* \n\n"); fprintf(stdout, "\n1 - \t NOVO PACIENTE\n"); fprintf(stdout, "\n2 - \t EXIBIR PACIENTES CADASTRADOS\n"); fprintf(stdout, "\n3 - \t BUSCAR PACIENTE\n"); fprintf(stdout, "\n4 - \t DELETAR DADOS\n"); fprintf(stdout, "\n5 - \t SAIR\n\n"); scanf("%c", &escolha); switch(escolha) { case '1': insere(); break; case '2': exibe(); break; case '3': busca(); break; case '4': deleta(); break; case '5': exit(0); break; default: fprintf(stderr,"Digite uma opcao valida!\\n"); sleep(1); break; } } while (escolha > 0); return 0; } adicionado 1 minuto depois PRIORIDADE POR GRAVIDADE DO PACIENTE, SE O CASO FOR GRAVE O PACIENTE DEVE PASSAR PARA O TOPO DA LISTA. MELHOR FORMA DE FAZER ISSO ??????

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!