Baixe o app para aproveitar ainda mais
Prévia do material em texto
#include<stdio.h> #include<stdlib.h> #include<string.h> void limpaBuffer(){ setbuf(stdin,NULL); } float imcCalc (float peso, float altura){ float auxImc; auxImc = peso / (altura*altura); return auxImc; } //definicao da struct typedef struct { char nome[30]; int idade; float altura; float imc; float peso; } cadastro; void cadastrar(){ FILE *bancoPesquisa; cadastro pes; char sair='\0'; int indice = 1; bancoPesquisa = fopen("bancoPessoas.dat","wb+"); //gravar os dados digitados while (sair!='n'){ printf("Qual seu Nome?\n"); limpaBuffer(); gets(pes.nome); printf("Qual sua Idade?\n"); limpaBuffer(); scanf("%d",&pes.idade); printf("Qual sua Altura?\n"); limpaBuffer(); scanf("%f",&pes.altura); printf("Qual seu Peso?\n"); limpaBuffer(); scanf("%f",&pes.peso); // Popula o IMC para o arquivo BIN pes.imc = imcCalc(pes.peso,pes.altura); fwrite(&pes, sizeof(cadastro), 1, bancoPesquisa); indice++; if(indice>=2 && indice<2){ printf("Digite n Para Encerrar Pesquisa...\n"); limpaBuffer(); scanf("%c", &sair); } else if (indice >2){ sair = 'n'; } } fclose(bancoPesquisa); } void exibir(){ FILE *bancoPesquisa; cadastro pes; bancoPesquisa = fopen("bancoPessoas.dat","rb+"); if (bancoPesquisa != NULL) { fread(&pes, sizeof(cadastro), 1, bancoPesquisa); if (ferror(bancoPesquisa)) { printf("\nOcorreu um erro na leitura."); } while (!feof(bancoPesquisa)) { limpaBuffer(); printf("\nNome: %s | Idade: %2d | Altura: %.2f | Peso: %.2f | IMC: %.2f |", pes.nome, pes.idade, pes.altura, pes.peso, pes.imc ); fread(&pes, sizeof(cadastro), 1, bancoPesquisa); } } fclose(bancoPesquisa); } void exibir40Anos(){ FILE *bancoPesquisa; cadastro pes; bancoPesquisa = fopen("bancoPessoas.dat","rb+"); if (bancoPesquisa != NULL) { fread(&pes, sizeof(cadastro), 1, bancoPesquisa); if (ferror(bancoPesquisa)) { printf("\nOcorreu um erro na leitura."); } while (!feof(bancoPesquisa)) { limpaBuffer(); if(pes.idade>40) printf("\nNome: %s | Idade: %2d | Altura: %.2f | Peso: %.2f | IMC: %.2f |", pes.nome, pes.idade, pes.altura, pes.peso, pes.imc ); fread(&pes, sizeof(cadastro), 1, bancoPesquisa); } } fclose(bancoPesquisa); } void exibirAcimaPeso(){ FILE *bancoPesquisa; cadastro pes; bancoPesquisa = fopen("bancoPessoas.dat","rb+"); if (bancoPesquisa != NULL) { fread(&pes, sizeof(cadastro), 1, bancoPesquisa); if (ferror(bancoPesquisa)) { printf("\nOcorreu um erro na leitura."); } while (!feof(bancoPesquisa)) { limpaBuffer(); if( pes.imc >= 26 && pes.imc <=30 ) printf("\nNome: %s | Idade: %2d | Altura: %.2f | Peso: %.2f | IMC: %.2f |", pes.nome, pes.idade, pes.altura, pes.peso, pes.imc ); fread(&pes, sizeof(cadastro), 1, bancoPesquisa); } } fclose(bancoPesquisa); } void exibirAcimaMeioMetro(){ FILE *bancoPesquisa; cadastro pes; bancoPesquisa = fopen("bancoPessoas.dat","rb+"); if (bancoPesquisa != NULL) { fread(&pes, sizeof(cadastro), 1, bancoPesquisa); if (ferror(bancoPesquisa)) { printf("\nOcorreu um erro na leitura."); } while (!feof(bancoPesquisa)) { limpaBuffer(); if( pes.altura >1.5 ) printf("\nNome: %s | Idade: %2d | Altura: %.2f | Peso: %.2f | IMC: %.2f |", pes.nome, pes.idade, pes.altura, pes.peso, pes.imc ); fread(&pes, sizeof(cadastro), 1, bancoPesquisa); } } fclose(bancoPesquisa); } main(){ int menu; do{ printf ("Escolha uma opcao no Menu: \n\n"); printf ("\t 1 - Cadastrar \n"); printf ("\t 2 - Exibir Tudo \n"); printf ("\t 3 - Pessoas Acima de 40 Anos \n"); printf ("\t 4 - Pessoas Acima do Peso \n"); printf ("\t 5 - Pessoas Acima Meio Metro \n"); printf ("\t 0 - Sair \n"); printf("\nOpcao: "); scanf ("%d",&menu); switch (menu){ case 1: system("cls || clear"); printf(" \t\t\t\tCadastro\n\n"); cadastrar(); system("cls || clear"); break; case 2: system("cls || clear"); printf(" \t\t\t\tPesquisa do Usuario\n\n"); exibir(); printf("\n\n"); system("pause"); system("cls || clear"); break; case 3: system("cls || clear"); printf(" \t\t\t\tPessoas Acima de 40 Anos\n\n"); exibir40Anos(); printf("\n\n"); system("pause"); system("cls || clear"); break; case 4: system("cls || clear"); printf(" \t\t\tPessoas Acima do Peso\n"); printf(" \t\t\tOnde o IMC >=26 e <=30\n\n"); exibirAcimaPeso(); printf("\n\n"); system("pause"); system("cls || clear"); break; case 5: system("cls || clear"); printf(" \t\t\t\tPessoas Acima Meio Metro\n\n"); exibirAcimaMeioMetro(); printf("\n\n"); system("pause"); system("cls || clear"); break; case 0: return(0); break; default : printf("\t\tA opcao escolhida nao existe no Menu ... \n \n"); system("pause"); system("cls || clear"); break; } }while(menu); }
Compartilhar