Ir para conteúdo
Fórum Script Brasil

Montoni

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Montoni

Montoni's Achievements

0

Reputação

  1. 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???? Segue o Código Fonte: #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"); }}}
×
×
  • Criar Novo...