Menu
Coddy logo textTech

Recapitulação: Struct de Dados de Aluno

Parte da seção Logic & Flow do Journey de C da Coddy — lição 43 de 63.

challenge icon

Desafio

Fácil

Crie um programa em C que demonstre o fluxo de trabalho completo do uso de structs com um sistema de gerenciamento de estudantes. Seu programa deve:

  1. Definir uma struct chamada Student com os seguintes membros:
    • Um inteiro id para armazenar o número de identificação do estudante
    • Um float grade para armazenar a nota do estudante
  2. Na função main, crie uma variável Student chamada student1
  3. Leia o ID e a nota do estudante da entrada usando scanf:
    • Leia um inteiro para o ID e armazene-o em student1.id
    • Leia um float para a nota e armazene-o em student1.grade
  4. Após ler a entrada, realize a seguinte validação e cálculos:
    • Se a nota for maior que 100.0, defina-a como 100.0
    • Se a nota for menor que 0.0, defina-a como 0.0
    • Calcule uma nota bônus adicionando 5.0 à nota atual (após a validação)
    • Se a nota bônus exceder 100.0, defina a nota bônus como 100.0
  5. Imprima as informações do estudante neste formato exato:
    • Student Information:
    • ID: [id]
    • Original Grade: [grade]
    • Bonus Grade: [bonus_grade]
    • Grade Status: [status]
  6. O status da nota deve ser determinado da seguinte forma:
    • Se a nota original for 90.0 ou superior: Excellent
    • Se a nota original for de 80.0 a 89.9: Good
    • Se a nota original for de 70.0 a 79.9: Average
    • Se a nota original for inferior a 70.0: Needs Improvement

Este desafio testa sua compreensão da definição de struct, criação de variáveis, acesso a membros usando o operador ponto, manipulação de entrada com scanf e lógica condicional para validação e processamento de dados. Você praticará o fluxo de trabalho completo de trabalhar com structs em um cenário prático.

Experimente você mesmo

#include <stdio.h>

// TODO: Defina a struct Student aqui

int main() {
    // TODO: Crie uma variável Student chamada student1
    
    // Ler entrada
    int id;
    float grade;
    scanf("%d", &id);
    scanf("%f", &grade);
    
    // TODO: Armazene os valores de entrada nos membros da struct
    
    // TODO: Implemente a validação da nota e o cálculo do bônus
    
    // TODO: Determine o status da nota
    
    // Exibir os resultados
    printf("Student Information:\n");
    printf("ID: %d\n", /* TODO: imprimir o ID do estudante */);
    printf("Original Grade: %.1f\n", /* TODO: imprimir a nota original */);
    printf("Bonus Grade: %.1f\n", /* TODO: imprimir a nota com bônus */);
    printf("Grade Status: %s\n", /* TODO: imprimir o status da nota */);
    
    return 0;
}

Todas as lições de Logic & Flow