Récapitulatif : Struct de données étudiant
Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 43 sur 63.
Défi
FacileCréez un programme C qui illustre le flux de travail complet de l'utilisation des structures avec un système de gestion d'é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'ID et la note de l'étudiant à partir de l'entrée standard en utilisant
scanf:- Lire un entier pour l'ID et le stocker dans
student1.id - Lire un flottant pour la note et le stocker dans
student1.grade
- Lire un entier pour l'ID et le stocker dans
- Après avoir lu l'entrée, effectuer les validations et calculs suivants :
- Si la note est supérieure à 100.0, la fixer à 100.0
- Si la note est inférieure à 0.0, la fixer à 0.0
- Calculer une note bonus en ajoutant 5.0 à la note actuelle (après validation)
- Si la note bonus dépasse 100.0, fixer la note bonus à 100.0
- Afficher les informations de l'étudiant exactement dans ce format :
Student Information:ID: [id]Original Grade: [grade]Bonus Grade: [bonus_grade]Grade Status: [status]
- Le statut de la note (grade status) doit être déterminé comme suit :
- Si la note originale est de 90.0 ou plus :
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 de 90.0 ou plus :
Ce défi teste votre compréhension de la définition de 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 pratiquerez le flux de travail complet de manipulation des structures dans un scénario pratique.
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 Logic & Flow
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înes