Récapitulatif : Struct de données étudiant
Fait partie de la section Logique & Flux du Journey C de Coddy. Leçon 43 sur 63.
Défi
FacileCréez un programme en C qui montre le flux de travail complet de l'utilisation des structures avec un système de gestion des étudiants. Votre programme doit :
- Définir une
structnomméeStudentavec les membres suivants :- Un entier
idpour stocker le numéro d'identification de l'étudiant - Un flottant
gradepour stocker la note de l'étudiant
- Un entier
- Dans la fonction principale, créer une variable
Studentnomméestudent1 - Lire l'identifiant et la note de l'étudiant à partir de l'entrée à l'aide de
scanf:- Lire un entier pour l'identifiant et le stocker dans
student1.id - Lire un flottant pour la note et le stocker dans
student1.grade
- Lire un entier pour l'identifiant et le stocker dans
- Après avoir lu l'entrée, effectuer la validation et les calculs suivants :
- Si la note est supérieure à 100.0, la définir à 100.0
- Si la note est inférieure à 0.0, la définir à 0.0
- Calculer une note bonus en ajoutant 5.0 à la note actuelle (après validation)
- Si la note bonus dépasse 100.0, la définir à 100.0
- Afficher les informations de l'étudiant dans ce format exact :
Student Information:ID: [id]Original Grade: [grade]Bonus Grade: [bonus_grade]Grade Status: [status]
- Le statut de la note doit être déterminé comme suit :
- Si la note originale est supérieure ou égale à 90.0 :
Excellent - Si la note originale est comprise entre 80.0 et 89.9 :
Good - Si la note originale est comprise entre 70.0 et 79.9 :
Average - Si la note originale est inférieure à 70.0 :
Needs Improvement
- Si la note originale est supérieure ou égale à 90.0 :
Ce défi teste votre compréhension de la définition d'une structure, de la création de variables, de l'accès aux membres à l'aide de l'opérateur point, de la gestion des entrées avec scanf et de la logique conditionnelle pour la validation et le traitement des données. Vous mettrez en pratique le flux de travail complet lié à l'utilisation des structures dans un scénario concret.
Essayez vous-même
#include <stdio.h>
// TODO: Définir la structure Student ici
int main() {
// TODO: Créer une variable Student nommée student1
// Lire l'entrée
int id;
float grade;
scanf("%d", &id);
scanf("%f", &grade);
// TODO: Stocker les valeurs d'entrée dans les membres de la structure
// TODO: Implémenter la validation de la note et le calcul du bonus
// TODO: Déterminer le statut de la note
// Afficher les résultats
printf("Student Information:\n");
printf("ID: %d\n", /* TODO: afficher l'ID de l'étudiant */);
printf("Original Grade: %.1f\n", /* TODO: afficher la note originale */);
printf("Bonus Grade: %.1f\n", /* TODO: afficher la note bonus */);
printf("Grade Status: %s\n", /* TODO: afficher le statut de la note */);
return 0;
}Toutes les leçons de Logique & Flux
1Les bases des pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de pointeursL'opérateur d'adresse (&)L'opérateur de déréférencement (*)Pointeurs NULLRécapitulatif : Les bases des pointeurs4Projet : Utilitaire de texte simple
Présentation du projetCompter les caractères7Structures (structs)
Qu'est-ce qu'une Struct ?Déclarer une StructCréer des variables de type StructAccéder aux membres d'une StructInitialiser des StructsRécapitulatif : Struct de données étudiant2Pointeurs et Tableaux
Noms de tableaux comme pointeursÉléments de tableau - PointeursArithmétique des pointeursComparaison de pointeursRécapitulatif : Parcours de tableau par pointeur5Pointeurs et fonctions
Passage par valeurPassage de pointeurs aux fonctionsModifier des variables via des pointeursUn exemple classique : SwapPassage de tableaux aux fonctionsRécapitulatif : Pointeurs comme arguments de fonction3Tableaux de caractères et chaînes
Les chaînes comme tableaux de charLe terminateur nulSaisie de chaînes avec scanfUtilisation de strlen()Utilisation de strcpy()Utilisation de strcat()Utilisation de strcmp()Récapitulatif : Fonctions de base sur les chaînesEntraînez-vous par vous-même : Compilateur C en ligne