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