diff --git a/com/humanbooster/exercices/VehiculeManager.java b/com/humanbooster/exercices/VehiculeManager.java new file mode 100644 index 0000000..399821a --- /dev/null +++ b/com/humanbooster/exercices/VehiculeManager.java @@ -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 listeVehicules; + + private final List listeVoitures; + private final List listeMotos; + private final List 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 getListeVehicules() { + return listeVehicules; + } + + /** + * Méthode pour obtenir la liste des voitures + * @return La liste des voitures + */ + public List getListeVoitures() { + return listeVoitures; + } + + /** + * Méthode pour obtenir la liste des motos + * @return La liste des motos + */ + public List getListeMotos() { + return listeMotos; + } + + /** + * Méthode pour obtenir la liste des camions + * @return La liste des camions + */ + public List 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); + + } +}