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); } }