diff --git a/Program.cs b/Program.cs
index b1d171b..9a3d197 100644
--- a/Program.cs
+++ b/Program.cs
@@ -1,4 +1,5 @@
//using Programmation_objet_TLESIO21.TD1;
-using Programmation_objet_TLESIO21.TD2;
+//using Programmation_objet_TLESIO21.TD2;
+using Programmation_objet_TLESIO21.TD3;
-Td2.Launch();
+Td3.Launch();
diff --git a/Programmation objet TLESIO21.csproj b/Programmation objet TLESIO21.csproj
index c526893..e79db6e 100644
--- a/Programmation objet TLESIO21.csproj
+++ b/Programmation objet TLESIO21.csproj
@@ -8,4 +8,8 @@
enable
+
+
+
+
diff --git a/TD3/Compte.cs b/TD3/Compte.cs
new file mode 100644
index 0000000..a1e3a3e
--- /dev/null
+++ b/TD3/Compte.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Programmation_objet_TLESIO21.TD3 {
+ public class Compte {
+ private int solde;
+
+ public Compte() {
+ this.solde = 0;
+ }
+ public void Deposer(int montant) {
+ solde += montant;
+ }
+ public void Retirer(int montant) {
+ solde -= montant;
+ }
+ public void VirerVers(int montant, Compte destination) {
+ this.Retirer(montant);
+ destination.Deposer(montant);
+ }
+ public override string ToString() {
+ return ("Solde du compte = " + this.solde);
+ }
+ }
+}
+
diff --git a/TD3/CompteCourant.cs b/TD3/CompteCourant.cs
new file mode 100644
index 0000000..c13df1c
--- /dev/null
+++ b/TD3/CompteCourant.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Programmation_objet_TLESIO21.TD3 {
+ public class CompteCourant : Compte {
+ private string titulaire;
+
+ public CompteCourant(String t) : base() {
+ this.titulaire = t;
+ }
+
+ public override string ToString() {
+ return base.ToString() + "; Titulaire du compte = " + this.titulaire;
+ }
+ }
+}
diff --git a/TD3/TD3.cs b/TD3/TD3.cs
new file mode 100644
index 0000000..4514d5b
--- /dev/null
+++ b/TD3/TD3.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Programmation_objet_TLESIO21.TD3.fleuriste;
+
+
+namespace Programmation_objet_TLESIO21.TD3 {
+ public static class Td3 {
+
+ public static void Exo1_1() {
+ Compte c1 = new Compte();
+ Compte c2 = new Compte();
+
+ c1.Deposer(500);
+ c2.Deposer(1000);
+
+ Console.WriteLine(c1.ToString());
+ Console.WriteLine(c2.ToString());
+
+ c2.Retirer(10);
+ c1.VirerVers(75, c2);
+
+ Console.WriteLine(c1.ToString());
+ Console.WriteLine(c2.ToString());
+ }
+
+ public static void Exo1_2() {
+ Compte[] tab = new Compte[10];
+ for (int i = 0; i < tab.Length; ++i) {
+ tab[i] = new Compte();
+ tab[i].Deposer(200 + (100*i));
+ }
+
+ for (int i = 0; i < tab.Length; ++i) {
+ for (int j = i+1; j < tab.Length; ++j) {
+ tab[i].VirerVers(20, tab[j]);
+ }
+ }
+
+ for (int i = 0; i < tab.Length ; ++i) {
+ Console.WriteLine(i+1 + " : " + tab[i].ToString());
+ }
+
+ }
+
+ public static void Exo1_3() {
+ CompteCourant c = new CompteCourant("Applejack");
+ c.Deposer(500);
+ Console.WriteLine(c.ToString());
+ }
+
+ public static void Launch() {
+ //Exo1_1();
+ //Exo1_2();
+ //Exo1_3();
+ TestBouquet.Exo2();
+ }
+
+
+ }
+}
\ No newline at end of file
diff --git a/TD3/fleuriste/Bouquet.cs b/TD3/fleuriste/Bouquet.cs
new file mode 100644
index 0000000..6bf5969
--- /dev/null
+++ b/TD3/fleuriste/Bouquet.cs
@@ -0,0 +1,36 @@
+namespace Programmation_objet_TLESIO21.TD3.fleuriste {
+
+
+ public class Bouquet {
+ private LotFleur lot0;
+ private LotFleur lot1;
+ private LotFleur lot2;
+
+ public Bouquet(LotFleur un, LotFleur deux, LotFleur trois) {
+ this.lot0 = un;
+ this.lot1 = deux;
+ this.lot2 = trois;
+ }
+
+ public double Prix() {
+ return (lot0.GetPrix() + lot1.GetPrix() + lot2.GetPrix());
+ }
+
+ public LotFleur GetLot0() {
+ return this.lot0;
+ }
+
+ public LotFleur GetLot1() {
+ return this.lot1;
+ }
+
+ public LotFleur GetLot2() {
+ return this.lot2;
+ }
+
+ public override String ToString() {
+ return "Le bouquet est composé de " + lot0.GetQuantite() + " " + lot0.GetFleur().GetNom() + "s, " + lot1.GetQuantite() + " " + lot1.GetFleur().GetNom() + "s et " + lot2.GetQuantite() + " " + lot2.GetFleur().GetNom() + ". " + lot0.ToString() + " " + lot1.ToString() + " " + lot2.ToString() + ". Le bouquet a donc un prix de " + this.Prix() + "€.";
+ }
+
+ }
+}
diff --git a/TD3/fleuriste/Fleur.cs b/TD3/fleuriste/Fleur.cs
new file mode 100644
index 0000000..0e38385
--- /dev/null
+++ b/TD3/fleuriste/Fleur.cs
@@ -0,0 +1,31 @@
+namespace Programmation_objet_TLESIO21.TD3.fleuriste {
+
+
+ public class Fleur {
+ private String nom;
+ private double prix;
+
+ public Fleur(String n, double p) {
+ this.nom = n;
+ this.prix = p;
+ }
+
+ protected Object Clone() {
+ return new Fleur(this.nom, this.prix);
+ }
+
+ public String GetNom() {
+ return this.nom;
+ }
+
+ public double GetPrix() {
+ return prix;
+ }
+
+ public override String ToString() {
+ return "1 " + this.GetNom() + " a un prix unitaire de " + this.GetPrix() + "euros.";
+ }
+
+ }
+}
+
diff --git a/TD3/fleuriste/LotFleur.cs b/TD3/fleuriste/LotFleur.cs
new file mode 100644
index 0000000..b7c9489
--- /dev/null
+++ b/TD3/fleuriste/LotFleur.cs
@@ -0,0 +1,40 @@
+namespace Programmation_objet_TLESIO21.TD3.fleuriste {
+
+
+ public class LotFleur {
+
+ private int quantite;
+ private Fleur Fleur;
+
+ public LotFleur(Fleur nomFleur, int quantiteFleur) {
+ this.quantite = quantiteFleur;
+ this.Fleur = nomFleur;
+ }
+
+ public int GetQuantite() {
+ return quantite;
+ }
+
+ public Fleur GetFleur() {
+ return Fleur;
+ }
+
+ public double GetPrix() {
+ return this.GetFleur().GetPrix() * this.GetQuantite();
+ }
+
+ public void SetQuantite(int quantite) {
+ this.quantite = quantite;
+ }
+
+ public void SetFleur(Fleur fleur) {
+ Fleur = fleur;
+ }
+
+ public override String ToString() {
+ return this.GetFleur().ToString() + " Le lot de " + this.GetQuantite() + " " + this.GetFleur().GetNom() + "s coute donc " + this.GetPrix() + "€.";
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/TD3/fleuriste/Stock.cs b/TD3/fleuriste/Stock.cs
new file mode 100644
index 0000000..36b9677
--- /dev/null
+++ b/TD3/fleuriste/Stock.cs
@@ -0,0 +1,81 @@
+namespace Programmation_objet_TLESIO21.TD3.fleuriste {
+
+
+ public class Stock {
+
+ //roses = 0, tulipes = 1, œillets = 2
+
+ private Fleur[] fleurs = new Fleur[3];
+ private int[] quantite = { 0, 0, 0 };
+
+ public Stock(Fleur r, Fleur t, Fleur o) {
+ this.fleurs[0] = r;
+ this.fleurs[1] = t;
+ this.fleurs[2] = o;
+ }
+
+ public void AjouteFleur(Fleur f, int q) {
+ switch (f.GetNom().ToLower()) {
+ case "rose":
+ this.SetQuantite(0, this.GetFleurQuantity(f.GetNom()) + q);
+ break;
+ case "tulipe":
+ this.SetQuantite(1, this.GetFleurQuantity(f.GetNom()) + q);
+ break;
+ case "oeillet":
+ this.SetQuantite(2, this.GetFleurQuantity(f.GetNom()) + q);
+ break;
+ default:
+ Console.Error.WriteLine("Aucune fleur n'a été ajoutée");
+ break;
+ }
+ }
+
+ public Boolean BouquetFaisable(Bouquet b) {
+ return (this.quantite[0] > b.GetLot0().GetQuantite() || this.quantite[1] > b.GetLot1().GetQuantite() || this.quantite[2] > b.GetLot2().GetQuantite());
+ }
+ public override String ToString() {
+ return "Il y a en stock " + this.GetFleurQuantity("rose") + " roses, " + this.GetFleurQuantity("tulipe") + " tulipes et " + this.GetFleurQuantity("oeillet") + " oeillets. ";
+ }
+
+ public int GetFleurQuantity(String s) {
+ switch (s.ToLower()) {
+ case "rose":
+ return this.GetQuantite(0);
+ case "tulipe":
+ return this.GetQuantite(1);
+ case "oeillet":
+ return this.GetQuantite(2);
+ default:
+ Console.Error.WriteLine("Aucune fleur n'a été ajoutée");
+ return 0;
+ }
+ }
+
+ public void SetFleurQuantity(String f, int q) {
+ switch (f.ToLower()) {
+ case "rose":
+ this.SetQuantite(0, q);
+ break;
+ case "tulipe":
+ this.SetQuantite(1, q);
+ break;
+ case "oeillet":
+ this.SetQuantite(2, q);
+ break;
+ default:
+ Console.Error.WriteLine("Aucune fleur n'a été ajoutée");
+ break;
+ }
+ }
+
+ private void SetQuantite(int index, int i) {
+ this.quantite[index] = i;
+ }
+
+ private int GetQuantite(int i) {
+ return this.quantite[i];
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/TD3/fleuriste/TestBouquet.cs b/TD3/fleuriste/TestBouquet.cs
new file mode 100644
index 0000000..c6ee1c0
--- /dev/null
+++ b/TD3/fleuriste/TestBouquet.cs
@@ -0,0 +1,26 @@
+using Programmation_objet_TLESIO21.TD3.fleuriste;
+
+public static class TestBouquet {
+ public static void Exo2() {
+ Fleur rose = new Fleur("rose",2.6);
+ Fleur tulipe = new Fleur("tulipe",0.4);
+ Fleur oeillet = new Fleur("oeillet",1.8);
+
+ LotFleur lotroses = new LotFleur(rose,5);
+ LotFleur lottulipes = new LotFleur(tulipe,7);
+ LotFleur lotoeillets = new LotFleur(oeillet,3);
+
+ Bouquet b = new Bouquet(lotroses, lottulipes, lotoeillets);
+ Console.WriteLine(b.ToString());
+
+ Stock magasin = new Stock(rose,tulipe,oeillet);
+ Console.WriteLine(magasin.ToString());
+ magasin.AjouteFleur(rose, 100);
+ magasin.AjouteFleur(tulipe, 150);
+ magasin.AjouteFleur(oeillet, 200);
+ Console.WriteLine(magasin.ToString());
+ // Est-ce que le stock permet de produire le bouquet b ?
+ Boolean orderBouquet = magasin.BouquetFaisable(b);
+ Console.WriteLine("Est-ce que le stock permet de produire le bouquet ? " + orderBouquet);
+ }
+}
diff --git a/pdf/CM/Cours3C# .pdf b/pdf/CM/Cours3C# .pdf
new file mode 100644
index 0000000..ffbe21f
Binary files /dev/null and b/pdf/CM/Cours3C# .pdf differ
diff --git a/pdf/TD/TD3.pdf b/pdf/TD/TD3.pdf
new file mode 100644
index 0000000..8e5c7d3
Binary files /dev/null and b/pdf/TD/TD3.pdf differ