Outils pour utilisateurs

Outils du site


nsi:terminales:exercice_classes_employe

Exercice : gestion des employés

On veut gérer les employés d'un service dans une entreprise.

Fichier de données

Pour le service maintenance, on dispose du fichier suivant maintenance.csv

Le fichier indique pour chaque employé son matricule, son nom, son age et son salaire mensuel.

Voici le contenu des 5 premières lignes :

requested local CSV file does not exist

On vous propose le fichier programme suivant pour une première extraction des données.

# fichier main.py
import csv

def load_file(filename):
    '''
    filename: nom du fichier csv
    renvoie un tableau dont chaque item est un dictionnaire représentant une ligne
    ex : [{"matricule":"MAINT0291/94", "nom":"Vincent Munier", "age":"60", "salaire":"1550"}, ...]
    remarquez qu'à ce stade, toutes les données sont considérées comme du texte.
    '''
    file = open(filename, 'r', encoding='utf8')
    reader = csv.DictReader(file, delimiter=',')
    items = []
    for item in reader:
        items.append(item)
    file.close()
    return items

Classe Employe

Dans un fichier employe.py, définissez une classe Employe avec les attra les attributs :

Employe
Attributs
+ matricule: str
+ nom: str
+ age: int
+ salaire: int
méthodes
__init__(self, matricule, nom, age, salaire)
__str__(self) → str

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 :

  1. salaire_moyen(liste) qui renvoie le salaire moyen dans le service,
  2. effectif(liste) qui renvoie le nombre d'employés dans le service,
  3. 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 :

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))
nsi/terminales/exercice_classes_employe.txt · Dernière modification : de goupillwiki