From 1d7eee6da5ebbdaa1a9c07b80c999c2eb550cd3b Mon Sep 17 00:00:00 2001 From: "benjamin.sitbon" <benjamin.sitbon@etu.hesge.ch> Date: Tue, 1 Jun 2021 14:49:12 +0200 Subject: [PATCH] Lab3-Task3 fait! --- Sitbon-Benjamin-Lab3-Task3/Calories.java | 11 +++ .../CaloriesEnrichi.java | 42 ++++++++++++ .../CaloriesNormal.java | 39 +++++++++++ .../CaloriesPauvre.java | 41 ++++++++++++ Sitbon-Benjamin-Lab3-Task3/Client.java | 26 ++++++++ Sitbon-Benjamin-Lab3-Task3/Fruit.java | 49 ++++++++++++++ Sitbon-Benjamin-Lab3-Task3/Fruits.java | 9 +++ Sitbon-Benjamin-Lab3-Task3/PanierFruit.java | 63 ++++++++++++++++++ .../Sitbon-Benjamin-Lab3-Task3.zip | Bin 0 -> 3837 bytes 9 files changed, 280 insertions(+) create mode 100644 Sitbon-Benjamin-Lab3-Task3/Calories.java create mode 100644 Sitbon-Benjamin-Lab3-Task3/CaloriesEnrichi.java create mode 100644 Sitbon-Benjamin-Lab3-Task3/CaloriesNormal.java create mode 100644 Sitbon-Benjamin-Lab3-Task3/CaloriesPauvre.java create mode 100644 Sitbon-Benjamin-Lab3-Task3/Client.java create mode 100644 Sitbon-Benjamin-Lab3-Task3/Fruit.java create mode 100644 Sitbon-Benjamin-Lab3-Task3/Fruits.java create mode 100644 Sitbon-Benjamin-Lab3-Task3/PanierFruit.java create mode 100644 Sitbon-Benjamin-Lab3-Task3/Sitbon-Benjamin-Lab3-Task3.zip diff --git a/Sitbon-Benjamin-Lab3-Task3/Calories.java b/Sitbon-Benjamin-Lab3-Task3/Calories.java new file mode 100644 index 0000000..9600e84 --- /dev/null +++ b/Sitbon-Benjamin-Lab3-Task3/Calories.java @@ -0,0 +1,11 @@ +public interface Calories { + + public static int caloriesValueOf(Fruits f){ + return f.getCalories(); + } + + public void connect(Fruit f); + public void setQuotient(int q); + public int getQuotient(); + public int value(Fruits f); +} \ No newline at end of file diff --git a/Sitbon-Benjamin-Lab3-Task3/CaloriesEnrichi.java b/Sitbon-Benjamin-Lab3-Task3/CaloriesEnrichi.java new file mode 100644 index 0000000..95fb533 --- /dev/null +++ b/Sitbon-Benjamin-Lab3-Task3/CaloriesEnrichi.java @@ -0,0 +1,42 @@ +import java.util.ArrayList; + +import java.util.ArrayList; + +public class CaloriesEnrichi implements Calories{ + + private String[] fruits = {"Avocat","Banane","Mangue"}; + private int quotient = 100; + private ArrayList<Fruit> observer = new ArrayList<>(); + + + public int getQuotient(){ + return this.quotient; + } + + public void setQuotient(int q){ + this.quotient = q; + notifyAll(observer); + } + + public void connect(Fruit f){ + observer.add(f); + } + + public void notifyAll(ArrayList<Fruit> list){ + for(Fruit f: list){ + f.update(); + } + } + + public int value(Fruits f){ + + for(int i = 0; i<fruits.length; i++){ + if(fruits[i].equals(f.getName())){ + return quotient/(i+1); + } + } + + return 0; + } + +} \ No newline at end of file diff --git a/Sitbon-Benjamin-Lab3-Task3/CaloriesNormal.java b/Sitbon-Benjamin-Lab3-Task3/CaloriesNormal.java new file mode 100644 index 0000000..1ef5498 --- /dev/null +++ b/Sitbon-Benjamin-Lab3-Task3/CaloriesNormal.java @@ -0,0 +1,39 @@ +import java.util.ArrayList; + +public class CaloriesNormal implements Calories{ + + private String[] fruits = {"Pomme","Fraise","Myrtille"}; + private int quotient = 50; + private ArrayList<Fruit> observer = new ArrayList<>(); + + + public int getQuotient(){ + return this.quotient; + } + + public void setQuotient(int q){ + this.quotient = q; + notifyAll(observer); + } + + public void connect(Fruit f){ + observer.add(f); + } + + public void notifyAll(ArrayList<Fruit> list){ + for(Fruit f: list){ + f.update(); + } + } + + public int value(Fruits f){ + + for(int i = 0; i<fruits.length; i++){ + if(fruits[i].equalsIgnoreCase(f.getName())){ + return quotient/(i+1); + } + } + return 0; + } + +} \ No newline at end of file diff --git a/Sitbon-Benjamin-Lab3-Task3/CaloriesPauvre.java b/Sitbon-Benjamin-Lab3-Task3/CaloriesPauvre.java new file mode 100644 index 0000000..eba1658 --- /dev/null +++ b/Sitbon-Benjamin-Lab3-Task3/CaloriesPauvre.java @@ -0,0 +1,41 @@ +import java.util.ArrayList; + +import java.util.ArrayList; + +public class CaloriesPauvre implements Calories{ + + private String[] fruits = {"Poire","Melon","Pastèque"}; + private int quotient = 25; + private ArrayList<Fruit> observer = new ArrayList<>(); + + + public int getQuotient(){ + return this.quotient; + } + + public void setQuotient(int q){ + this.quotient = q; + notifyAll(observer); + } + + public void connect(Fruit f){ + observer.add(f); + } + + public void notifyAll(ArrayList<Fruit> list){ + for(Fruit f: list){ + f.update(); + } + } + + public int value(Fruits f){ + + for(int i = 0; i<fruits.length; i++){ + if(fruits[i].equals(f.getName())){ + return quotient/(i+1); + } + } + return 0; + } + +} \ No newline at end of file diff --git a/Sitbon-Benjamin-Lab3-Task3/Client.java b/Sitbon-Benjamin-Lab3-Task3/Client.java new file mode 100644 index 0000000..6b76906 --- /dev/null +++ b/Sitbon-Benjamin-Lab3-Task3/Client.java @@ -0,0 +1,26 @@ +import java.util.Scanner; + +public class Client { + + public static void main(String[] args) { + + Calories normal = new CaloriesNormal(); + Calories pauvre = new CaloriesPauvre(); + Calories riche = new CaloriesEnrichi(); + + Fruit fraise = new Fruit(normal,"Fraise",false); + Fruit melon = new Fruit(pauvre,"Melon",false); + Fruit avocat = new Fruit(riche,"Avocat",true); + Fruit banane = new Fruit(riche,"Banane",false); + Fruit banane2 = new Fruit(riche,"Banane",false); + + + normal.setQuotient(30); + riche.setQuotient(120); + + + + } + + +} \ No newline at end of file diff --git a/Sitbon-Benjamin-Lab3-Task3/Fruit.java b/Sitbon-Benjamin-Lab3-Task3/Fruit.java new file mode 100644 index 0000000..5cda99e --- /dev/null +++ b/Sitbon-Benjamin-Lab3-Task3/Fruit.java @@ -0,0 +1,49 @@ +public class Fruit implements Fruits{ + + + private String name; + private boolean pepin; + private Calories calories; + + public Fruit(Calories cal,String n, boolean p){ + this.calories = cal; + this.name = n; + this.pepin = p; + cal.connect(this); + } + + public void setName(String n){ + this.name = n; + } + + public void setPepin(boolean p){ + this.pepin = p; + } + + public String getName(){ + return this.name; + } + + public int getCalories(){ + return this.calories.value(this); + } + + public boolean getPepin(){ + return this.pepin; + } + + public void update(){ + System.out.println("Les calories on été modifié pour " + this.name + ": " + this.getCalories()); + } + + public void afficherFruit(){ + System.out.println(""); + System.out.println(this.name + " - " + this.pepin); + System.out.println(""); + } + + public void afficherCalories(){ + System.out.println("Calories: " + getCalories()); + } + +} \ No newline at end of file diff --git a/Sitbon-Benjamin-Lab3-Task3/Fruits.java b/Sitbon-Benjamin-Lab3-Task3/Fruits.java new file mode 100644 index 0000000..0ef5707 --- /dev/null +++ b/Sitbon-Benjamin-Lab3-Task3/Fruits.java @@ -0,0 +1,9 @@ +public interface Fruits { + + public String getName(); + public int getCalories(); + public boolean getPepin(); + public void afficherFruit(); + public void afficherCalories(); + +} \ No newline at end of file diff --git a/Sitbon-Benjamin-Lab3-Task3/PanierFruit.java b/Sitbon-Benjamin-Lab3-Task3/PanierFruit.java new file mode 100644 index 0000000..ff9a4ae --- /dev/null +++ b/Sitbon-Benjamin-Lab3-Task3/PanierFruit.java @@ -0,0 +1,63 @@ +import java.util.ArrayList; + +public class PanierFruit implements Fruits{ + + + private ArrayList<Fruits> panier = new ArrayList<>(); + private String name = "Panier("; + private boolean pepin = false; + + + public PanierFruit(Fruits... fruits){ + this.addAll(fruits); + } + + public String getName(){ + return this.name; + } + + public int getCalories(){ + int res = 0; + for(Fruits f: panier){ + res += Calories.caloriesValueOf(f); + } + return res; + } + + public void add(Fruits f){ + + panier.add(f); + name += " " + f.getName() + " "; + if(f.getPepin()) pepin = true; + } + + public void addAll(Fruits... fruits){ + for(Fruits f: fruits){ + this.add(f); + } + } + + public boolean getPepin(){ + return pepin; + } + + public void afficherFruit(){ + System.out.println(""); + System.out.print(name); + + if(pepin){ + System.out.print(") Avec Pépin"); + } + else{ + System.out.print(") Sans Pépin"); + } + System.out.println(""); + System.out.println(""); + } + + public void afficherCalories(){ + + + System.out.println("Calories: " + this.getCalories()); + } +} \ No newline at end of file diff --git a/Sitbon-Benjamin-Lab3-Task3/Sitbon-Benjamin-Lab3-Task3.zip b/Sitbon-Benjamin-Lab3-Task3/Sitbon-Benjamin-Lab3-Task3.zip new file mode 100644 index 0000000000000000000000000000000000000000..c62da7be9e9e23b41773c981beb7ffc026d60750 GIT binary patch literal 3837 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 TRyL4sP)GMU69WSS4~Pc<`5oT{ literal 0 HcmV?d00001 -- GitLab