Défi

Pour réaliser cet exercice, vous aurez besoin de Visual Studio et d'une application console .Net Framework.

Vous êtes développeur dans une entreprise qui vend des meubles.

Votre patron vient vous voir en vous donnant une liste de produits. Il veut calculer leur nouveau prix avec une réduction de 15 %.

1
using System;
2
using System.Collections.Generic;
3
4
namespace DefiFinal
5
{
6
    class Program
7
    {
8
        static void Main(string[] args)
9
        {
10
            //Liste de produit 
11
            Dictionary<string, double> products = new Dictionary<string, double>();
12
            products.Add("Chaise", 25.99);
13
            products.Add("Armoire", 150.88);
14
            products.Add("Lit", 250.50);
15
            products.Add("Bureau", 80.50);
16
            products.Add("Canapé", 1100.90);
17
18
            Console.ReadLine();
19
        }
20
    }
21
}

Question

Dans un premier temps, vous devez écrire la méthode qui va permettre de calculer le nouveau prix des articles après la remise de 15 %.

Pour tester cette méthode, vous utiliserez le prix de la chaise et afficherez le prix dans la console.

Indice

Cette méthode prendra 2 paramètres : le prix et le pourcentage et renverra le nouveau prix.

Solution

1
using System;
2
using System.Collections.Generic;
3
4
namespace DefiFinal
5
{
6
    class Program
7
    {
8
        static double GetPromoPrice(double price, int percent)
9
        {
10
            return price - (price * percent / 100);
11
        }
12
13
        static void Main(string[] args)
14
        {
15
            //Liste de produit 
16
            Dictionary<string, double> products = new Dictionary<string, double>();
17
            products.Add("Chaise", 25.99);
18
            products.Add("Armoire", 150.88);
19
            products.Add("Lit", 250.50);
20
            products.Add("Bureau", 80.50);
21
            products.Add("Canapé", 1100.90);
22
23
            var priceChair = GetPromoPrice(25.99, 15);
24
            Console.WriteLine(priceChair);
25
26
            Console.ReadLine();
27
        }
28
    }
29
}
30

Question

La norme utilisée dans le magasin est d'afficher 2 chiffres après la virgule. Vous devez corriger ce petit détail.

Écrire une méthode qui va arrondir à 2 chiffres après la virgule.

Corriger l'affichage du prix de la chaise.

Indice

Il faut utiliser la méthode Math.Round().

Solution

1
using System;
2
using System.Collections.Generic;
3
4
namespace DefiFinal
5
{
6
    class Program
7
    {
8
        static double GetPromoPrice(double price, int percent)
9
        {
10
            return price - (price * percent / 100);
11
        }
12
13
        static double GetRound(double price)
14
        {
15
            return Math.Round(price, 2);
16
        }
17
18
        static void Main(string[] args)
19
        {
20
            //Liste de produit 
21
            Dictionary<string, double> products = new Dictionary<string, double>();
22
            products.Add("Chaise", 25.99);
23
            products.Add("Armoire", 150.88);
24
            products.Add("Lit", 250.50);
25
            products.Add("Bureau", 80.50);
26
            products.Add("Canapé", 1100.90);
27
28
            var priceChair = GetPromoPrice(25.99, 15);
29
            Console.WriteLine(GetRound(priceChair));
30
31
            Console.ReadLine();
32
        }
33
    }
34
}

Question

Vous avez testé vos 2 méthodes sur le produit "Chaise". Il faut que vous appliquiez vos méthodes sur tous les produits du dictionnaire.

Il vous faudra boucler sur le dictionnaire afin d'appeler les méthodes avec les bons paramètres.

Vous devez avoir l'affichage suivant.

Indice

Il faut utiliser une boucle foreach.

Pour récupérer le prix de l'article, il faut prendre la valeur et non la clé du dictionnaire.

Solution

1
using System;
2
using System.Collections.Generic;
3
4
namespace DefiFinal
5
{
6
    class Program
7
    {
8
        static double GetPromoPrice(double price, int percent)
9
        {
10
            return price - (price * percent / 100);
11
        }
12
13
        static double GetRound(double price)
14
        {
15
            return Math.Round(price, 2);
16
        }
17
18
        static void Main(string[] args)
19
        {
20
            //Liste de produit 
21
            Dictionary<string, double> products = new Dictionary<string, double>();
22
            products.Add("Chaise", 25.99);
23
            products.Add("Armoire", 150.88);
24
            products.Add("Lit", 250.50);
25
            products.Add("Bureau", 80.50);
26
            products.Add("Canapé", 1100.90);
27
28
            foreach (var product in products)
29
            {
30
                double newPrice = GetPromoPrice(product.Value, 15);
31
                Console.WriteLine(product.Key + " : " + GetRound(newPrice));
32
            }
33
34
            Console.ReadLine();
35
        }
36
    }
37
}

Question

Vous montrez ce que vous avez fait à votre patron. Votre patron vous dit qu'il faudrait afficher le nom des articles en majuscule afin que celui-ci soit plus visible.

Modifier votre code pour que le nom des articles s'affiche en majuscule.

Vous devez obtenir l'affichage suivant :

Indice

Il faut utiliser la méthode ToUpper().

Solution

1
using System;
2
using System.Collections.Generic;
3
4
namespace DefiFinal
5
{
6
    class Program
7
    {
8
        static double GetPromoPrice(double price, int percent)
9
        {
10
            return price - (price * percent / 100);
11
        }
12
13
        static double GetRound(double price)
14
        {
15
            return Math.Round(price, 2);
16
        }
17
18
        static void Main(string[] args)
19
        {
20
            //Liste de produit 
21
            Dictionary<string, double> products = new Dictionary<string, double>();
22
            products.Add("Chaise", 25.99);
23
            products.Add("Armoire", 150.88);
24
            products.Add("Lit", 250.50);
25
            products.Add("Bureau", 80.50);
26
            products.Add("Canapé", 1100.90);
27
28
            foreach (var product in products)
29
            {
30
                double newPrice = GetPromoPrice(product.Value, 15);
31
                Console.WriteLine(product.Key.ToUpper() + " : " + GetRound(newPrice));
32
            }
33
34
            Console.ReadLine();
35
        }
36
    }
37
}