A maior rede de estudos do Brasil

Grátis
4 pág.
pesquisa_imc

Pré-visualização | Página 1 de 1

#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);
}