Projet libre python
Ibtihale Meftah
Sahraoui Aya
1 Introduction
Ce code illustre une approche orientée objet pour la gestion des notes d’un mod-
ule universitaire dans une classe. Il utilise des concepts de la programmation
orientée objet (POO) tels que l’héritage, les méthodes, et les attributs, afin de
structurer les données des étudiants et leurs évaluations de manière claire et
extensible.
Objectif:
L’objectif principal est d’automatiser l’affichage et le calcul des notes finales des
étudiants inscrits dans un module spécifique, tout en déterminant leur statut
académique (validation, rattrapage, ou échec).
• Classe Etudiant : Représente les informations de base de chaque étudiant
(nom et CNE). Fournit une méthode pour afficher ces informations de
manière formatée.
• Classe Module : Hérite de la classe Etudiant pour ajouter des informations
spécifiques au module, comme les notes des travaux pratiques (TP) et
de l’examen final. Inclut des méthodes pour calculer la note finale en
appliquant un coefficient donné. Redéfinit la méthode afficherinfos pour
inclure toutes les informations pertinentes du module.
• Affichage organisé : Une mise en page soignée est utilisée pour afficher les
informations de manière tabulaire et lisible.
2 Programme:
1 # utiliser les classes pour l ’ afficahge des notes d ’ une classe pour
un module d o n n
2 class Etudiant : # la classe mere
3 def __init__ ( self , nom , CNE ) :
4 self . nom = nom
5 self . CNE = CNE
6 print ( " = " * 90) # affichage
7 print ( f " { ’ Nom ’: <15} | { ’ CNE ’: <10}| { ’ TP ’: <10}| { ’ Examen ’: <10} |
{ ’ Note final ’: <15} | { ’ d l i b r a t i o n ’: <10} " ) # affichage
organise
1
8 print ( " = " * 90)
9 def affiche r_infos ( self ) : # la methode qui affiche les
informations des etudiants
10 return f " { self . nom : <15}| { self . CNE : <10} "
11
12
13 class Module ( Etudiant ) : # classe fille qui herite les attribus et
la methode de la classe mere
14 def __init__ ( self , nom , CNE , note_tp , note_exam ,) : # ajouter
des attribus
15 super () . __init__ ( nom , CNE ) # super () est utilisee pour
appeler le constructeur de la classe parente depuis la
classe derivee , pour initialiser les attributs definis
dans la classe parente dans l ’ instance de la classe
fille .
16 self . note_tp = note_tp
17 self . note_exam = note_exam
18
19 def c a l c u l e r _ n o t e _ f i n a l ( self ) :
20
21 return round ( self . note_tp *0.2 + self . note_exam *0.8 ,2)
22 # calcule la note finale , puis arrondit le resultat 2
chiffres apres la virgule .
23 def deliberation ( self ) :
24 note_final = self . c a l c u l e r _ n o t e _ f i n a l ()
25 if note_final >= 10:
26 return " v "
27 elif ( note_final < 10) and ( note_final >5) :
28 return " Ratt "
29 else :
30 return " nv "
31
32 def affiche r_infos ( self ) :
33 note_final = self . c a l c u l e r _ n o t e _ f i n a l ()
34 delib = self . deliberation ()
35 infos = super () . affiche r_infos ()
36 return f " { infos : <10}| { self . note_tp : <10}| { self . note_exam
: <10} | { note_final : <15} | { delib : <10} "
37
38 # Liste des tudiants
39 etudiants = [
40 Module ( " Jean Dupont " , " R112345 " , 14 , 16) ,
41 Module ( " Alice Durand " , " D267890 " , 12 , 10) ,
42 Module ( " Nancy Blue " , " E567890 " , 12 , 7) ,
43 Module ( " Albert James " , " M367890 " , 10 , 3) ,
44 Module ( " Sarah Green " , " G123456 " , 15 , 9) ,
45 Module ( " Sarah Herni " , " M163456 " , 13 , 10) ,
46 Module ( " Zejee Konor " , " L123456 " , 12 , 12) ,
47 Module ( " Farah Rahib " , " N123756 " , 10 , 10) ,
48 Module ( " Sarah Green " , " T235689 " , 15 , 20) ,
49 Module ( " Sarah Green " , " L124578 " , 15 , 15)
50 ]
51
52 # Boucle pour afficher les informations de chaque tudiant
53 for etudiant in etudiants :
54 print ( etudiant . affic her_info s () )
55
2
56 print ( " = " * 90)
3 Exemples d’éxecution