Solution Exercice 24 : TP - Héritage et Encapsulation en Python

Exercice 24

Objectif
Développer un programme de gestion de denrées alimentaires en appliquant les notions de programmation orientée objet, en particulier l'héritage et l'encapsulation.
Contexte
Un commerce alimentaire veut automatiser son suivi de stock. Il propose deux gammes d'articles : des produits classiques et des produits périssables (comme les fruits ou les laitages). Vous devez concevoir une structure de classes pour représenter ces produits.
Instructions
1. Classe de base : Produit
Concevez une classe Produit répondant aux spécifications suivantes :
Attributs privés :

  • _nom : chaîne de caractères (désignation du produit)
  • _prix : nombre décimal (valeur unitaire en euros)
  • _stock : nombre entier (quantité disponible)

Méthodes :

  • Constructeur __init__(self, nom, prix, stock) initialisant les trois attributs
  • afficher_infos(self) : méthode formatant et affichant toutes les données du produit
  • Accesseurs et mutateurs pour chaque attribut (exemples : get_nom(), set_nom())

2. Classe dérivée : ProduitPerissable
Concevez une classe ProduitPerissable qui dérive de la classe Produit.
Attribut supplémentaire privé :

  • _date_expiration : chaîne de caractères pour la date de péremption (au format "JJ/MM/AAAA")

Méthodes :

  • Constructeur acceptant les paramètres nom, prix, stock et date_expiration, et invoquant le constructeur parent
  • afficher_expiration(self) : méthode affichant uniquement la date de péremption
  • Accesseurs et mutateurs pour l'attribut _date_expiration

3. Programme de test à implémenter
Dans le bloc principal (if __name__ == "__main__"), codez un programme effectuant les étapes ci-dessous :

  1. Instanciez un produit périssable avec ces valeurs :
    • Nom : "Yaourt nature"
    • Prix : 2.50
    • Stock : 15 unités
    • Date d'expiration : "15/05/2024"
  2. Affichez les données initiales de l'objet :
    • Présentez toutes ses informations (nom, prix, stock)
    • Affichez sa date d'expiration de manière distincte
  3. Modifiez ses caractéristiques via les mutateurs :
    • Nouveau prix : 2.75 euros
    • Nouveau stock : 20 unités
    • Nouvelle date d'expiration : "20/05/2024"
  4. Visualisez à nouveau les informations pour confirmer la prise en compte des changements

Contraintes techniques

  • Tous les attributs doivent rester privés (avec le préfixe _)
  • Les interactions avec les attributs se font uniquement par les accesseurs et mutateurs
  • La classe ProduitPerissable doit étendre correctement les capacités de Produit
  • Le code doit être lisible, correctement indenté et annoté si besoin

Résultat attendu
À l'exécution du programme, vous devriez obtenir un affichage similaire à :

Solution

Output:


 


Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


Leave a Reply

Your email address will not be published. Required fields are marked *