Outils pour utilisateurs

Outils du site


nsi:terminales:exercice_classes_employe

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
nsi:terminales:exercice_classes_employe [2021/06/25 11:04] goupillwikinsi:terminales:exercice_classes_employe [2022/08/29 21:41] (Version actuelle) goupillwiki
Ligne 5: Ligne 5:
 ===== Fichier de données ===== ===== Fichier de données =====
  
-Pour le service maintenance, on dispose du fichier suivant {{ :nsi:terminales:maintenance.csv |}}+Pour le service maintenance, on dispose du fichier suivant {{ :nsi:terminales:classes:maintenance.csv |}}
  
 Le fichier indique pour chaque employé son matricule, son nom, son age et son salaire mensuel. Le fichier indique pour chaque employé son matricule, son nom, son age et son salaire mensuel.
  
-Voici le contenu des premières lignes :+Voici le contenu des premières lignes :
  
-<csv> +<csv maxlines=5 nsi:terminales:maintenance.csv></csv>
-matricule,nom,age,salaire +
-MAINT0291/94,Vincent Munier,60,1550 +
-MAINT8468/15,Jean Garin,25,1200 +
-MAINT2546/43,Marion Pelletier,40,1500 +
-MAINT2433/67,Michel Chevalier,23,2000 +
-... +
-</csv>+
  
 On vous propose le fichier programme suivant pour une première extraction des données. On vous propose le fichier programme suivant pour une première extraction des données.
  
 <code python linenums> <code python linenums>
 +# fichier main.py
 import csv import csv
  
Ligne 33: Ligne 27:
     '''     '''
     file = open(filename, 'r', encoding='utf8')     file = open(filename, 'r', encoding='utf8')
-    reader = csv.DictReader(file, delimiter=';')+    reader = csv.DictReader(file, delimiter=',')
     items = []     items = []
     for item in reader:     for item in reader:
Ligne 43: Ligne 37:
 ===== Classe Employe ===== ===== Classe Employe =====
  
-Définissez une classe ''Employe'' avec les attra les attributs :+Dans un fichier ''employe.py'', définissez une classe ''Employe'' avec les attra les attributs :
  
 ^ **Employe**                                          ^ ^ **Employe**                                          ^
Ligne 58: Ligne 52:
 La fonction ''%%__str__%%'' devra renvoyer une chaîne formée ainsi : "[Matricule] nom prénom - age ans, salaire €" La fonction ''%%__str__%%'' devra renvoyer une chaîne formée ainsi : "[Matricule] nom prénom - age ans, salaire €"
  
 +Dans ''main.py'', modifiez la fonction ''%%load_file%%'' pour qu'elle produise un tableau d'objet ''Employe'' au lieu d'un tableau de dictionnaires.
 +
 +===== Fonctions supplémentaires =====
 +
 +Nous souhaitons avoir des méthodes pour gérer l'ensemble des employés, pour obtenir la moyenne, etc.
 +
 +Dans le fichier ''main.py'', définissez les fonctions suivantes :
 +
 +  - ''salaire_moyen(liste)'' qui renvoie le salaire moyen dans le service,
 +  - ''effectif(liste)'' qui renvoie le nombre d'employés dans le service,
 +  - ''doyen(liste)'' qui renvoie l'employé le plus âgé -- le premier s'il y en a plusieurs,
 +
 +Testez en ajoutant le code suivant en fin de fichier :
 +
 +<code python linenums>
 +liste = load_file("maintenance.csv")
 +s = salaire_moyen(liste)
 +e = effectif(liste)
 +d = doyen(liste)
 +print("salaire moyen : {}".format(s))
 +print("effectif : {}".format(e))
 +print("doyen : {}".format(d))
 +</code>
nsi/terminales/exercice_classes_employe.1624611853.txt.gz · Dernière modification : de goupillwiki