Exercices POO
TP Guidé : Concessionnaire Automobile
Partie 1 : La Classe Voiture
Nous reprenons la classe Voiture du cours.
class Voiture:
def __init__(self, immatriculation, marque, modele, annee, couleur):
self.immatriculation = immatriculation
self.marque = marque
self.modele = modele
self.annee = annee
self.couleur = couleur
self.est_demarre = False
def __str__(self):
# TODO 1: Afficher aussi si la voiture est démarrée
return f"Voiture {self.immatriculation} : {self.marque} {self.modele}"
def demarrer(self):
if not self.est_demarre:
self.est_demarre = True
print(f"Vroum ! {self.immatriculation} démarre.")
else:
print("Déjà démarrée !")
def arreter(self):
self.est_demarre = False
print("Moteur coupé.")
# TODO 2: Ajouter la méthode repeindre(self, nouvelle_couleur)
À faire
- Méthode
__str__: Modifiez-la pour qu'elle indique si la voiture est (Démarrée) ou (Arrêtée). - Méthode
repeindre: Créez une méthode qui change l'attributcouleuret affiche un message "La voiture passe de [ancienne] à [nouvelle]". - Tests : Créez 2 voitures, testez le démarrage, l'arrêt et la peinture.
Partie 2 : La Classe Concessionnaire
Une classe pour gérer un stock de voitures.
class Concessionnaire:
def __init__(self, nom):
self.nom = nom
self.stock = [] # Liste vide pour stocker les objets Voiture
def ajouter_voiture(self, voiture):
# TODO 3
pass
def afficher_stock(self):
# TODO 4
pass
def vendre_voiture(self, immatriculation):
# TODO 5
pass
À faire
ajouter_voiture(self, voiture): Ajoute l'objetvoitureà la listeself.stock.afficher_stock(self): Affiche toutes les voitures du stock (utilise leur__str__).vendre_voiture(self, immatriculation): Cherche la voiture dans la liste, la retire si trouvée et la renvoie. Sinon affiche "Non trouvée".
Exercices d'application (Niveau Facile)
Exercice 1 : Compte Bancaire
Écrire une classe CompteBancaire avec :
- Attributs :
titulaire(str),solde(float). - Méthodes :
deposer(montant),retirer(montant),afficher_solde().
??? success "Correction"
class CompteBancaire:
def __init__(self, titulaire, solde_initial=0):
self.titulaire = titulaire
self.solde = solde_initial
def deposer(self, montant):
self.solde += montant
print(f"{montant}€ déposés. Nouveau solde : {self.solde}€")
def retirer(self, montant):
if self.solde >= montant:
self.solde -= montant
print(f"{montant}€ retirés. Nouveau solde : {self.solde}€")
else:
print("Solde insuffisant !")
def afficher_solde(self):
print(f"Compte de {self.titulaire} : {self.solde}€")
Exercice 2 : Rectangle
Écrire une classe Rectangle avec :
- Attributs :
longueur,largeur. - Méthodes :
aire(),perimetre(),est_carre().
Exercices d'application (Niveau Intermédiaire)
Exercice 3 : Héritage (Animal)
- Créer une classe
Animalavecnomet une méthodeparler()qui affiche "Je suis un animal". - Créer une classe
Chienqui hérite d'Animalet redéfinitparler()pour afficher "Wouf !". - Créer une classe
Chatqui hérite d'Animalet redéfinitparler()pour afficher "Miaou !".
??? success "Correction"
class Animal:
def __init__(self, nom):
self.nom = nom
def parler(self):
print("Je suis un animal.")
class Chien(Animal):
def parler(self):
print(f"{self.nom} fait Wouf !")
class Chat(Animal):
def parler(self):
print(f"{self.nom} fait Miaou !")
rex = Chien("Rex")
rex.parler() # Affiche : Rex fait Wouf !