Menu
CoddyTech

Récapitulatif - Fiches des étudiants

Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy. Leçon 35 sur 110.

challenge icon

Défi

Facile

Construisons un système de dossiers d’élèves qui rassemble tous les concepts d’encapsulation que tu as appris dans ce chapitre. Tu vas créer une classe Student qui protège correctement les données scolaires sensibles tout en permettant un accès contrôlé au moyen de getters, de setters et de propriétés calculées.

Tu vas organiser ton code dans deux fichiers :

  • student.dart : définis une classe Student qui gère les dossiers scolaires avec une encapsulation appropriée :
    • Un final String id : l’identifiant de l’élève ne doit jamais changer après sa création
    • Un String name public : le nom peut être modifié
    • Une List<int> _grades privée : la liste brute des notes doit être protégée
    • Un constructeur qui prend l’identifiant, le nom et une liste initiale de notes
    • Un getter gradeCount qui renvoie le nombre de notes enregistrées
    • Un getter calculé average qui calcule et renvoie la moyenne de toutes les notes sous forme de double (renvoie 0.0 s’il n’y a aucune note)
    • Un getter calculé letterGrade qui renvoie une lettre en fonction de la moyenne : 'A' pour 90 et plus, 'B' pour 80 à 89, 'C' pour 70 à 79, 'D' pour 60 à 69 et 'F' pour moins de 60
    • Une méthode addGrade(int grade) qui n’accepte que les notes comprises entre 0 et 100 (inclus). Si la note est valide, ajoute-la et affiche Grade [grade] added for [name]. Si elle n’est pas valide, affiche Invalid grade: [grade]
    • Une méthode getHighestGrade() qui renvoie la note la plus élevée, ou 0 s’il n’y a aucune note
    • Une méthode displayRecord() qui affiche le résumé scolaire de l’élève
  • main.dart : importe ta classe d’élève et montre l’encapsulation en action :
    • Crée un élève avec l’identifiant 'STU001', le nom 'Emma' et les notes initiales [85, 92, 78]
    • Appelle displayRecord()
    • Ajoute une note de 95
    • Essaie d’ajouter une note invalide de 150
    • Ajoute une note de 88
    • Appelle displayRecord()
    • Affiche Highest grade: [highest]

La méthode displayRecord() doit afficher les informations dans ce format :

===== Student Record =====
ID: [id]
Name: [name]
Grades Recorded: [gradeCount]
Average: [average]
Letter Grade: [letterGrade]

Résultat attendu :

===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 3
Average: 85.0
Letter Grade: B
Grade 95 added for Emma
Invalid grade: 150
Grade 88 added for Emma
===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 5
Average: 87.6
Letter Grade: B
Highest grade: 95

Essayez vous-même

import 'student.dart';

void main() {
  // TODO: Créer un étudiant avec l'identifiant 'STU001', le nom 'Emma' et les notes initiales [85, 92, 78]
  
  // TODO: Appeler displayRecord()
  
  // TODO: Ajouter une note de 95
  
  // TODO: Essayer d'ajouter une note invalide de 150
  
  // TODO: Ajouter une note de 88
  
  // TODO: Appeler displayRecord()
  
  // TODO: Afficher "Highest grade: [highest]"
}

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur Dart en ligne