Skip to content

Instantly share code, notes, and snippets.

@MorenoMdz
Created June 24, 2018 21:52
Show Gist options
  • Select an option

  • Save MorenoMdz/dbf8e12e454a8d11052c17f6072ef198 to your computer and use it in GitHub Desktop.

Select an option

Save MorenoMdz/dbf8e12e454a8d11052c17f6072ef198 to your computer and use it in GitHub Desktop.
Cadastro de alunos e cáculo de IMC com avaliação
// 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