diff --git a/Sitbon-Benjamin-Lab3-Task3/Calories.java b/Sitbon-Benjamin-Lab3-Task3/Calories.java new file mode 100644 index 0000000000000000000000000000000000000000..9600e84fccc4341d0be19c6558e4a442da6b1922 --- /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 0000000000000000000000000000000000000000..95fb53369d2c88a2c5cf34065405ffda5351ede5 --- /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 0000000000000000000000000000000000000000..1ef5498227884d558f85221b8cfa6ba34b712cb8 --- /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 0000000000000000000000000000000000000000..eba16583261a7617a776818257de09b36b1c51f2 --- /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 0000000000000000000000000000000000000000..6b76906374803263cc8c7974daa205ae2e3e9a5e --- /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 0000000000000000000000000000000000000000..5cda99e960afd8088e37f9ee8856956c88ab43d6 --- /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 0000000000000000000000000000000000000000..0ef5707a3b562220169375a23f85feb20a67c32b --- /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 0000000000000000000000000000000000000000..ff9a4aef49eb3b36a47bda200d4f9168383179ec --- /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 Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task3/Sitbon-Benjamin-Lab3-Task3.zip differ