Compare commits

..

3 Commits

Author SHA1 Message Date
Vincent Guillet
abdbf6f273 Ajout de la classe pour gérer les différents véhicules 2025-04-28 18:29:11 +02:00
Vincent Guillet
0c13ca1bb8 Ajout des classes pour les différents types de véhicules 2025-04-28 18:28:47 +02:00
Vincent Guillet
b583507870 Ajout de la classe abstraire Vehicule avec les attributs communs à tous les véhicules 2025-04-28 18:25:29 +02:00
6 changed files with 620 additions and 0 deletions

View File

@@ -0,0 +1,71 @@
package com.humanbooster.exercices;
public class Camion extends Vehicule {
private Remorque remorque;
/**
* Constructeur de la classe Camion
*
* @param marque La marque du camion
* @param modele Le modèle du camion
* @param vitesseMax La vitesse maximale du camion
* @param remorque La remorque attachée au camion
*/
public Camion(String marque, String modele, int vitesseMax, Remorque remorque) {
super(marque, modele, vitesseMax);
this.remorque = remorque;
}
/**
* Méthode pour obtenir la remorque attachée au camion
*
* @return La remorque attachée au camion
*/
public Remorque getRemorque() {
return remorque;
}
/**
* Méthode pour définir la remorque attachée au camion
*
* @param remorque La remorque à attacher au camion
*/
public void setRemorque(Remorque remorque) {
this.remorque = remorque;
}
/**
* Méthode pour démarrer le camion
*/
@Override
public void demarrer() {
System.out.println("Le camion démarre.");
}
/**
* Méthode pour faire accélérer le camion
*/
@Override
public void accelerer() {
System.out.println("Le camion accélère.");
}
/**
* Méthode pour faire freiner le camion
*/
@Override
public void freiner() {
System.out.println("Le camion freine.");
}
/**
* Méthode pour obtenir le type de véhicule
*
* @return Le type de véhicule
*/
@Override
public String getTypeVehicule() {
return "Camion";
}
}

View File

@@ -0,0 +1,71 @@
package com.humanbooster.exercices;
public class Moto extends Vehicule {
private int cylindree;
/**
* Constructeur de la classe Moto
*
* @param marque La marque de la moto
* @param modele Le modèle de la moto
* @param vitesseMax La vitesse maximale de la moto
* @param cylindree La cylindrée de la moto
*/
public Moto(String marque, String modele, int vitesseMax, int cylindree) {
super(marque, modele, vitesseMax);
this.cylindree = cylindree;
}
/**
* Méthode pour obtenir la cylindrée de la moto
*
* @return La cylindrée de la moto
*/
public int getCylindree() {
return cylindree;
}
/**
* Méthode pour définir la cylindrée de la moto
*
* @param cylindree La cylindrée de la moto
*/
public void setCylindree(int cylindree) {
this.cylindree = cylindree;
}
/**
* Méthode pour démarrer la moto
*/
@Override
public void demarrer() {
System.out.println("La moto démarre.");
}
/**
* Méthode pour faire accélérer la moto
*/
@Override
public void accelerer() {
System.out.println("La moto accélère.");
}
/**
* Méthode pour faire freiner la moto
*/
@Override
public void freiner() {
System.out.println("La moto freine.");
}
/**
* Méthode pour obtenir le type de véhicule
*
* @return Le type de véhicule
*/
@Override
public String getTypeVehicule() {
return "Moto";
}
}

View File

@@ -0,0 +1,4 @@
package com.humanbooster.exercices;
public class Remorque {
}

View File

@@ -0,0 +1,104 @@
package com.humanbooster.exercices;
/**
* La classe Vehicule est une classe abstraite qui représente un véhicule.
* Elle contient des attributs communs à tous les véhicules, tels que la marque, le modèle et la vitesse maximale.
*/
public abstract class Vehicule {
protected String marque;
protected String modele;
protected int vitesseMax;
/**
* Constructeur de la classe Vehicule
*
* @param marque La marque du véhicule
* @param modele Le modèle du véhicule
* @param vitesseMax La vitesse maximale du véhicule
*/
public Vehicule(String marque, String modele, int vitesseMax) {
this.marque = marque;
this.modele = modele;
this.vitesseMax = vitesseMax;
}
/**
* Méthode pour obtenir la marque du véhicule
* @return La marque du véhicule
*/
public String getMarque() {
return marque;
}
/**
* Méthode pour définir la marque du véhicule
* @param marque La marque du véhicule
*/
public void setMarque(String marque) {
this.marque = marque;
}
/**
* Méthode pour obtenir le modèle du véhicule
* @return Le modèle du véhicule
*/
public String getModele() {
return modele;
}
/**
* Méthode pour définir le modèle du véhicule
* @param modele Le modèle du véhicule
*/
public void setModele(String modele) {
this.modele = modele;
}
/**
* Méthode pour obtenir la vitesse maximale du véhicule
* @return La vitesse maximale du véhicule
*/
public int getVitesseMax() {
return vitesseMax;
}
/**
* Méthode pour définir la vitesse maximale du véhicule
* @param vitesseMax La vitesse maximale du véhicule
*/
public void setVitesseMax(int vitesseMax) {
this.vitesseMax = vitesseMax;
}
/**
* Méthode pour afficher les informations du véhicule
*/
public void afficherInfos() {
System.out.println("\nMarque : " + marque);
System.out.println("Modèle : " + modele);
System.out.println("Vitesse max : " + vitesseMax + " km/h");
System.out.println("----------------------------------");
}
/**
* Méthode abstraite pour démarrer le véhicule
*/
public abstract void demarrer();
/**
* Méthode abstraite pour faire accélérer le véhicule
*/
public abstract void accelerer();
/**
* Méthode abstraite pour faire freiner le véhicule
*/
public abstract void freiner();
/**
* Méthode abstraite pour obtenir le type de véhicule
* @return Le type de véhicule
*/
public abstract String getTypeVehicule();
}

View File

@@ -0,0 +1,299 @@
package com.humanbooster.exercices;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class VehiculeManager {
private final List<Vehicule> listeVehicules;
private final List<Voiture> listeVoitures;
private final List<Moto> listeMotos;
private final List<Camion> listeCamions;
/**
* Constructeur de la classe VehiculeManager
* Initialise les listes de véhicules
*/
public VehiculeManager () {
listeVehicules = new ArrayList<>();
listeVoitures = new ArrayList<>();
listeMotos = new ArrayList<>();
listeCamions = new ArrayList<>();
listeVehicules.addAll(listeVoitures);
listeVehicules.addAll(listeMotos);
listeVehicules.addAll(listeCamions);
}
/**
* Méthode pour obtenir la liste des véhicules
* @return La liste des véhicules
*/
public List<Vehicule> getListeVehicules() {
return listeVehicules;
}
/**
* Méthode pour obtenir la liste des voitures
* @return La liste des voitures
*/
public List<Voiture> getListeVoitures() {
return listeVoitures;
}
/**
* Méthode pour obtenir la liste des motos
* @return La liste des motos
*/
public List<Moto> getListeMotos() {
return listeMotos;
}
/**
* Méthode pour obtenir la liste des camions
* @return La liste des camions
*/
public List<Camion> getListeCamions() {
return listeCamions;
}
/**
* Méthode pour créer une voiture
* @param marque La marque de la voiture
* @param modele Le modèle de la voiture
* @param vitesseMax La vitesse maximale de la voiture
* @param nombrePortes Le nombre de portes de la voiture
*/
public void creerVoiture(String marque, String modele, int vitesseMax, int nombrePortes) {
new Voiture(marque, modele, vitesseMax, nombrePortes);
}
/**
* Méthode pour créer une moto
* @param marque La marque de la moto
* @param modele Le modèle de la moto
* @param vitesseMax La vitesse maximale de la moto
* @param cylindree La cylindrée de la moto
*/
public void creerMoto(String marque, String modele, int vitesseMax, int cylindree) {
new Moto(marque, modele, vitesseMax, cylindree);
}
/**
* Méthode pour créer un camion
* @param marque La marque du camion
* @param modele Le modèle du camion
* @param vitesseMax La vitesse maximale du camion
* @param remorque La remorque du camion
*/
public void creerCamion(String marque, String modele, int vitesseMax, Remorque remorque) {
new Camion(marque, modele, vitesseMax, remorque);
}
/**
* Méthode pour supprimer une voiture
* @param voiture La voiture à supprimer
*/
public void supprimerVoiture(Voiture voiture) {
listeVoitures.remove(voiture);
}
/**
* Méthode pour supprimer une moto
* @param moto La moto à supprimer
*/
public void supprimerMoto(Moto moto) {
listeMotos.remove(moto);
}
/**
* Méthode pour supprimer un camion
* @param camion Le camion à supprimer
*/
public void supprimerCamion(Camion camion) {
listeCamions.remove(camion);
}
/**
* Méthode pour démarrer un véhicule
* @param vehicule Le véhicule à démarrer
*/
public void demarrerVehicule(Vehicule vehicule) {
vehicule.demarrer();
}
/**
* Méthode pour accélérer un véhicule
* @param vehicule Le véhicule à accélérer
*/
public void accelererVehicule(Vehicule vehicule) {
vehicule.accelerer();
}
/**
* Méthode pour freiner un véhicule
* @param vehicule Le véhicule à freiner
*/
public void freinerVehicule(Vehicule vehicule) {
vehicule.freiner();
}
/**
* Méthode pour mettre à jour la liste des véhicules
*/
public void updateList() {
listeVehicules.addAll(listeVoitures);
listeVehicules.addAll(listeMotos);
listeVehicules.addAll(listeCamions);
}
/**
* Méthode pour afficher le menu de gestion des véhicules
*/
public void afficherMenu() {
// Initialisation du menu
System.out.println("\nBienvenue dans le menu de gestion des véhicules !");
Scanner scanner = new Scanner(System.in);
// Boucle principale du menu
int choix;
do {
System.out.println("\nVeuillez choisir une option :");
System.out.println("1. Afficher les véhicules");
System.out.println("2. Ajouter un véhicule");
System.out.println("3. Supprimer un véhicule");
System.out.println("0. Quitter");
System.out.print("\nVotre choix : ");
choix = scanner.nextInt();
scanner.nextLine();
switch (choix) {
case 1:
if (this.getListeVehicules().isEmpty()) {
System.out.println("Aucun véhicule trouvé.");
} else {
System.out.println("\nListe des véhicules :");
for (Vehicule vehicule : this.getListeVehicules()) {
System.out.println("\n----------------------------------");
System.out.println(vehicule.getTypeVehicule() + " :");
vehicule.afficherInfos();
}
}
break;
case 2:
System.out.println("\nQuel type de véhicule voulez-vous ajouter ?");
System.out.println("1. Voiture");
System.out.println("2. Moto");
System.out.println("3. Camion");
System.out.print("\nVotre choix : ");
int typeVehicule = scanner.nextInt();
scanner.nextLine();
switch (typeVehicule) {
case 1:
System.out.println("\n---Ajout d'une voiture---");
System.out.print("Marque : ");
String marqueVoiture = scanner.nextLine();
System.out.print("Modèle : ");
String modeleVoiture = scanner.nextLine();
System.out.print("Vitesse max : ");
int vitesseMaxVoiture = scanner.nextInt();
System.out.print("Nombre de portes : ");
int nombrePortes = scanner.nextInt();
this.getListeVoitures().add(new Voiture(marqueVoiture, modeleVoiture, vitesseMaxVoiture, nombrePortes));
this.updateList();
break;
case 2:
System.out.println("\n---Ajout d'une moto---");
System.out.print("Marque : ");
String marqueMoto = scanner.nextLine();
System.out.print("Modèle : ");
String modeleMoto = scanner.nextLine();
System.out.print("Vitesse max : ");
int vitesseMaxMoto = scanner.nextInt();
System.out.print("Cylindrée : ");
int cylindree = scanner.nextInt();
this.getListeMotos().add(new Moto(marqueMoto, modeleMoto, vitesseMaxMoto, cylindree));
this.updateList();
break;
case 3:
System.out.println("\n---Ajout d'un camion---");
System.out.print("Marque : ");
String marqueCamion = scanner.nextLine();
System.out.print("Modèle : ");
String modeleCamion = scanner.nextLine();
System.out.print("Vitesse max : ");
int vitesseMaxCamion = scanner.nextInt();
this.getListeCamions().add(new Camion(marqueCamion, modeleCamion, vitesseMaxCamion, new Remorque()));
this.updateList();
break;
}
break;
case 3:
System.out.println("\nQuel type de véhicule voulez-vous supprimer ?");
System.out.println("1. Voiture");
System.out.println("2. Moto");
System.out.println("3. Camion");
System.out.print("\nVotre choix : ");
int typeVehiculeSupprimer = scanner.nextInt();
scanner.nextLine();
switch (typeVehiculeSupprimer) {
case 1:
System.out.print("Marque : ");
String marqueVoitureSupprimer = scanner.nextLine();
System.out.print("Modèle : ");
String modeleVoitureSupprimer = scanner.nextLine();
for (Voiture voiture : this.getListeVoitures()) {
if (voiture.getMarque().equals(marqueVoitureSupprimer) && voiture.getModele().equals(modeleVoitureSupprimer)) {
this.supprimerVoiture(voiture);
break;
}
}
break;
case 2:
System.out.print("Marque : ");
String marqueMotoSupprimer = scanner.nextLine();
System.out.print("Modèle : ");
String modeleMotoSupprimer = scanner.nextLine();
for (Moto moto : this.getListeMotos()) {
if (moto.getMarque().equals(marqueMotoSupprimer) && moto.getModele().equals(modeleMotoSupprimer)) {
this.supprimerMoto(moto);
break;
}
}
break;
case 3:
System.out.print("Marque : ");
String marqueCamionSupprimer = scanner.nextLine();
System.out.print("Modèle : ");
String modeleCamionSupprimer = scanner.nextLine();
for (Camion camion : this.getListeCamions()) {
if (camion.getMarque().equals(marqueCamionSupprimer) && camion.getModele().equals(modeleCamionSupprimer)) {
this.supprimerCamion(camion);
break;
}
}
break;
}
break;
case 0:
System.out.println("Au revoir !");
break;
default:
System.out.println("Choix invalide.");
}
} while (choix != 0);
}
}

View File

@@ -0,0 +1,71 @@
package com.humanbooster.exercices;
public class Voiture extends Vehicule {
private int nombrePortes;
/**
* Constructeur de la classe Voiture
*
* @param marque La marque de la voiture
* @param modele Le modèle de la voiture
* @param vitesseMax La vitesse maximale de la voiture
* @param nombrePortes Le nombre de portes de la voiture
*/
public Voiture(String marque, String modele, int vitesseMax, int nombrePortes) {
super(marque, modele, vitesseMax);
this.nombrePortes = nombrePortes;
}
/**
* Méthode pour obtenir le nombre de portes de la voiture
*
* @return Le nombre de portes de la voiture
*/
public int getNombrePortes() {
return nombrePortes;
}
/**
* Méthode pour définir le nombre de portes de la voiture
*
* @param nombrePortes Le nombre de portes de la voiture
*/
public void setNombrePortes(int nombrePortes) {
this.nombrePortes = nombrePortes;
}
/**
* Méthode pour démarrer la voiture
*/
@Override
public void demarrer() {
System.out.println("La voiture démarre.");
}
/**
* Méthode pour faire accélérer la voiture
*/
@Override
public void accelerer() {
System.out.println("La voiture accélère.");
}
/**
* Méthode pour faire freiner la voiture
*/
@Override
public void freiner() {
System.out.println("La voiture freine.");
}
/**
* Méthode pour obtenir le type de véhicule
*
* @return Le type de véhicule
*/
@Override
public String getTypeVehicule() {
return "Voiture";
}
}