diff --git a/2A/Java/tp/2_tp/TP2/out/production/TP2/main/Main.class b/2A/Java/tp/2_tp/TP2/out/production/TP2/main/Main.class index eb7edef..884fd98 100644 Binary files a/2A/Java/tp/2_tp/TP2/out/production/TP2/main/Main.class and b/2A/Java/tp/2_tp/TP2/out/production/TP2/main/Main.class differ diff --git a/2A/Java/tp/2_tp/TP2/out/production/TP2/models/Animal.class b/2A/Java/tp/2_tp/TP2/out/production/TP2/models/Animal.class index 0d976d4..2b11fa6 100644 Binary files a/2A/Java/tp/2_tp/TP2/out/production/TP2/models/Animal.class and b/2A/Java/tp/2_tp/TP2/out/production/TP2/models/Animal.class differ diff --git a/2A/Java/tp/2_tp/TP2/out/production/TP2/models/AnimalFourrure.class b/2A/Java/tp/2_tp/TP2/out/production/TP2/models/AnimalFourrure.class index e46981b..9e4f5ea 100644 Binary files a/2A/Java/tp/2_tp/TP2/out/production/TP2/models/AnimalFourrure.class and b/2A/Java/tp/2_tp/TP2/out/production/TP2/models/AnimalFourrure.class differ diff --git a/2A/Java/tp/2_tp/TP2/out/production/TP2/models/Oiseau.class b/2A/Java/tp/2_tp/TP2/out/production/TP2/models/Oiseau.class index b729bb7..d76f3d1 100644 Binary files a/2A/Java/tp/2_tp/TP2/out/production/TP2/models/Oiseau.class and b/2A/Java/tp/2_tp/TP2/out/production/TP2/models/Oiseau.class differ diff --git a/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Afficheur.class b/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Afficheur.class index de59e60..7ed1880 100644 Binary files a/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Afficheur.class and b/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Afficheur.class differ diff --git a/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Menu.class b/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Menu.class index 3d204d3..f4cc6ab 100644 Binary files a/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Menu.class and b/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Menu.class differ diff --git a/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Saisisseur.class b/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Saisisseur.class index 49af34c..1c48549 100644 Binary files a/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Saisisseur.class and b/2A/Java/tp/2_tp/TP2/out/production/TP2/utilitaires/Saisisseur.class differ diff --git a/2A/Java/tp/2_tp/TP2/src/main/Main.java b/2A/Java/tp/2_tp/TP2/src/main/Main.java index 9146bdc..c3f564c 100644 --- a/2A/Java/tp/2_tp/TP2/src/main/Main.java +++ b/2A/Java/tp/2_tp/TP2/src/main/Main.java @@ -34,9 +34,10 @@ public class Main { // Crée quelques animaux pour les tests Animal animal1 = new AnimalFourrure("Lion", 1, 0); Animal animal2 = new AnimalFourrure("Ours", 2, 1); + Animal animal3 = new Oiseau("pioupiou", 0); animalTheque.lesAnimaux.add(animal1); animalTheque.lesAnimaux.add(animal2); - + animalTheque.lesAnimaux.add(animal3); menu.afficherMenu(); } diff --git a/2A/Java/tp/2_tp/TP2/src/models/Animal.java b/2A/Java/tp/2_tp/TP2/src/models/Animal.java index 0f30f9a..a324ef2 100644 --- a/2A/Java/tp/2_tp/TP2/src/models/Animal.java +++ b/2A/Java/tp/2_tp/TP2/src/models/Animal.java @@ -22,7 +22,10 @@ public abstract class Animal { protected abstract void hiverner(); - public abstract int getDensite(); - - public abstract String getType(); + @Override + public String toString() { + return "Animal : " + + "nom='" + nom + '\'' + + ", zone=" + zone; + } } diff --git a/2A/Java/tp/2_tp/TP2/src/models/AnimalFourrure.java b/2A/Java/tp/2_tp/TP2/src/models/AnimalFourrure.java index 7792e33..dff3e96 100644 --- a/2A/Java/tp/2_tp/TP2/src/models/AnimalFourrure.java +++ b/2A/Java/tp/2_tp/TP2/src/models/AnimalFourrure.java @@ -28,4 +28,53 @@ public class AnimalFourrure extends Animal { setFourrure(1); } } + + @Override + public String toString() { + if(zone == 0) { + if(densiteFourrure == 0) { + return "AnimalFourrure :" + + " nom='" + nom + '\'' + + ", zone= Sud" + + ", densiteFourrure= Fine"; + } + return "AnimalFourrure :" + + " nom='" + nom + '\'' + + ", zone= Sud" + + ", densiteFourrure= Epaisse"; + } + if(zone == 1) { + if(densiteFourrure == 0) { + return "AnimalFourrure :" + + " nom='" + nom + '\'' + + ", zone= Nord" + + ", densiteFourrure= Fine"; + } + return "AnimalFourrure :" + + " nom='" + nom + '\'' + + ", zone= Nord" + + ", densiteFourrure= Epaisse"; + } + if(zone == 2) { + if(densiteFourrure == 0) { + return "AnimalFourrure :" + + " nom='" + nom + '\'' + + ", zone= Est" + + ", densiteFourrure= Fine"; + } + return "AnimalFourrure :" + + " nom='" + nom + '\'' + + ", zone= Est" + + ", densiteFourrure= Epaisse"; + } else if (densiteFourrure == 0) { + return "AnimalFourrure :" + + " nom='" + nom + '\'' + + ", zone= Ouest"+ + ", densiteFourrure= Fine"; + } + return "AnimalFourrure :" + + " nom='" + nom + '\'' + + ", zone= Ouest"+ + ", densiteFourrure= Epaisse"; + } } diff --git a/2A/Java/tp/2_tp/TP2/src/models/Oiseau.java b/2A/Java/tp/2_tp/TP2/src/models/Oiseau.java index 0ee289a..4bb8a4e 100644 --- a/2A/Java/tp/2_tp/TP2/src/models/Oiseau.java +++ b/2A/Java/tp/2_tp/TP2/src/models/Oiseau.java @@ -16,11 +16,14 @@ public class Oiseau extends Animal{ } @Override - public int getDensite() { - return 0; - } - - public String getType(){ - return "Oiseau"; + public String toString() { + if(zone == 0) { + return "Oiseau : " + + "nom='" + nom + '\'' + + ", zone= Sud"; + } + return "Oiseau : " + + "nom='" + nom + '\'' + + ", zone= Nord"; } } diff --git a/2A/Java/tp/2_tp/TP2/src/utilitaires/Afficheur.java b/2A/Java/tp/2_tp/TP2/src/utilitaires/Afficheur.java index beb71c1..25dc87e 100644 --- a/2A/Java/tp/2_tp/TP2/src/utilitaires/Afficheur.java +++ b/2A/Java/tp/2_tp/TP2/src/utilitaires/Afficheur.java @@ -6,12 +6,7 @@ import models.AnimalTheque; public class Afficheur { public void afficherAnimaux(AnimalTheque animalTheque) { for (Animal animal : animalTheque.lesAnimaux) { - if(animal.getType().equals("Fourrure")) { - System.out.println("Nom : " + animal.getNom() + ", Zone : " + animal.getZone() + ", Densité fourrure : " + animal.getDensite()); - } - else { - System.out.println("Nom : " + animal.getNom() + ", Zone : " + animal.getZone()); - } + System.out.println(animal.toString()); } } diff --git a/2A/Java/tp/2_tp/TP2/src/utilitaires/Menu.java b/2A/Java/tp/2_tp/TP2/src/utilitaires/Menu.java index 7e1cd5f..714ad7a 100644 --- a/2A/Java/tp/2_tp/TP2/src/utilitaires/Menu.java +++ b/2A/Java/tp/2_tp/TP2/src/utilitaires/Menu.java @@ -3,6 +3,7 @@ package utilitaires; import models.Animal; import models.AnimalFourrure; import models.AnimalTheque; +import models.Oiseau; public class Menu { private AnimalTheque animalTheque; @@ -52,18 +53,59 @@ public class Menu { } private void ajouterAnimal() { - String nom = saisisseur.saisirNom(); - int zone = saisisseur.saisirZone(); + int choixAjout; + do { + System.out.println("Menu ajout animal :"); + System.out.println("1. Aimal à Fourrure"); + System.out.println("2. Oiseau"); + System.out.print("Choisissez une option : "); + choixAjout = saisisseur.saisirEntier(); + + switch (choixAjout) { + case 1: + String nomF = saisisseur.saisirNom(); + int zoneF = saisisseur.saisirZone(); + while(zoneF != 0 && zoneF != 1 && zoneF != 3 && zoneF != 4) { + System.out.println("Densité de fourrure invalide. Veuillez ressaisir ! (0 Sud, 1 Nord, 2 Est, 4 Ouest)"); + System.out.println(zoneF); + zoneF = saisisseur.saisirZone(); + } + + int densiteF = saisisseur.saisirDensiteFourrure(); + while(densiteF != 0 && densiteF != 1) { + System.out.println("Densité de fourrure invalide. Veuillez ressaisir ! (0 Fine ou 1 Epaisse)"); + System.out.println(densiteF); + densiteF = saisisseur.saisirZone(); + } + + Animal animalF = new AnimalFourrure(nomF, zoneF, densiteF); + animalTheque.lesAnimaux.add(animalF); + + afficheur.afficherMessage("L'animal à fourrure a été ajouté avec succès !"); + break; + case 2: + String nomO = saisisseur.saisirNom(); + int zoneO = saisisseur.saisirZone(); + while(zoneO != 0 && zoneO != 1) { + System.out.println("Zone d'oiseau invalide. Veuillez ressaisir ! (0 Sud, 1 Nord)"); + System.out.println(zoneO); + zoneO = saisisseur.saisirZone(); + } - Animal animal = new AnimalFourrure(nom, zone, 0); - animalTheque.lesAnimaux.add(animal); + Animal animalO = new Oiseau(nomO, zoneO); + animalTheque.lesAnimaux.add(animalO); - afficheur.afficherMessage("L'animal a été ajouté avec succès !"); + afficheur.afficherMessage("L'Oiseau a été ajouté avec succès !"); + break; + default: + afficheur.afficherMessage("Option invalide. Veuillez choisir une option valide."); + } + } while (choixAjout != 2 && choixAjout != 1); } private void supprimerAnimal() { - String nom = saisisseur.saisirNom(); - if (suppresseur.supprimerAnimal(animalTheque, nom)) { + String nomF = saisisseur.saisirNom(); + if (suppresseur.supprimerAnimal(animalTheque, nomF)) { afficheur.afficherMessage("L'animal a été supprimé avec succès !"); } else { afficheur.afficherMessage("Aucun animal trouvé avec ce nom."); @@ -71,14 +113,17 @@ public class Menu { } private void hivernerAnimal() { - String nom = saisisseur.saisirNom(); for (Animal animal : animalTheque.lesAnimaux) { - if (animal.getNom().equalsIgnoreCase(nom) && animal instanceof AnimalFourrure) { + if (animal instanceof AnimalFourrure) { ((AnimalFourrure) animal).hiverner(); - afficheur.afficherMessage("L'animal a hiverné avec succès !"); + } else if (animal instanceof Oiseau) { + ((Oiseau) animal).hiverner(); + } + else { + afficheur.afficherMessage("Aucun animal trouvé avec ce nom ou cet animal ne peut pas hiverner."); return; } } - afficheur.afficherMessage("Aucun animal trouvé avec ce nom ou cet animal ne peut pas hiverner."); + afficheur.afficherMessage("Tous les animaux vont hiverner."); } } diff --git a/2A/Java/tp/2_tp/TP2/src/utilitaires/Saisisseur.java b/2A/Java/tp/2_tp/TP2/src/utilitaires/Saisisseur.java index f628cc4..93daa05 100644 --- a/2A/Java/tp/2_tp/TP2/src/utilitaires/Saisisseur.java +++ b/2A/Java/tp/2_tp/TP2/src/utilitaires/Saisisseur.java @@ -19,6 +19,11 @@ public class Saisisseur { return scanner.nextInt(); } + public int saisirDensiteFourrure() { + System.out.print("Densité de fourrure : "); + return scanner.nextInt(); + } + public int saisirEntier() { return scanner.nextInt(); }