Ir ao conteúdo

GeovaneAvilla

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Reputação

4
  1. @KXSY amigo, eu ainda sou leigo nessa area, comecei o curso agora, tem coisas que eu nem sei ainda kkkk não to sabendo botar como apaga a senha quando esta incorreta.
  2. @Lucca Rodrigues é esse mesmo amigo, desculpa kkk porém eu não consegui acrescentar la!
  3. #include <stdio.h> #include <stdlib.h> #include <string.h> //Biblioteca para usar a funçao strcmp #include <conio.h> #include <windows.h> // CONSTANTES: representando o maximo de caracteres // por variável #define MAX_NAME 50; #define MAX_EMAIL 50; #define MAX_CPF 11; #define MAX_DAY 10; #define MAX_PHONE 15; #define MAX_STREET 50; #define MAX_NUMBER 10; #define MAX_NEIGHBORHOOD 30; #define MAX_CITY 30; #define MAX_STATE 2; #define MAX_CEP 8; #define MAX_COMORBIDITY 20; /* Endereços de variáveis */ char *name; char *email; char *cpf; char *birthDay; char *phoneNumber; char *street; char *streetNumber; char *neighborhood; char *city; char *state; char *cep; char *diagnosisDay; char *comorbidity; // variavel para leitura de dados char leitura[50]; // variavel de tratamento do registro char registro[298]; // ponteiro para arquivo FILE *fp; // FUNÇÕES int validate_password() { char login[20]; char senha[20]; int i, senha_ok; char c; do { system("CLS"); printf(">>> PIM: PROJETO INTEGRADO MULTIDISCIPLINAR - IV! >>>\n\n"); printf(">>> UNIP - Universidade Paulista - Sistema EAD!\n"); printf(">>> Curso Analise e Desenvolvimento de Sistemas!\n"); printf(">>> Desenvolvido por: Geovane Avilla de souza!\n"); printf(">>> Matricula: 0583938\n\n\n"); printf(">>> Sistema de cadastro para pacientes diagnosticados com COVID-19 >>>\n\n\n"); fflush(stdin); printf("Login: "); gets(login); printf("\nSenha: "); i = 0; while((c=getch())!=13){ //13 é o valor de ENTER na tabela ASCII senha[i]=c; i++; printf("*"); //imprime o * Anterisco } senha[i]='\0'; senha_ok = strcmp(senha, "geovane"); if(!senha_ok) return 1; } while (senha_ok); } int read_option(){ // Ler opções do programa int opcao, passagem = 0; do { system("cls"); printf(">>> PIM: PROJETO INTEGRADO MULTIDISCIPLINAR - IV! >>>\n\n"); printf(">>> UNIP - Universidade Paulista - Sistema EAD!>>>\n\n"); printf("Entrada de pacientes diagnosticados com COVID-19!\n\n\n"); printf("Menu Principal!\n"); printf("-------------------\n\n"); printf("1- Cadastrar Paciente\n"); printf("2- Consultar Paciente\n"); printf("3- Pesquisar Paciente (Nome/CPF)\n"); printf("0- Sair do Programa\n\n"); if (passagem) printf("\n *** Opção invalida!\n"); printf ("Escolha uma das opções:\n\n"); printf(">>> "); scanf("%d",&opcao); setbuf(stdin, NULL); printf("\n"); if (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3) passagem = 1; } while (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3); return opcao; } /* void pause(char mensagem[]){ printf("%s",mensagem); getch(); } */ void preencher_espacos(char *sequencia, int tamanho) { int tam, espacos, i; strcat(registro, sequencia); tam = strlen(sequencia); espacos = tamanho - tam; for (i=1;i<=espacos;i++) strcat(registro, " "); } void tratar_registro() { strcpy(registro, ""); preencher_espacos(name, 50); preencher_espacos(email, 50); strcat(registro, cpf); strcat(registro, birthDay); preencher_espacos(phoneNumber, 15); preencher_espacos(street, 50); preencher_espacos(streetNumber, 10); preencher_espacos(neighborhood, 30); preencher_espacos(city, 30); strcat(registro, state); strcat(registro, cep); strcat(registro, diagnosisDay); preencher_espacos(comorbidity, 20); strcat(registro, "\n"); } int cadastrar() { int opcao; fp = fopen("arquivo.txt", "a"); if (fp == NULL) { return 0; } do { system("cls"); printf("<<< Entrada de paciente >>>\n\n\n "); fflush(stdin); printf ("\nDigite o Nome do Paciente: "); gets(leitura); name = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!name) { printf ("** Erro: Memoria Insuficiente **"); free(name); return 0; } strcpy(name, leitura); printf ("\nDigite o Email do Paciente: "); gets(leitura); email = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!email) { printf ("** Erro: Memoria Insuficiente **"); free(email); return 0; } strcpy(email, leitura); printf ("\nDigite o CPF do Paciente ( Somente Numeros ): "); gets(leitura); cpf = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!cpf) { printf ("** Erro: Memoria Insuficiente **"); free(cpf); return 0; } strcpy(cpf, leitura); printf ("\nData de nascimento do Paciente?\nNo formato DD/MM/AAAA: "); gets(leitura); birthDay = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!birthDay) { printf ("** Erro: Memoria Insuficiente **"); free(birthDay); return 0; } strcpy(birthDay, leitura); printf ("\nDigite o telefone do Paciente (Somente Numeros ): "); gets(leitura); phoneNumber = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!phoneNumber) { printf ("** Erro: Memoria Insuficiente **"); free(phoneNumber); return 0; } strcpy(phoneNumber, leitura); printf ("\nEndereco:\nLogradouro (rua, avenida, alameda ou outro): "); gets(leitura); street = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!street) { printf ("** Erro: Memoria Insuficiente **"); free(street); return 0; } strcpy(street, leitura); printf ("\nNumero: "); gets(leitura); streetNumber = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!streetNumber) { printf ("** Erro: Memoria Insuficiente **"); free(streetNumber); return 0; } strcpy(streetNumber, leitura); printf ("\nBairro: "); gets(leitura); neighborhood = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!neighborhood) { printf ("** Erro: Memoria Insuficiente **"); free(neighborhood); return 0; } strcpy(neighborhood, leitura); printf ("\nCidade: "); gets(leitura); city = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!city) { printf ("** Erro: Memoria Insuficiente **"); free(city); return 0; } strcpy(city, leitura); printf ("\nEstado: "); gets(leitura); state = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!state) { printf ("** Erro: Memoria Insuficiente **"); free(state); return 0; } strcpy(state, leitura); printf ("\nCEP: "); gets(leitura); cep = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!cep) { printf ("** Erro: Memoria Insuficiente **"); free(cep); return 0; } strcpy(cep, leitura); printf ("\nQual Dia do diagnostico?\nNo formato DD/MM/AAAA:"); gets(leitura); diagnosisDay = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!diagnosisDay) { printf ("** Erro: Memoria Insuficiente **"); free(diagnosisDay); return 0; } strcpy(diagnosisDay, leitura); printf ("\n O paciente tem alguma COMORBIDADE?"); gets(leitura); comorbidity = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!comorbidity) { printf ("** Erro: Memoria Insuficiente **"); free(comorbidity); return 0; } strcpy(comorbidity, leitura); tratar_registro(); fprintf(fp, "%s", registro); printf("\n\n\nCadastrar novo paciente? (1=Sim/0=Não) "); scanf("%d",&opcao); setbuf(stdin, NULL); printf("\n"); } while (opcao != 0); free(name); free(email); free(cpf); free(birthDay); free(phoneNumber); free(street); free(streetNumber); free(neighborhood); free(city); free(state); free(cep); free(diagnosisDay); free(comorbidity); fclose(fp); printf ("\n\nTamanho do registro: %d caracteres\n\n", strlen(registro)); system("pause"); return 1; } /* int comorbidity_option() { // ler tipos de comorbidades printf("Qual o tipo de comorbidade?\nEscolha entre as opções:\n"); printf("1- Diabetes"); printf("2- Obesidade\n"); printf("3- Hipertensão\n"); printf("4- Tuberculose\n"); printf("Opção: "); scanf("%d",&x); printf("\n"); return x; } */ void imprimir() { system("cls"); printf ("*** Consulta de Pacientes Diagnosticados com COVID-19! ***\n\n\n\n\n"); printf ("Nome do Paciente: %s\n", name); printf ("E-mail: %s\n", email); printf ("CPF: %s\n", cpf); printf ("Data de Nascimento: %s\n", birthDay); printf ("Telefone: %s\n", phoneNumber); printf ("Endereco:"); printf ("%s Numero: %s Bairro: %s\n", street, streetNumber, neighborhood); printf ("Cidade: %s Estado: %s CEP: %s\n", city, state, cep); printf ("Data do Diagnostico: %s\n", diagnosisDay); printf ("Comorbidade: %s\n", comorbidity); printf ("\n\nMostrar proximo registro, aperte qualquer tecla para continuar\n\n"); system ("pause"); } int extrair_informacoes() { int i, j; char auxiliar[50]; name = (char *) calloc(51, sizeof(char)); if (!name) { printf ("** Erro: Memoria Insuficiente **"); free(name); return 0; } for (i=0;i<=49;i++) name[i] = registro[i]; for (i=49;i>=0;i--) if (name[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = name[j]; auxiliar[j] = '\0'; strcpy(name, auxiliar); email = (char *) calloc(51, sizeof(char)); if (!email) { printf ("** Erro: Memoria Insuficiente **"); free(email); return 0; } for (i=50;i<=99;i++) email[i - 50] = registro[i]; for (i=49;i>=0;i--) if (email[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = email[j]; auxiliar[j] = '\0'; strcpy(email, auxiliar); cpf = (char *) calloc(12, sizeof(char)); if (!cpf) { printf ("** Erro: Memoria Insuficiente **"); free(cpf); return 0; } for (i=100;i<=110;i++) cpf[i - 100] = registro[i]; birthDay = (char *) calloc(11, sizeof(char)); if (!birthDay) { printf ("** Erro: Memoria Insuficiente **"); free(birthDay); return 0; } for (i=111;i<=120;i++) birthDay[i - 111] = registro[i]; phoneNumber = (char *) calloc(51, sizeof(char)); if (!phoneNumber) { printf ("** Erro: Memoria Insuficiente **"); free(phoneNumber); return 0; } for (i=121;i<=135;i++) phoneNumber[i - 121] = registro[i]; for (i=14;i>=0;i--) if (phoneNumber[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = phoneNumber[j]; auxiliar[j] = '\0'; strcpy(phoneNumber, auxiliar); street = (char *) calloc(51, sizeof(char)); if (!street) { printf ("** Erro: Memoria Insuficiente **"); free(street); return 0; } for (i=136;i<=185;i++) street[i - 136] = registro[i]; for (i=49;i>=0;i--) if (street[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = street[j]; auxiliar[j] = '\0'; strcpy(street, auxiliar); streetNumber = (char *) calloc(11, sizeof(char)); if (!streetNumber) { printf ("** Erro: Memoria Insuficiente **"); free(streetNumber); return 0; } for (i=186;i<=195;i++) streetNumber[i - 186] = registro[i]; for (i=9;i>=0;i--) if (streetNumber[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = streetNumber[j]; auxiliar[j] = '\0'; strcpy(streetNumber, auxiliar); neighborhood = (char *) calloc(31, sizeof(char)); if (!neighborhood) { printf ("** Erro: Memoria Insuficiente **"); free(neighborhood); return 0; } for (i=196;i<=225;i++) neighborhood[i - 196] = registro[i]; for (i=29;i>=0;i--) if (neighborhood[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = neighborhood[j]; auxiliar[j] = '\0'; strcpy(neighborhood, auxiliar); city = (char *) calloc(31, sizeof(char)); if (!city) { printf ("** Erro: Memoria Insuficiente **"); free(city); return 0; } for (i=226;i<=255;i++) city[i - 226] = registro[i]; for (i=29;i>=0;i--) if (city[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = city[j]; auxiliar[j] = '\0'; strcpy(city, auxiliar); state = (char *) calloc(3, sizeof(char)); if (!state) { printf ("** Erro: Memoria Insuficiente **"); free(state); return 0; } for (i=256;i<=257;i++) state[i - 256] = registro[i]; cep = (char *) calloc(9, sizeof(char)); if (!cep) { printf ("** Erro: Memoria Insuficiente **"); free(cep); return 0; } for (i=258;i<=265;i++) cep[i - 258] = registro[i]; diagnosisDay = (char *) calloc(11, sizeof(char)); if (!diagnosisDay) { printf ("** Erro: Memoria Insuficiente **"); free(diagnosisDay); return 0; } for (i=266;i<=275;i++) diagnosisDay[i - 266] = registro[i]; comorbidity = (char *) calloc(21, sizeof(char)); if (!comorbidity) { printf ("** Erro: Memoria Insuficiente **"); free(comorbidity); return 0; } for (i=276;i<=295;i++) comorbidity[i - 276] = registro[i]; for (i=19;i>=0;i--) if (comorbidity[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = comorbidity[j]; auxiliar[j] = '\0'; strcpy(comorbidity, auxiliar); return 1; } int consultar() { system("cls"); fp = fopen("arquivo.txt", "r"); if (fp == NULL) { return 0; } while (fgets(registro, 297, fp) != NULL) { if(extrair_informacoes()) imprimir(); fseek(fp, 2, 1); printf("Posicao do ponteiro corrente: %ld\n", ftell(fp)); } fclose(fp); return 1; } int extrair_informacoes_parciais() { int i, j; char auxiliar[50]; name = (char *) calloc(51, sizeof(char)); if (!name) { printf ("** Erro: Memoria Insuficiente **"); free(name); return 0; } for (i=0;i<=49;i++) name[i] = registro[i]; for (i=49;i>=0;i--) if (name[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = name[j]; auxiliar[j] = '\0'; strcpy(name, auxiliar); cpf = (char *) calloc(12, sizeof(char)); if (!cpf) { printf ("** Erro: Memoria Insuficiente **"); free(cpf); return 0; } for (i=100;i<=110;i++) cpf[i - 100] = registro[i]; street = (char *) calloc(51, sizeof(char)); if (!street) { printf ("** Erro: Memoria Insuficiente **"); free(street); return 0; } for (i=136;i<=185;i++) street[i - 136] = registro[i]; for (i=49;i>=0;i--) if (street[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = street[j]; auxiliar[j] = '\0'; strcpy(street, auxiliar); streetNumber = (char *) calloc(11, sizeof(char)); if (!streetNumber) { printf ("** Erro: Memoria Insuficiente **"); free(streetNumber); return 0; } for (i=186;i<=195;i++) streetNumber[i - 186] = registro[i]; for (i=9;i>=0;i--) if (streetNumber[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = streetNumber[j]; auxiliar[j] = '\0'; strcpy(streetNumber, auxiliar); neighborhood = (char *) calloc(31, sizeof(char)); if (!neighborhood) { printf ("** Erro: Memoria Insuficiente **"); free(neighborhood); return 0; } for (i=196;i<=225;i++) neighborhood[i - 196] = registro[i]; for (i=29;i>=0;i--) if (neighborhood[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = neighborhood[j]; auxiliar[j] = '\0'; strcpy(neighborhood, auxiliar); city = (char *) calloc(31, sizeof(char)); if (!city) { printf ("** Erro: Memoria Insuficiente **"); free(city); return 0; } for (i=226;i<=255;i++) city[i - 226] = registro[i]; for (i=29;i>=0;i--) if (city[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = city[j]; auxiliar[j] = '\0'; strcpy(city, auxiliar); state = (char *) calloc(3, sizeof(char)); if (!state) { printf ("** Erro: Memoria Insuficiente **"); free(state); return 0; } for (i=256;i<=257;i++) state[i - 256] = registro[i]; cep = (char *) calloc(9, sizeof(char)); if (!cep) { printf ("** Erro: Memoria Insuficiente **"); free(cep); return 0; } for (i=258;i<=265;i++) cep[i - 258] = registro[i]; comorbidity = (char *) calloc(21, sizeof(char)); if (!comorbidity) { printf ("** Erro: Memoria Insuficiente **"); free(comorbidity); return 0; } for (i=276;i<=295;i++) comorbidity[i - 276] = registro[i]; for (i=19;i>=0;i--) if (comorbidity[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = comorbidity[j]; auxiliar[j] = '\0'; strcpy(comorbidity, auxiliar); return 1; } void imprimir_parcial() { printf ("Nome do Paciente: %s\n", name); printf ("CPF: %s\n", cpf); printf ("Endereco:"); printf ("%s Numero: %s Bairro: %s\n", street, streetNumber, neighborhood); printf ("Cidade: %s Estado: %s CEP: %s\n", city, state, cep); printf ("Comorbidade: %s\n\n", comorbidity); printf ("\n\nPesquisa Realizada com Sucesso!\n"); } int pesquisar() { char pesquisa[50]; int opcao, passagem = 0, repeticao_da_pesquisa; int sucesso; fp = fopen("arquivo.txt", "r"); if (fp == NULL) { return 0; } do { fseek(fp, 0, 0); sucesso=0; do { system("cls"); printf("*** Tela de Pesquisa por nome ou CPF ***\n\n\n"); if (passagem) printf ("Opcao invalida! Digite 0 para nome ou 1 para CPF.\n\n"); printf("Fazer pesquisa por nome ou CPF? (0=nome/1=CPF): "); scanf("%d",&opcao); setbuf(stdin, NULL); printf("\n"); if (opcao != 0 && opcao !=1) passagem = 1; } while (opcao != 0 && opcao != 1); if (opcao == 0) { printf("\n\nDigite o nome a pesquisar: "); gets(pesquisa); while (fgets(registro, 297, fp) != NULL) { if(extrair_informacoes_parciais()) { if (strcmp(pesquisa, name) == 0) { system("cls"); printf ("*** Resultado da Pesquisa ***\n\n"); printf ("Pesquisa por nome: %s\n\n", pesquisa); imprimir_parcial(); sucesso = 1; break; } } fseek(fp, 2, 1); } if (!sucesso) printf("\n\n\n\nPesquisa nao retornou registro valido!\n\n\n"); } else { printf("\n\nDigite o CPF a pesquisar: "); scanf("%s", &pesquisa); setbuf(stdin, NULL); while (fgets(registro, 297, fp) != NULL) { if(extrair_informacoes_parciais()) { if (strcmp(pesquisa, cpf) == 0) { system("cls"); printf ("*** Resultado da Pesquisa! ***\n\n"); printf ("Pesquisa por CPF: %s\n\n", pesquisa); imprimir_parcial(); sucesso = 1; break; } } fseek(fp, 2, 1); } if (!sucesso) printf("\n\n\n\nPesquisa nao retornou registro valido!\n\n\n"); } printf("\n\nRealiza Nova Pesquisa? (1=Sim/0=Nao): "); scanf("%d",&repeticao_da_pesquisa); setbuf(stdin, NULL); printf("\n"); } while (repeticao_da_pesquisa != 0); fclose(fp); system("pause"); } // FIM FUNÇÕES int main() { int opcao; unsigned int cp=1252; //Respaldo do codepage original da consola unsigned int cpin = GetConsoleCP(); unsigned int cpout = GetConsoleOutputCP(); SetConsoleCP(cp); //Estabelecendo o codepage de entrada 1252(latin2) SetConsoleOutputCP(cp); //Estabelecendo o copage de saída 1252(latin2) if(validate_password()) { do { opcao = read_option(); switch(opcao) { case 0: system("cls"); printf ("* Você acabou de sair do sistema *\n\n"); // É importante voltar o cmd ao estado original, ou pode falhar outros programas. // Sempre será possível mudar o codepage usando SetConsoleCP e SetConsoleOutputCP. SetConsoleCP(cpin); SetConsoleOutputCP(cpout); system("pause"); return 0; case 1: if(!cadastrar()) { printf("\n\nErro na manipulacao do arquivo!\n\n"); return 1; } break; case 2: if (!consultar()) printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n"); break; case 3: pesquisar(); break; } } while (1); } }
  4. @devair1010 Então amigo, achei o erro no define, agora o que eu preciso e que não to sabendo fazer é colocar o codigo n opção pesquisar, para que quando eu digite o nome do paciente no pesquisar, ele me dê as informações! conseguirir me ajudar? #include <stdio.h> #include <stdlib.h> #include <string.h> //Biblioteca para usar a funçao strcmp #include <conio.h> #include <windows.h> // CONSTANTES: representando o maximo de caracteres // por variável #define MAX_NAME 50; #define MAX_EMAIL 50; #define MAX_CPF 11; #define MAX_DAY 10; #define MAX_PHONE 15; #define MAX_STREET 50; #define MAX_NUMBER 10; #define MAX_NEIGHBORHOOD 30; #define MAX_CITY 30; #define MAX_STATE 2; #define MAX_CEP 8; #define MAX_COMORBIDITY 20; /* Endereços de variáveis */ char *name; char *email; char *cpf; char *birthDay; char *phoneNumber; char *street; char *streetNumber; char *neighborhood; char *city; char *state; char *cep; char *diagnosisDay; char *comorbidity; // variavel para leitura de dados char leitura[50]; // variavel de tratamento do registro char registro[298]; // ponteiro para arquivo FILE *fp; // FUNÇÕES int validate_password() { char login[20]; char senha[20]; int i, senha_ok; char c; do { system("CLS"); printf(">>> Sistema de cadastro de pacientes diagnosticados com Covid-19 >>>\n\n\n\n\n"); fflush(stdin); printf("Login: "); gets(login); printf("\nSenha: "); i = 0; while((c=getch())!=13){ //13 é o valor de ENTER na tabela ASCII senha[i]=c; i++; printf("*"); //imprime o * Anterisco } senha[i]='\0'; senha_ok = strcmp(senha, "geovane"); if(!senha_ok) return 1; } while (senha_ok); } int read_option(){ // Ler opções do programa int opcao, passagem = 0; do { system("cls"); printf("Menu Principal\n"); printf("--------------\n"); printf("1- Cadastrar Paciente\n"); printf("2- Consultar Paciente\n"); printf("3- Pesquisar Paciente (Nome/CPF)\n"); printf("0- Sair do Programa\n"); if (passagem) printf("\n *** Opção inválida!\n"); printf ("Escolha uma das opções:\n"); printf(">>> "); scanf("%d",&opcao); setbuf(stdin, NULL); printf("\n"); if (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3) passagem = 1; } while (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3); return opcao; } /* void pause(char mensagem[]){ printf("%s",mensagem); getch(); } */ void preencher_espacos(char *sequencia, int tamanho) { int tam, espacos, i; strcat(registro, sequencia); tam = strlen(sequencia); espacos = tamanho - tam; for (i=1;i<=espacos;i++) strcat(registro, " "); } void tratar_registro() { strcpy(registro, ""); preencher_espacos(name, 50); preencher_espacos(email, 50); strcat(registro, cpf); strcat(registro, birthDay); preencher_espacos(phoneNumber, 15); preencher_espacos(street, 50); preencher_espacos(streetNumber, 10); preencher_espacos(neighborhood, 30); preencher_espacos(city, 30); strcat(registro, state); strcat(registro, cep); strcat(registro, diagnosisDay); preencher_espacos(comorbidity, 20); strcat(registro, "\n"); } int cadastrar() { int opcao; fp = fopen("arquivo.txt", "a"); if (fp == NULL) { return 0; } do { system("cls"); printf("<<< Entrada de paciente >>>\n\n\n "); fflush(stdin); printf ("\nDigite o Nome do Paciente: "); gets(leitura); name = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!name) { printf ("** Erro: Memoria Insuficiente **"); free(name); return 0; } strcpy(name, leitura); printf ("\nDigite o Email do Paciente: "); gets(leitura); email = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!email) { printf ("** Erro: Memoria Insuficiente **"); free(email); return 0; } strcpy(email, leitura); printf ("\nDigite o CPF do Paciente ( Somente Numeros ): "); gets(leitura); cpf = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!cpf) { printf ("** Erro: Memoria Insuficiente **"); free(cpf); return 0; } strcpy(cpf, leitura); printf ("\nData de nascimento do Paciente?\nNo formato DD/MM/AAAA: "); gets(leitura); birthDay = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!birthDay) { printf ("** Erro: Memoria Insuficiente **"); free(birthDay); return 0; } strcpy(birthDay, leitura); printf ("\nDigite o telefone do Paciente (Somente Numeros ): "); gets(leitura); phoneNumber = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!phoneNumber) { printf ("** Erro: Memoria Insuficiente **"); free(phoneNumber); return 0; } strcpy(phoneNumber, leitura); printf ("\nEndereço:\nLogradouro (rua, avenida, alameda ou outro): "); gets(leitura); street = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!street) { printf ("** Erro: Memoria Insuficiente **"); free(street); return 0; } strcpy(street, leitura); printf ("\nNumero: "); gets(leitura); streetNumber = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!streetNumber) { printf ("** Erro: Memoria Insuficiente **"); free(streetNumber); return 0; } strcpy(streetNumber, leitura); printf ("\nBairro: "); gets(leitura); neighborhood = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!neighborhood) { printf ("** Erro: Memoria Insuficiente **"); free(neighborhood); return 0; } strcpy(neighborhood, leitura); printf ("\nCidade: "); gets(leitura); city = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!city) { printf ("** Erro: Memoria Insuficiente **"); free(city); return 0; } strcpy(city, leitura); printf ("\nEstado: "); gets(leitura); state = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!state) { printf ("** Erro: Memoria Insuficiente **"); free(state); return 0; } strcpy(state, leitura); printf ("\nCEP: "); gets(leitura); cep = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!cep) { printf ("** Erro: Memoria Insuficiente **"); free(cep); return 0; } strcpy(cep, leitura); printf ("\nQual Dia do diagnostico?\nNo formato DD/MM/AAAA: "); gets(leitura); diagnosisDay = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!diagnosisDay) { printf ("** Erro: Memoria Insuficiente **"); free(diagnosisDay); return 0; } strcpy(diagnosisDay, leitura); printf ("\n O paciente tem alguma comorbidade?"); gets(leitura); comorbidity = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!comorbidity) { printf ("** Erro: Memoria Insuficiente **"); free(comorbidity); return 0; } strcpy(comorbidity, leitura); tratar_registro(); fprintf(fp, "%s", registro); printf("\n\n\nCadastrar novo paciente? (1=Sim/0=Não) "); scanf("%d",&opcao); setbuf(stdin, NULL); printf("\n"); } while (opcao != 0); free(name); free(email); free(cpf); free(birthDay); free(phoneNumber); free(street); free(streetNumber); free(neighborhood); free(city); free(state); free(cep); free(diagnosisDay); free(comorbidity); fclose(fp); printf ("\n\nTamanho do registro: %d caracteres\n\n", strlen(registro)); system("pause"); return 1; } /* int comorbidity_option() { // ler tipos de comorbidades printf("Qual o tipo de comorbidade?\nEscolha entre as opções:\n"); printf("1- Diabetes"); printf("2- Obesidade\n"); printf("3- Hipertensão\n"); printf("4- Tuberculose\n"); printf("Opção: "); scanf("%d",&x); printf("\n"); return x; } */ int extrair_informacoes() { int base = 0, topo, suporte; int i, j; char auxiliar[50]; name = (char *) calloc(51, sizeof(char)); if (!name) { printf ("** Erro: Memoria Insuficiente **"); free(name); return 0; } for (i=0;i<=49;i++) name[i] = registro[i]; for (i=49;i>=0;i--) if (name[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = name[j]; auxiliar[j] = '\0'; strcpy(name, auxiliar); email = (char *) calloc(51, sizeof(char)); if (!email) { printf ("** Erro: Memoria Insuficiente **"); free(email); return 0; } for (i=50;i<=99;i++) email[i - 50] = registro[i]; for (i=49;i>=0;i--) if (email[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = email[j]; auxiliar[j] = '\0'; strcpy(email, auxiliar); cpf = (char *) calloc(12, sizeof(char)); if (!cpf) { printf ("** Erro: Memoria Insuficiente **"); free(cpf); return 0; } for (i=100;i<=110;i++) cpf[i - 100] = registro[i]; birthDay = (char *) calloc(11, sizeof(char)); if (!birthDay) { printf ("** Erro: Memoria Insuficiente **"); free(birthDay); return 0; } for (i=111;i<=120;i++) birthDay[i - 111] = registro[i]; phoneNumber = (char *) calloc(51, sizeof(char)); if (!phoneNumber) { printf ("** Erro: Memoria Insuficiente **"); free(phoneNumber); return 0; } for (i=121;i<=135;i++) phoneNumber[i - 121] = registro[i]; for (i=14;i>=0;i--) if (phoneNumber[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = phoneNumber[j]; auxiliar[j] = '\0'; strcpy(phoneNumber, auxiliar); street = (char *) calloc(51, sizeof(char)); if (!street) { printf ("** Erro: Memoria Insuficiente **"); free(street); return 0; } for (i=136;i<=185;i++) street[i - 136] = registro[i]; for (i=49;i>=0;i--) if (street[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = street[j]; auxiliar[j] = '\0'; strcpy(street, auxiliar); streetNumber = (char *) calloc(11, sizeof(char)); if (!streetNumber) { printf ("** Erro: Memoria Insuficiente **"); free(streetNumber); return 0; } for (i=186;i<=195;i++) streetNumber[i - 186] = registro[i]; for (i=9;i>=0;i--) if (streetNumber[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = streetNumber[j]; auxiliar[j] = '\0'; strcpy(streetNumber, auxiliar); neighborhood = (char *) calloc(31, sizeof(char)); if (!neighborhood) { printf ("** Erro: Memoria Insuficiente **"); free(neighborhood); return 0; } for (i=196;i<=225;i++) neighborhood[i - 196] = registro[i]; for (i=29;i>=0;i--) if (neighborhood[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = neighborhood[j]; auxiliar[j] = '\0'; strcpy(neighborhood, auxiliar); city = (char *) calloc(31, sizeof(char)); if (!city) { printf ("** Erro: Memoria Insuficiente **"); free(city); return 0; } for (i=226;i<=255;i++) city[i - 226] = registro[i]; for (i=29;i>=0;i--) if (city[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = city[j]; auxiliar[j] = '\0'; strcpy(city, auxiliar); state = (char *) calloc(3, sizeof(char)); if (!state) { printf ("** Erro: Memoria Insuficiente **"); free(state); return 0; } for (i=256;i<=257;i++) state[i - 256] = registro[i]; cep = (char *) calloc(9, sizeof(char)); if (!cep) { printf ("** Erro: Memoria Insuficiente **"); free(cep); return 0; } for (i=258;i<=265;i++) cep[i - 258] = registro[i]; diagnosisDay = (char *) calloc(11, sizeof(char)); if (!diagnosisDay) { printf ("** Erro: Memoria Insuficiente **"); free(diagnosisDay); return 0; } for (i=266;i<=275;i++) diagnosisDay[i - 266] = registro[i]; comorbidity = (char *) calloc(21, sizeof(char)); if (!comorbidity) { printf ("** Erro: Memoria Insuficiente **"); free(comorbidity); return 0; } for (i=276;i<=295;i++) comorbidity[i - 276] = registro[i]; for (i=19;i>=0;i--) if (comorbidity[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = comorbidity[j]; auxiliar[j] = '\0'; strcpy(comorbidity, auxiliar); } int consultar() { system("cls"); fp = fopen("arquivo.txt", "r"); if (fp == NULL) { return 0; } fgets(registro, 297, fp); extrair_informacoes(); fclose(fp); return 1; } void pesquisar() { system("cls"); printf("*** Pesquisa sendo construída ***\n\n"); system("pause"); } void imprimir() { system("cls"); printf ("*** Consulta de Paciente ***\n\n\n\n\n"); printf ("Nome do Paciente: %s<<<\n", name); printf ("E-mail: %s<<<\n", email); printf ("CPF: %s<<<\n", cpf); printf ("Data de Nascimento: %s\n", birthDay); printf ("Telefone: %s\n", phoneNumber); printf ("Endereço:\n"); printf ("%s número: %s bairro: %s\n", street, streetNumber, neighborhood); printf ("cidade: %s estado: %s CEP: %s\n", city, state, cep); printf ("Data do diagnóstico: %s\n", diagnosisDay); printf ("Comorbidade: %s\n", comorbidity); printf ("\n\n * Dados do paciente recuperados do arquivo *\n\n"); system ("pause"); } // FIM FUNÇÕES int main() { int opcao; unsigned int cp=1252; //Respaldo do codepage original da consola unsigned int cpin = GetConsoleCP(); unsigned int cpout = GetConsoleOutputCP(); SetConsoleCP(cp); //Estabelecendo o codepage de entrada 1252(latin2) SetConsoleOutputCP(cp); //Estabelecendo o copage de saída 1252(latin2) if(validate_password()) { do { opcao = read_option(); switch(opcao) { case 0: system("cls"); printf ("* Você acabou de sair do sistema *\n\n"); // É importante voltar o cmd ao estado original, ou pode falhar outros programas. // Sempre será possível mudar o codepage usando SetConsoleCP e SetConsoleOutputCP. SetConsoleCP(cpin); SetConsoleOutputCP(cpout); system("pause"); return 0; case 1: if(cadastrar()) imprimir(); else { printf("\n\nErro na manipulacao do arquivo!\n\n"); return 1; } break; case 2: if (consultar()) imprimir(); else printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n"); system ("pause"); break; case 3: pesquisar(); break; } } while (1); } } @devair1010 consehuiria me ajudar?
  5. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <windows.h> char *name; char *email; char *cpf; char *birthDay; char *phoneNumber; char *street; char *streetNumber; char *neighborhood; char *city; char *state; char *cep; char *diagnosisDay; char *comorbidity; #define MAX_NAME 50; #define MAX_EMAIL 50; #define MAX_CPF 11; #define MAX_DAY 10; #define MAX_PHONE 15; #define MAX_STREET 50; #define MAX_NUMBER 10; #define MAX_NEIGHBORHOOD 30; #define MAX_CITY 30; #define MAX_STATE 2; #define MAX_CEP 8; #define MAX_COMORBIDITY 20; char leitura[50]; char registro[298]; FILE *fp; int validate_password() { char login[20]; char senha[20]; int i, senha_ok; char c; do { system("CLS"); printf(">>> Sistema de cadastro de pacientes diagnosticados com Covid-19 >>>\n\n\n\n\n"); fflush(stdin); printf("Login: "); gets(login); printf("\nSenha: "); i = 0; while((c=getch())!=13){ senha[i]=c; i++; printf("*"); } senha[i]='\0'; senha_ok = strcmp(senha, "geovane"); if(!senha_ok) return 1; } while (senha_ok); } int read_option(){ int opcao, passagem = 0; do { system("cls"); printf("Menu Principal\n"); printf("--------------\n"); printf("1- Cadastrar Paciente\n"); printf("2- Consultar Paciente\n"); printf("3- Pesquisar Paciente (Nome/CPF)\n"); printf("0- Sair do Programa\n"); if (passagem) printf("\n *** Opção inválida!\n"); printf ("Escolha uma das opções:\n"); printf(">>> "); scanf("%d",&opcao); setbuf(stdin, NULL); printf("\n"); if (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3) passagem = 1; } while (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3); return opcao; } void preencher_espacos(char *sequencia, int tamanho) { int tam, espacos, i; strcat(registro, sequencia); tam = strlen(sequencia); espacos = tamanho - tam; for (i=1;i<=espacos;i++) strcat(registro, " "); } void tratar_registro() { strcpy(registro, ""); preencher_espacos(name, 50); preencher_espacos(email, 50); strcat(registro, cpf); strcat(registro, birthDay); preencher_espacos(phoneNumber, 15); preencher_espacos(street, 50); preencher_espacos(streetNumber, 10); preencher_espacos(neighborhood, 30); preencher_espacos(city, 30); strcat(registro, state); strcat(registro, cep); strcat(registro, diagnosisDay); preencher_espacos(comorbidity, 20); strcat(registro, "\n"); } int cadastrar() { int opcao; fp = fopen("arquivo.txt", "a"); if (fp == NULL) { return 0; } do { system("cls"); printf("<<< Entrada de paciente >>>\n\n\n "); fflush(stdin); printf ("\nDigite o Nome do Paciente: "); gets(leitura); name = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!name) { printf ("** Erro: Memoria Insuficiente **"); free(name); return 0; } strcpy(name, leitura); printf ("\nDigite o Email do Paciente: "); gets(leitura); email = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!email) { printf ("** Erro: Memoria Insuficiente **"); free(email); return 0; } strcpy(email, leitura); printf ("\nDigite o CPF do Paciente ( Somente Numeros ): "); gets(leitura); cpf = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!cpf) { printf ("** Erro: Memoria Insuficiente **"); free(cpf); return 0; } strcpy(cpf, leitura); printf ("\nData de nascimento do Paciente?\nNo formato DD/MM/AAAA: "); gets(leitura); birthDay = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!birthDay) { printf ("** Erro: Memoria Insuficiente **"); free(birthDay); return 0; } strcpy(birthDay, leitura); printf ("\nDigite o telefone do Paciente (Somente Numeros ): "); gets(leitura); phoneNumber = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!phoneNumber) { printf ("** Erro: Memoria Insuficiente **"); free(phoneNumber); return 0; } strcpy(phoneNumber, leitura); printf ("\nEndereço:\nLogradouro (rua, avenida, alameda ou outro): "); gets(leitura); street = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!street) { printf ("** Erro: Memoria Insuficiente **"); free(street); return 0; } strcpy(street, leitura); printf ("\nNumero: "); gets(leitura); streetNumber = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!streetNumber) { printf ("** Erro: Memoria Insuficiente **"); free(streetNumber); return 0; } strcpy(streetNumber, leitura); printf ("\nBairro: "); gets(leitura); neighborhood = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!neighborhood) { printf ("** Erro: Memoria Insuficiente **"); free(neighborhood); return 0; } strcpy(neighborhood, leitura); printf ("\nCidade: "); gets(leitura); city = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!city) { printf ("** Erro: Memoria Insuficiente **"); free(city); return 0; } strcpy(city, leitura); printf ("\nEstado: "); gets(leitura); state = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!state) { printf ("** Erro: Memoria Insuficiente **"); free(state); return 0; } strcpy(state, leitura); printf ("\nCEP: "); gets(leitura); cep = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!cep) { printf ("** Erro: Memoria Insuficiente **"); free(cep); return 0; } strcpy(cep, leitura); printf ("\nQual Dia do diagnostico?\nNo formato DD/MM/AAAA: "); gets(leitura); diagnosisDay = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!diagnosisDay) { printf ("** Erro: Memoria Insuficiente **"); free(diagnosisDay); return 0; } strcpy(diagnosisDay, leitura); printf ("\n O paciente tem alguma comorbidade?"); gets(leitura); comorbidity = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!comorbidity) { printf ("** Erro: Memoria Insuficiente **"); free(comorbidity); return 0; } strcpy(comorbidity, leitura); tratar_registro(); fprintf(fp, "%s", registro); printf("\n\n\nCadastrar novo paciente? (1=Sim/0=Não) "); scanf("%d",&opcao); setbuf(stdin, NULL); printf("\n"); } while (opcao != 0); free(name); free(email); free(cpf); free(birthDay); free(phoneNumber); free(street); free(streetNumber); free(neighborhood); free(city); free(state); free(cep); free(diagnosisDay); free(comorbidity); fclose(fp); printf ("\n\nTamanho do registro: %d caracteres\n\n", strlen(registro)); system("pause"); return 1; } void extrair_campo(char *campo[]) { int i, j; char auxiliar[50]; // strcpy(name, ""); for (i=0;i<50;i++) *campo[i] = registro[i]; for (i=49;i>=0;i--) if (*campo[i] != ' ') break; for (j=0;j<=i;j++) auxiliar[j] = *campo[j]; auxiliar[j] = '\0'; strcpy(*campo, auxiliar); } int extrair_informacoes() { name = (char *) calloc(MAX_NAME + 1, sizeof(char)); if (!name) { printf ("** Erro: Memoria Insuficiente **"); free(name); return 0; } extrair_campo(name); email = (char *) calloc((MAX_EMAIL + 1), sizeof(char)); if (!email) { printf ("** Erro: Memoria Insuficiente **"); free(email); return 0; } extrair_campo(email); cpf = (char *) calloc((MAX_CPF + 1), sizeof(char)); if (!cpf) { printf ("** Erro: Memoria Insuficiente **"); free(cpf); return 0; } extrair_campo(cpf); birthDay = (char *) calloc((MAX_DAY + 1), sizeof(char)); if (!birthDay) { printf ("** Erro: Memoria Insuficiente **"); free(birthDay); return 0; } extrair_campo(birthDay); phoneNumber = (char *) calloc((MAX_PHONE + 1), sizeof(char)); if (!phoneNumber) { printf ("** Erro: Memoria Insuficiente **"); free(phoneNumber); return 0; } extrair_campo(phoneNumber); street = (char *) calloc((MAX_STREET + 1), sizeof(char)); if (!street) { printf ("** Erro: Memoria Insuficiente **"); free(street); return 0; } extrair_campo(street); streetNumber = (char *) calloc((MAX_NUMBER + 1), sizeof(char)); if (!streetNumber) { printf ("** Erro: Memoria Insuficiente **"); free(streetNumber); return 0; } extrair_campo(streetNumber); neighborhood = (char *) calloc((MAX_NEIGHBORHOOD + 1), sizeof(char)); if (!neighborhood) { printf ("** Erro: Memoria Insuficiente **"); free(neighborhood); return 0; } extrair_campo(neighborhood); city = (char *) calloc((MAX_CITY + 1), sizeof(char)); if (!city) { printf ("** Erro: Memoria Insuficiente **"); free(city); return 0; } extrair_campo(city); state = (char *) calloc((MAX_STATE + 1), sizeof(char)); if (!state) { printf ("** Erro: Memoria Insuficiente **"); free(state); return 0; } extrair_campo(state); cep = (char *) calloc((MAX_CEP + 1), sizeof(char)); if (!cep) { printf ("** Erro: Memoria Insuficiente **"); free(cep); return 0; } extrair_campo(cep); comorbidity = (char *) calloc((MAX_COMORBIDITY + 1), sizeof(char)); if (!comorbidity) { printf ("** Erro: Memoria Insuficiente **"); free(comorbidity); return 0; } extrair_campo(comorbidity); } int consultar() { system("cls"); fp = fopen("arquivo.txt", "r"); if (fp == NULL) { return 0; } fgets(registro, 297, fp); if (!extrair_informacoes()) return 0; // free(name); fclose(fp); return 1; } void pesquisar() { system("cls"); printf("*** Pesquisa sendo construída ***\n\n"); system("pause"); } void imprimir() { system("cls"); printf ("*** Consulta de Paciente ***\n\n\n\n\n"); printf ("Nome do Paciente: %s\n", name); printf ("E-mail: %s\n", email); printf ("Data de Nascimento: %s\n", birthDay); printf ("Telefone: %s\n", phoneNumber); printf ("Endereço:\n"); printf ("%s número: %s bairro: %s\n", street, streetNumber, neighborhood); printf ("cidade: %s estado: %s CEP: %s\n", city, state, cep); printf ("Data do diagnóstico: %s\n", diagnosisDay); printf ("Comorbidade: %s\n", comorbidity); printf ("\n\n * Dados do paciente recuperados do arquivo *\n\n"); system ("pause"); } int main() { int opcao; unsigned int cp=1252; unsigned int cpin = GetConsoleCP(); unsigned int cpout = GetConsoleOutputCP(); SetConsoleCP(cp); SetConsoleOutputCP(cp); if(validate_password()) { do { opcao = read_option(); switch(opcao) { case 0: system("cls"); printf ("* Você acabou de sair do sistema *\n\n"); SetConsoleCP(cpin); SetConsoleOutputCP(cpout); system("pause"); return 0; case 1: if(cadastrar()) imprimir(); else { printf("\n\nErro na manipulacao do arquivo!\n\n"); return 1; } break; case 2: if (!consultar()) printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n"); system ("pause"); break; case 3: pesquisar(); break; } } while (1); } }
  6. @Lucca Rodrigues #include <stdio.h> #include <stdlib.h> #include <string.h> //Biblioteca para usar a funçao strcmp #include <conio.h> #include <locale.h> /* Começo Matriz*/ char *name; char *email; char *cpf; char *birthDay; char *phoneNumber; char *street; char *streetNumber; char *neighborhood; char *city; char *state; char *cep; char *diagnosisDay; char *comorbidity; // variavel para leitura de dados char leitura[50]; // variavel de tratamento do registro char registro[297]; // ponteiro para arquivo FILE *fp; // FUNÇÕES int validate_password() { char login[20]; char senha[20]; int i, senha_ok; char c; do { system("CLS"); printf(">>> Sistema de cadastro de pacientes diagnosticados com Covid-19 >>>\n\n\n\n\n"); fflush(stdin); printf("Login: "); gets(login); printf("\nSenha: "); i = 0; while((c=getch())!=13){ //13 é o valor de ENTER na tabela ASCII senha[i]=c; i++; printf("*"); //imprime o * Anterisco } senha[i]='\0'; senha_ok = strcmp(senha, "geovane"); if(!senha_ok) return 1; } while (senha_ok); } int read_option(){ // Ler opções do programa int opcao, passagem = 0; do { system("cls"); printf("Menu Principal\n"); printf("--------------\n"); printf("1- Cadastrar Paciente\n"); printf("2- Consultar Paciente\n"); printf("3- Pesquisar Paciente (Nome/CPF)\n"); printf("0- Sair do Programa\n"); if (passagem) printf("\n *** Opção inválida!\n"); printf ("Escolha uma das opções:\n"); printf(">>> "); scanf("%d",&opcao); getchar(); printf("\n"); if (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3) passagem = 1; } while (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3); return opcao; } /* void pause(char mensagem[]){ printf("%s",mensagem); getch(); } */ void preencher_espacos(char *sequencia, int tamanho) { int tam, espacos, i; strcat(registro, sequencia); tam = strlen(sequencia); espacos = tamanho - tam; for (i=1;i<=espacos;i++) strcat(registro, " "); } void tratar_registro() { preencher_espacos(name, 50); preencher_espacos(email, 50); strcat(registro, cpf); strcat(registro, birthDay); preencher_espacos(phoneNumber, 15); preencher_espacos(street, 50); preencher_espacos(streetNumber, 10); preencher_espacos(neighborhood, 30); preencher_espacos(city, 30); strcat(registro, state); strcat(registro, cep); strcat(registro, diagnosisDay); preencher_espacos(comorbidity, 20); } int salvar() { fp = fopen("arquivo.txt", "a"); if (fp == NULL) { return 0; } fprintf(fp, "%s", registro); fclose(fp); return 1; } int cadastrar() { system("cls"); printf("<<< Entrada de paciente >>>\n\n\n "); fflush(stdin); printf ("\nDigite o Nome do Paciente: "); gets(leitura); name = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!name) { printf ("** Erro: Memoria Insuficiente **"); free(name); return 0; } strcpy(name, leitura); printf ("\nDigite o Email do Paciente: "); gets(leitura); email = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!email) { printf ("** Erro: Memoria Insuficiente **"); free(email); return 0; } strcpy(email, leitura); printf ("\nDigite o CPF do Paciente ( Somente Numeros ): "); gets(leitura); cpf = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!cpf) { printf ("** Erro: Memoria Insuficiente **"); free(cpf); return 0; } strcpy(cpf, leitura); printf ("\nData de nascimento do Paciente?\nNo formato DD/MM/AAAA: "); gets(leitura); birthDay = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!birthDay) { printf ("** Erro: Memoria Insuficiente **"); free(birthDay); return 0; } strcpy(birthDay, leitura); printf ("\nDigite o telefone do Paciente (Somente Numeros ): "); gets(leitura); phoneNumber = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!phoneNumber) { printf ("** Erro: Memoria Insuficiente **"); free(phoneNumber); return 0; } strcpy(phoneNumber, leitura); printf ("\nEndereço:\nLogradouro (rua, avenida, alameda ou outro): "); gets(leitura); street = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!street) { printf ("** Erro: Memoria Insuficiente **"); free(street); return 0; } strcpy(street, leitura); printf ("\nNumero: "); gets(leitura); streetNumber = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!streetNumber) { printf ("** Erro: Memoria Insuficiente **"); free(streetNumber); return 0; } strcpy(streetNumber, leitura); printf ("\nBairro: "); gets(leitura); neighborhood = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!neighborhood) { printf ("** Erro: Memoria Insuficiente **"); free(neighborhood); return 0; } strcpy(neighborhood, leitura); printf ("\nCidade: "); gets(leitura); city = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!city) { printf ("** Erro: Memoria Insuficiente **"); free(city); return 0; } strcpy(city, leitura); printf ("\nEstado: "); gets(leitura); state = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!state) { printf ("** Erro: Memoria Insuficiente **"); free(state); return 0; } strcpy(state, leitura); printf ("\nCEP: "); gets(leitura); cep = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!cep) { printf ("** Erro: Memoria Insuficiente **"); free(cep); return 0; } strcpy(cep, leitura); printf ("\nQual Dia do diagnostico?\nNo formato DD/MM/AAAA: "); gets(leitura); diagnosisDay = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!diagnosisDay) { printf ("** Erro: Memoria Insuficiente **"); free(diagnosisDay); return 0; } strcpy(diagnosisDay, leitura); printf ("\n O paciente tem alguma comorbidade?"); gets(leitura); comorbidity = (char *) calloc((strlen(leitura)+1), sizeof(char)); if (!comorbidity) { printf ("** Erro: Memoria Insuficiente **"); free(comorbidity); return 0; } strcpy(comorbidity, leitura); tratar_registro(); if (salvar()) printf ("\n\nDados do paciente salvo em arquivo!\n\n"); else printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n"); free(name); free(email); free(cpf); free(birthDay); free(phoneNumber); free(street); free(streetNumber); free(neighborhood); free(city); free(state); free(cep); free(diagnosisDay); free(comorbidity); printf ("\n\nTamanho do registro: %d caracteres\n\n", strlen(registro)); system("pause"); return 1; } /* int comorbidity_option() { // ler tipos de comorbidades printf("Qual o tipo de comorbidade?\nEscolha entre as opções:\n"); printf("1- Diabetes"); printf("2- Obesidade\n"); printf("3- Hipertensão\n"); printf("4- Tuberculose\n"); printf("Opção: "); scanf("%d",&x); printf("\n"); return x; } */ int consultar() { system("cls"); FILE *fp; fp = fopen("arquivo.txt", "r"); if (fp == NULL) { return 0; } fscanf(fp, "%s", &name); fscanf(fp, "%s", &email); fscanf(fp, "%s", &cpf); fscanf(fp, "%s", &birthDay); fscanf(fp, "%s", &phoneNumber); fscanf(fp, "%s", &street); fscanf(fp, "%s", &streetNumber); fscanf(fp, "%s", &neighborhood); fscanf(fp, "%s", &city); fscanf(fp, "%s", &state); fscanf(fp, "%s", &cep); fscanf(fp, "%s", &diagnosisDay); fscanf(fp, "%s", &comorbidity); fclose(fp); return 1; } void pesquisar() { system("cls"); printf("\nInforme o CPF da pessoa: "); long long cpf_localizador; scanf("%Lu",&cpf_localizador); printf ("*** Consulta de Paciente ***\n\n\n\n\n"); printf ("Nome do Paciente: %s\n", name); printf ("E-mail: %s\n", email); printf ("Data de Nascimento: %s\n", birthDay); printf ("Telefone: %s\n", phoneNumber); printf ("Data do diagnostico: %s\n", diagnosisDay); printf ("Comorbidade: %s\n", comorbidity); printf ("\n\n * Dados do paciente recuperados do arquivo *\n\n"); system("pause"); } void imprimir() { system("cls"); printf ("*** Consulta de Paciente ***\n\n\n\n\n"); printf ("Nome do Paciente: %s\n", name); printf ("E-mail: %s\n", email); printf ("Data de Nascimento: %s\n", birthDay); printf ("Telefone: %s\n", phoneNumber); printf ("Endereço:\n"); printf ("%s número: %s bairro: %s\n", street, streetNumber, neighborhood); printf ("cidade: %s estado: %s CEP: %s\n", city, state, cep); printf ("Data do diagnóstico: %s\n", diagnosisDay); printf ("Comorbidade: %s\n", comorbidity); printf ("\n\n * Dados do paciente recuperados do arquivo *\n\n"); } // FIM FUNÇÕES int main() { int opcao; setlocale(LC_ALL, "Portuguese"); if(validate_password()) { do { opcao = read_option(); switch(opcao) { case 0: system("cls"); printf ("* Você acabou de sair do sistema *\n\n"); system("pause"); return 0; case 1: cadastrar(); break; case 2: if (consultar()) imprimir(); else printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n"); system ("pause"); break; case 3: pesquisar(); break; } } while (1); } }
  7. @Lucca Rodrigues Então amigo, foi o que eu disse, eu não sei rs estou ainda na segunda semana de aula, to tentando sei que não esta bom kkkkkkkkkkkkkkkkkkkkkk preciso entender como faz! poderia me ajudar?
  8. Boa noite, preciso da ajuda de vocês, estou tentando criar um sistema de covid para o projeto da faculdade, porém não estou conseguindo desenvolver algumas coisas! Preciso salvar em arquivo e quando eu salvo vem duplicado, preciso criar a opção pesquisar paciente e não consigo, preciso por a função cadastrar novo paciente? Preciso por login e senha ao entrar no sistema, e por ultimo o sitema quando eu cadastrar um paciente ele me informar se o paciente é maior de 65 anos e se for faz parte do grupo de risco e verificar se o paciente tem alguma comorbidade! #include <stdio.h> #include <stdlib.h> #include <string.h> //Biblioteca para usar a funçao strcmp #include <conio.h> #include <locale.h> /* Começo Matriz*/ char name[50]; char email[50]; char cpf[11]; char birthDay[10]; char phoneNumber[15]; char street[50]; char streetNumber[10]; char neighborhood[30]; char city[30]; char state[2]; char cep[9]; char diagnosisDay[10]; char comorbidity[20]; // FUNÇÕES int validate_password() { char login[20]; char senha[20]; int i, senha_ok; char c; do { system("CLS"); printf(">>> Sistema de cadastro de pacientes diagnosticados com Covid-19 >>>\n\n\n\n\n"); fflush(stdin); printf("Login: "); gets(login); printf("\nSenha: "); i = 0; while((c=getch())!=13){ //13 é o valor de ENTER na tabela ASCII senha[i]=c; i++; printf("*"); //imprime o * Anterisco } senha[i]='\0'; senha_ok = strcmp(senha, "geovane"); if(!senha_ok) return 1; } while (senha_ok); } int read_option(){ // Ler opções do programa int opcao, passagem = 0; do { system("cls"); printf("Menu Principal\n"); printf("--------------\n"); printf("1- Cadastrar Paciente\n"); printf("2- Consultar Paciente\n"); printf("3- Pesquisar Paciente (Nome/CPF)\n"); printf("0- Sair do Programa\n"); if (passagem) printf("\n *** Opção inválida!\n"); printf ("Escolha uma das opções:\n"); printf(">>> "); scanf("%d",&opcao); getchar(); printf("\n"); if (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3) passagem = 0; } while (opcao != 0 && opcao != 1 && opcao != 2 && opcao != 3); return opcao; } /* void pause(char mensagem[]){ printf("%s",mensagem); getch(); } */ int salvar(void) { FILE *fp; fp = fopen("arquivo.txt", "a"); if (fp == NULL) { return 0; } fprintf(fp, "%s", name); fprintf(fp, "%s", email); fprintf(fp, "%s", cpf); fprintf(fp, "%s", birthDay); fprintf(fp, "%s", phoneNumber); fprintf(fp, "%s", street); fprintf(fp, "%s", streetNumber); fprintf(fp, "%s", neighborhood); fprintf(fp, "%s", city); fprintf(fp, "%s", state); fprintf(fp, "%s", cep); fprintf(fp, "%s", diagnosisDay); fprintf(fp, "%s", comorbidity); fclose(fp); return 1; } void cadastrar(){ system("cls"); printf("<<< Entrada de paciente >>>\n\n\n "); printf("\nDigite o Nome do Paciente: "); scanf ("%[^\n]s", &name); getchar(); printf("\nDigite o Email do Paciente: "); scanf ("%[^\n]s", &email); getchar(); printf("\nDigite o CPF do Paciente ( Somente Numeros "); scanf ("%[^\n]s", &cpf); getchar(); printf("\nData de nascimento do Paciente?\nNo formato DD/MM/AAAA: "); scanf ("%[^\n]s", &birthDay); getchar(); printf("\nDigite o telefone do Paciente (Somente Numeros "); scanf ("%[^\n]s", &phoneNumber); getchar(); printf("\nEndereço:\nLogradouro (rua, avenida, alameda ou outro): "); scanf ("%[^\n]s", &street); getchar(); printf("\nNúmero: "); scanf ("%[^\n]s", &streetNumber); getchar(); printf("\nBairro: "); scanf ("%[^\n]s", &neighborhood); getchar(); printf("\nCidade: "); scanf ("%[^\n]s", &city); getchar(); printf("\nEstado (sigla = XX): "); scanf ("%[^\n]s", &state); getchar(); printf("\nCEP (no formato 99999-999): "); scanf ("%[^\n]s", &cep); getchar(); printf("\nQual Dia do diagnostico?\nNo formato DD/MM/AAAA: "); scanf ("%[^\n]s", &diagnosisDay); getchar(); printf("\n O paciente tem alguma comorbidade?"); scanf ("%[^\n]s", &comorbidity); getchar(); if (salvar()) printf ("\n\nDados do paciente salvo em arquivo!\n\n"); else printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n"); system("pause"); } /* int comorbidity_option() { // ler tipos de comorbidades printf("Qual o tipo de comorbidade?\nEscolha entre as opções:\n"); printf("1- Diabetes"); printf("2- Obesidade\n"); printf("3- Hipertensão\n"); printf("4- Tuberculose\n"); printf("Opção: "); scanf("%d",&x); printf("\n"); return x; } */ int consultar() { system("cls"); FILE *fp; fp = fopen("arquivo.txt", "r"); if (fp == NULL) { return 0; } fscanf(fp, "%s", &name); fscanf(fp, "%s", &email); fscanf(fp, "%s", &cpf); fscanf(fp, "%s", &birthDay); fscanf(fp, "%s", &phoneNumber); fscanf(fp, "%s", &street); fscanf(fp, "%s", &streetNumber); fscanf(fp, "%s", &neighborhood); fscanf(fp, "%s", &city); fscanf(fp, "%s", &state); fscanf(fp, "%s", &cep); fscanf(fp, "%s", &diagnosisDay); fscanf(fp, "%s", &comorbidity); fclose(fp); return 1; } int pesquisar() { system("cls"); printf("*** Pesquisa sendo construída ***\n\n"); system("pause"); } void imprimir() { system("cls"); printf ("*** Consulta de Paciente ***\n\n\n\n\n"); printf ("Nome do Paciente: %s\n", name); printf ("E-mail: %s\n", email); printf ("Data de Nascimento: %s\n", birthDay); printf ("Telefone: %s\n", phoneNumber); printf ("Endereço:\n"); printf ("%s número: %s bairro: %s\n", street, streetNumber, neighborhood); printf ("cidade: %s estado: %s CEP: %s\n", city, state, cep); printf ("Data do diagnóstico: %s\n", diagnosisDay); printf ("Comorbidade: %s\n", comorbidity); printf ("\n\n * Dados do paciente recuperados do arquivo *\n\n"); } // FIM FUNÇÕES int main() { int opcao; setlocale(LC_ALL, "Portuguese"); if(validate_password()) { do { opcao = read_option(); switch(opcao) { case 0: system("cls"); printf ("* Você acabou de sair do sistema *\n\n"); system("pause"); return 0; case 1: cadastrar(); break; case 2: if (consultar()) imprimir(); else printf ("\n\nHouve um problema com a manipulação do arquivo.\n\n"); system ("pause"); break; case 3: pesquisar(); break; } } while (1); } }

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!