mirror of
https://github.com/BreizhHardware/cours-ISEN-MD.git
synced 2026-03-18 21:50:46 +01:00
Obisidian vault auto-backup: 10-09-2025 13:44:00 on . 3 files edited
This commit is contained in:
10
.obsidian/workspace.json
vendored
10
.obsidian/workspace.json
vendored
@@ -37,7 +37,7 @@
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "ISEN/JAVA/CIPA4/Exercice Gestion d'une bibliothèque en Java.md",
|
||||
"file": "ISEN/JAVA/CIPA4/Exercice Gestion d'un parc automobile en Java.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": true,
|
||||
@@ -52,7 +52,7 @@
|
||||
}
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Exercice Gestion d'une bibliothèque en Java"
|
||||
"title": "Exercice Gestion d'un parc automobile en Java"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -243,9 +243,11 @@
|
||||
},
|
||||
"active": "cbcc85c28ced408b",
|
||||
"lastOpenFiles": [
|
||||
"ISEN/JAVA/CIPA4/Exercice Gestion d'un parc automobile en Java.pdf",
|
||||
"ISEN/JAVA/CIPA4/Exercice Gestion d'une bibliothèque en Java.md",
|
||||
"ISEN/JAVA/CIPA4/Exercice Gestion d'un parc automobile en Java.md",
|
||||
"ISEN/JAVA/CIPA4/Exercice Gestion d'une bibliothèque en Java.pdf",
|
||||
"ISEN/JAVA/CIPA4/CM/05-swing.pdf",
|
||||
"ISEN/JAVA/CIPA4/Exercice Gestion d'une bibliothèque en Java.md",
|
||||
"ISEN/JAVA/CIPA4/CM/04-classes-abstraites-interfaces.pdf",
|
||||
"ISEN/JAVA/CIPA4/Java Cours 1.md",
|
||||
"ISEN/BDD/CIPA4/Cas modélisation alternatifs.md",
|
||||
@@ -259,7 +261,6 @@
|
||||
"ISEN/BDD/CIR2/Td1.pdf",
|
||||
"ISEN/English/CIPA4/My CIPA3 year Reflexive feedback.md",
|
||||
"ISEN/English/CIPA4/~$ CIPA3 year Reflexive feedback.docx",
|
||||
"ISEN/English/CIPA4/My CIPA3 year Reflexive feedback.docx",
|
||||
"ISEN/BDD/CIPA4/BDD Cours 1.md",
|
||||
"Pasted image 20250905143950.png",
|
||||
"Pasted image 20240505210657.png",
|
||||
@@ -289,7 +290,6 @@
|
||||
"ISEN/Developpement durable/CIPA3/Developpement durable Cours 1.md",
|
||||
"ISEN/Developpement durable/CIPA3/Figure Félix Marquet.md",
|
||||
"ISEN/STM32/CIPA3/STM32 Cours 3.md",
|
||||
"ISEN/STM32/CIPA3/STM32 Cours 2.md",
|
||||
"ISEN/Modelec/NB point.canvas",
|
||||
"ISEN/Réseau/A2/TP Ansible et docker.canvas",
|
||||
"Untitled.canvas",
|
||||
|
||||
144
ISEN/JAVA/CIPA4/Exercice Gestion d'un parc automobile en Java.md
Normal file
144
ISEN/JAVA/CIPA4/Exercice Gestion d'un parc automobile en Java.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# Exercice : Gestion d'un parc automobile en Java
|
||||
|
||||
## Contexte
|
||||
Vous êtes chargé·e de modéliser un parc automobile pour une entreprise de location. Le parc contient des **voitures thermiques**, des **voitures électriques** et des **camions**. Chaque type de véhicule a des caractéristiques et des comportements spécifiques. Vous utiliserez des **classes abstraites** et des **interfaces** pour structurer votre code.
|
||||
|
||||
---
|
||||
|
||||
## Partie 1 : Classe abstraite et héritage
|
||||
|
||||
### 1. Classe abstraite `Vehicule`
|
||||
Créez une classe abstraite `Vehicule` qui représente un véhicule générique.
|
||||
|
||||
**Attributs :**
|
||||
- `marque` (String)
|
||||
- `modele` (String)
|
||||
- `annee` (int)
|
||||
- `kilometrage` (double)
|
||||
|
||||
**Méthodes :**
|
||||
- Un constructeur pour initialiser les attributs.
|
||||
- Les accesseurs (getters) et mutateurs (setters) pour chaque attribut.
|
||||
- Une méthode abstraite `afficherCaracteristiques()` : chaque sous-classe devra implémenter cette méthode pour afficher ses caractéristiques spécifiques.
|
||||
- Une méthode concrète `rouler(double km)` : ajoute les kilomètres parcourus au kilométrage total.
|
||||
|
||||
---
|
||||
|
||||
### 2. Classe `VoitureThermique` (héritage de `Vehicule`)
|
||||
Créez une classe `VoitureThermique` qui hérite de `Vehicule`.
|
||||
|
||||
**Attributs supplémentaires :**
|
||||
- `typeCarburant` (String, ex: "Essence", "Diesel")
|
||||
- `reservoir` (double, en litres)
|
||||
|
||||
**Méthodes :**
|
||||
- Un constructeur pour initialiser les attributs.
|
||||
- Implémentez la méthode `afficherCaracteristiques()` pour afficher les détails de la voiture thermique.
|
||||
- Ajoutez une méthode `fairePlein(double litres)` : ajoute des litres au réservoir et affiche un message.
|
||||
|
||||
---
|
||||
|
||||
### 3. Classe `VoitureElectrique` (héritage de `Vehicule`)
|
||||
Créez une classe `VoitureElectrique` qui hérite de `Vehicule`.
|
||||
|
||||
**Attributs supplémentaires :**
|
||||
- `autonomie` (double, en km)
|
||||
- `niveauBatterie` (int, en %)
|
||||
|
||||
**Méthodes :**
|
||||
- Un constructeur pour initialiser les attributs.
|
||||
- Implémentez la méthode `afficherCaracteristiques()` pour afficher les détails de la voiture électrique.
|
||||
- Ajoutez une méthode `recharger()` : met le niveau de batterie à 100% et affiche un message.
|
||||
|
||||
---
|
||||
|
||||
### 4. Classe `Camion` (héritage de `Vehicule`)
|
||||
Créez une classe `Camion` qui hérite de `Vehicule`.
|
||||
|
||||
**Attributs supplémentaires :**
|
||||
- `chargeMax` (double, en tonnes)
|
||||
- `chargeActuelle` (double, en tonnes)
|
||||
|
||||
**Méthodes :**
|
||||
- Un constructeur pour initialiser les attributs.
|
||||
- Implémentez la méthode `afficherCaracteristiques()` pour afficher les détails du camion.
|
||||
- Ajoutez une méthode `charger(double poids)` : ajoute une charge au camion si la charge maximale n'est pas dépassée.
|
||||
|
||||
---
|
||||
|
||||
## Partie 2 : Interfaces et comportements spécifiques
|
||||
|
||||
### 5. Interface `Revisable`
|
||||
Créez une interface `Revisable` qui définit les comportements suivants :
|
||||
- `faireRevision()` : affiche un message indiquant que le véhicule est en révision.
|
||||
- `terminerRevision()` : affiche un message indiquant que la révision est terminée.
|
||||
|
||||
**Faites implémenter cette interface par toutes les sous-classes de `Vehicule`.**
|
||||
|
||||
---
|
||||
|
||||
### 6. Interface `Locable`
|
||||
Créez une interface `Locable` qui définit les comportements suivants :
|
||||
- `louer()` : affiche un message indiquant que le véhicule est loué.
|
||||
- `retourner()` : affiche un message indiquant que le véhicule est retourné.
|
||||
|
||||
**Faites implémenter cette interface uniquement par les classes `VoitureThermique` et `VoitureElectrique`.**
|
||||
|
||||
---
|
||||
|
||||
## Partie 3 : Gestion du parc automobile
|
||||
|
||||
### 7. Classe `ParcAutomobile`
|
||||
Créez une classe `ParcAutomobile` avec les attributs et méthodes suivants :
|
||||
|
||||
**Attributs :**
|
||||
- `listeVehicules` (ArrayList de Vehicules)
|
||||
|
||||
**Méthodes :**
|
||||
- Un constructeur pour initialiser la liste de véhicules.
|
||||
- `ajouterVehicule(Vehicule v)` : ajoute un véhicule au parc.
|
||||
- `afficherParc()` : affiche les caractéristiques de tous les véhicules du parc.
|
||||
- `faireReviserTout()` : appelle la méthode `faireRevision()` sur tous les véhicules du parc.
|
||||
|
||||
---
|
||||
|
||||
## Partie 4 : Test et interaction
|
||||
|
||||
### 8. Classe `Main`
|
||||
Créez une classe `Main` avec une méthode `main()` pour tester votre implémentation.
|
||||
|
||||
**Dans la méthode `main()` :**
|
||||
- Créez au moins une voiture thermique, une voiture électrique et un camion.
|
||||
- Ajoutez-les au parc automobile.
|
||||
- Faites rouler chaque véhicule sur une distance donnée.
|
||||
- Faites le plein ou rechargez les voitures, et chargez le camion.
|
||||
- Louez une voiture thermique et une voiture électrique.
|
||||
- Affichez les caractéristiques de tous les véhicules du parc.
|
||||
- Lancez une révision pour tous les véhicules.
|
||||
|
||||
---
|
||||
|
||||
## Exemple d'exécution attendu
|
||||
|
||||
Caractéristiques de la voiture thermique :
|
||||
Marque : Renault
|
||||
Modèle : Mégane
|
||||
Année : 2019
|
||||
Kilométrage : 85000.0 km
|
||||
Carburant : Essence
|
||||
Réservoir : 47.0 litres
|
||||
|
||||
Voiture thermique louée.
|
||||
Camion en révision.
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Consignes supplémentaires
|
||||
- Respectez l'encapsulation (attributs privés, getters/setters publics).
|
||||
- Utilisez le mot-clé `super` dans les constructeurs des classes filles.
|
||||
- Gérez les cas où la charge du camion dépasse sa capacité maximale.
|
||||
|
||||
---
|
||||
|
||||
© Félix MARQUET
|
||||
Binary file not shown.
Reference in New Issue
Block a user