Java's tp2 almost done

master
Antoine PEREDERII 1 year ago
parent 6d8453bae1
commit b8e6373239

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

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

@ -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";
}
}

@ -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";
}
}

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

@ -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.");
}
}

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

Loading…
Cancel
Save