Created
June 24, 2018 21:52
-
-
Save MorenoMdz/dbf8e12e454a8d11052c17f6072ef198 to your computer and use it in GitHub Desktop.
Cadastro de alunos e cáculo de IMC com avaliação
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Programa para o cáculo do IMC com avaliação | |
| #include <stdio.h> | |
| #include <locale.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| // maximo de cadastros na agenda 20 | |
| #define MAX 20 | |
| // strutura chamada Aluno onde será armazenado nome, e-mail, peso e altura. | |
| struct aluno { | |
| char nome[30]; | |
| char email[30]; | |
| float peso; | |
| float altura; | |
| float imc; | |
| }; | |
| struct aluno cadastro[MAX]; | |
| void listar() { | |
| int i; | |
| printf("_____________________________\n\n"); | |
| for (i = 0; i < MAX; i++) { | |
| // Se o registro for vazio não lista | |
| if (strlen(cadastro[i].nome) == 0){ | |
| printf("%d: Posição vazia\n",i); | |
| } else { | |
| // Registro válido | |
| printf("%d: %s | %s | peso: %f | altura: %f |\n", i, cadastro[i].nome, cadastro[i].email, cadastro[i].peso, cadastro[i].altura); | |
| } | |
| } | |
| printf("_____________________________\n\n"); | |
| } | |
| void listarImc() { | |
| int i; | |
| float imc; | |
| char imcAval[30]; | |
| printf("_____________________________\n\n"); | |
| for (i = 0; i < MAX; i++) { | |
| // Se o registro for vazio não lista | |
| if (strlen(cadastro[i].nome) == 0){ | |
| printf("%d: Posição vazia\n",i); | |
| } else { | |
| // Registro válido | |
| imc = cadastro[i].imc; | |
| if (imc<18) sprintf(imcAval, "Abaixo do peso ideal."); | |
| else if (imc<=25) sprintf(imcAval, "No peso ideal."); | |
| else if (imc<=30) sprintf(imcAval, "Acima do peso ideal."); | |
| else sprintf(imcAval, "Obeso."); | |
| printf("%d: %s | %s | peso: %f | altura: %f | imc: %f | Avaliação: %s\n", i, cadastro[i].nome, cadastro[i].email, cadastro[i].peso, cadastro[i].altura, cadastro[i].imc, imcAval); | |
| } | |
| } | |
| printf("_____________________________\n\n"); | |
| } | |
| void inserir() { | |
| int posicao; | |
| char nome[30], email[30]; | |
| float peso, altura, imc; | |
| printf("_____________________________\n\n"); | |
| printf("Digite a posição no cadastro onde deseja incluir o aluno: "); | |
| scanf("%d", &posicao); | |
| printf("Digite o nome do aluno: "); | |
| scanf(" %[^\t\n]s", &nome); | |
| sprintf(cadastro[posicao].nome, nome); | |
| printf("Digite o email do aluno: "); | |
| scanf("%s", &email); | |
| sprintf(cadastro[posicao].email, email); | |
| printf("Digite o peso do aluno: "); | |
| scanf("%f", &cadastro[posicao].peso); | |
| printf("Digite a altura do aluno (usando vírgula, ex: 1,87): "); | |
| scanf("%f", &cadastro[posicao].altura); | |
| imc = cadastro[posicao].peso / (cadastro[posicao].altura * cadastro[posicao].altura); | |
| cadastro[posicao].imc = imc; | |
| printf("_____________________________\n\n"); | |
| printf("Cadastro efetuado com sucesso!\n\n"); | |
| printf("Listagem do cadastro atual:\n"); | |
| listar(); | |
| } | |
| void calcularImc() { | |
| int posicao; | |
| char nome[30]; | |
| float peso, altura, imc; | |
| printf("_____________________________\n\n"); | |
| printf("Posição do aluno que deseja consultar o IMC: "); | |
| scanf("%d", &posicao); | |
| if (strlen(cadastro[posicao].nome) == 0){ | |
| printf("\n%d: Posição vazia\n",posicao); | |
| } else { | |
| peso = cadastro[posicao].peso; | |
| altura = cadastro[posicao].altura; | |
| printf("\nDados do aluno na posicao %d de nome %s:\n", posicao, cadastro[posicao].nome); | |
| printf("Peso: %f Kg\n", peso); | |
| printf("Altura: %f metros\n", altura); | |
| imc = peso / (altura * altura); | |
| printf("\nBaseado no seu IMC o programa conclui que:\n\n"); | |
| if (imc<18) printf("O Índice de Massa Corpórea do aluno é %.2f indicando que está abaixo do peso ideal.\n", imc ); | |
| else if (imc<=25) printf("O Índice de Massa Corpórea do aluno é %.2f indicando que está no peso ideal.\n", imc ); | |
| else if (imc<=30) printf("O Índice de Massa Corpórea do aluno é %.2f indicando que está acima do peso ideal.\n", imc); | |
| else printf("O Índice de Massa Corpórea do aluno é %.2f indicando que está obeso.\n", imc); | |
| } | |
| printf("_____________________________\n\n"); | |
| } | |
| void excluir() { | |
| int posicao; | |
| printf("Em qual posição deseja apagar: "); | |
| scanf("%d", &posicao); | |
| sprintf(cadastro[posicao].nome, ""); | |
| sprintf(cadastro[posicao].email, ""); | |
| } | |
| void menu(){ | |
| int i, posicao, opcao; | |
| char nome[30], email[30]; | |
| float peso, altura, imc; | |
| do { | |
| system("cls"); | |
| printf("cadastro academia\n"); | |
| printf("Escolha uma opção:\n"); | |
| printf("Peso 1: %f \n", cadastro[1].peso); | |
| printf("1 - Cadastrar Aluno\n"); | |
| printf("2 - Listar Alunos\n"); | |
| printf("3 - Apagar Aluno\n"); | |
| printf("4 - Listar Alunos por com IMC\n"); | |
| printf("5 - Avaliação de IMC por aluno\n"); | |
| printf("0 - Sair do programa\n"); | |
| scanf("%d", &opcao); | |
| if (opcao == 0) { | |
| printf("Saindo do programa...\n"); | |
| break; | |
| } | |
| switch(opcao) { | |
| case 1: | |
| inserir(); | |
| break; | |
| case 2: | |
| listar(); | |
| break; | |
| case 3: | |
| excluir(); | |
| break; | |
| case 4: | |
| listarImc(); | |
| break; | |
| case 5: | |
| calcularImc(); | |
| break; | |
| default: | |
| printf("Opção inválida!"); | |
| break; | |
| } | |
| printf("Digite ENTER para continuar\n"); | |
| system("pause"); | |
| } while(1 == 1); | |
| } | |
| int main() { | |
| setlocale(LC_ALL, "Portuguese"); | |
| menu(); | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment