Exercice 3 - Partie A · Bac Numérique et Sciences Informatiques Asie 2024 (jour 1)
Thème : Programmation orientée objet : classes, attributs, méthodes · Tiré du sujet Jour 1 (2024)
Énoncé
EXERCICE 3 (8 points)
Cet exercice porte sur la programmation Python, la programmation orientée objet, les bases de données relationnelles et les requêtes SQL.
Partie A
Une entreprise, présente sur différents sites en France, attribue à chacun de ses employés un numéro de badge unique.
Dans le tableau ci-dessous, on donne le numéro de badge, le nom, le prénom et les années de naissance et d’entrée dans l’entreprise de quelques salariés.
numéro badge · nom · prénom · année de naissance · année d’entrée
112 · LESIEUR · Isabelle · 1982 · 2005
2122 · VASSEUR · Adrien · 1962 · 1980
135 · HADJI · Hakim · 1992 · 2015
Pour chaque personne, on souhaite stocker les informations dans un objet de la classe Personne définie ci-dessous:
class Personne():
def __init__(self, num, n, p, a_naiss, a_entree):
self.num_badge = num
self.nom = n
self.prenom = p
self.annee_naissance = a_naiss
self.annee_entree = a_entree
1.
Écrire à l'aide du tableau précédent, l'instruction permettant de créer l'objet personneA de la première personne du tableau: LESIEUR Isabelle.
2.
Donner l'instruction permettant d'obtenir le numéro de badge de l'objet personneA instancié à la question précédente.
3.
On souhaite ajouter une méthode annee_anciennete à la classe Personne qui donne le nombre d'années d'ancienneté d'une personne au sein de l'entreprise. Par exemple: Madame LESIEUR Isabelle a une ancienneté dans l'entreprise de 19 ans en considérant que nous sommes en 2024.
Recopier et compléter le code suivant de la méthode annee_anciennete:
def annee_anciennete(self):
return...
On considère la classe Personnel qui modélise la liste du personnel d'une entreprise et dont le début de l'implémentation est la suivante:
class Personnel:
def __init__(self):
self.liste = []
4.
Écrire la méthode ajouter permettant d'ajouter un objet de type Personne à la liste du personnel de l'entreprise de la classe Personnel.
5.
Écrire la méthode effectif de la classe Personnel. Cette méthode devra renvoyer le nombre de personnes présentes dans l'entreprise.
6.
Recopier et compléter la méthode donne_nom de la classe Personnel. Cette méthode prend en paramètre le numéro de badge d'une personne et renvoie le nom de la personne correspondant à ce badge si elle existe, ou None sinon.
def donne_nom(..., num):
for elt in self.liste:
if... == num:
return...
return...
7.
Lors de la célèbre cérémonie des vœux, l'entreprise souhaite mettre à l'honneur les personnes ayant exactement 10 ans d'ancienneté dans l'entreprise. Écrire une méthode de la classe Personnel nb_personne_honneur qui prend en paramètre l'année de la cérémonie et qui retourne le nombre de personne(s) à mettre à l'honneur.
8.
Écrire une méthode plus_anciens de la classe Personnel qui retourne la liste des numéros de badge des personnes ayant la plus grande ancienneté dans l'entreprise.

Corrigé
Corrigé proposé par AprenAI (non officiel)
1. Écrire à l'aide du tableau précédent, l'instruction permettant de créer l'objet personneA de la première personne du tableau : LESIEUR Isabelle.
Réponse : ```python personneA = Personne(112, "LESIEUR", "Isabelle", 1982, 2005) ```
2. Donner l'instruction permettant d'obtenir le numéro de badge de l'objet personneA instancié à la question précédente.
Réponse : ```python personneA.num_badge ```
3. Recopier et compléter le code suivant de la méthode annee_anciennete :
Réponse : ```python return 2024 - self.annee_entree ```
4. Écrire la méthode ajouter permettant d'ajouter un objet de type Personne à la liste du personnel de l'entreprise de la classe Personnel.
Réponse : ```python def ajouter(self, p): self.liste.append(p) ```
Les réponses des 4 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 1 · Asie 2024 (jour 1) · Exercice 4 · Asie 2022 (jour 1) ›