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 %.
using System;
using System.Collections.Generic;
namespace DefiFinal
{
class Program
{
static void Main(string[] args)
{
//Liste de produit
Dictionary<string, double> products = new Dictionary<string, double>();
products.Add("Chaise", 25.99);
products.Add("Armoire", 150.88);
products.Add("Lit", 250.50);
products.Add("Bureau", 80.50);
products.Add("Canapé", 1100.90);
Console.ReadLine();
}
}
}
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
using System;
using System.Collections.Generic;
namespace DefiFinal
{
class Program
{
static double GetPromoPrice(double price, int percent)
{
return price - (price * percent / 100);
}
static void Main(string[] args)
{
//Liste de produit
Dictionary<string, double> products = new Dictionary<string, double>();
products.Add("Chaise", 25.99);
products.Add("Armoire", 150.88);
products.Add("Lit", 250.50);
products.Add("Bureau", 80.50);
products.Add("Canapé", 1100.90);
var priceChair = GetPromoPrice(25.99, 15);
Console.WriteLine(priceChair);
Console.ReadLine();
}
}
}
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
using System;
using System.Collections.Generic;
namespace DefiFinal
{
class Program
{
static double GetPromoPrice(double price, int percent)
{
return price - (price * percent / 100);
}
static double GetRound(double price)
{
return Math.Round(price, 2);
}
static void Main(string[] args)
{
//Liste de produit
Dictionary<string, double> products = new Dictionary<string, double>();
products.Add("Chaise", 25.99);
products.Add("Armoire", 150.88);
products.Add("Lit", 250.50);
products.Add("Bureau", 80.50);
products.Add("Canapé", 1100.90);
var priceChair = GetPromoPrice(25.99, 15);
Console.WriteLine(GetRound(priceChair));
Console.ReadLine();
}
}
}
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
using System;
using System.Collections.Generic;
namespace DefiFinal
{
class Program
{
static double GetPromoPrice(double price, int percent)
{
return price - (price * percent / 100);
}
static double GetRound(double price)
{
return Math.Round(price, 2);
}
static void Main(string[] args)
{
//Liste de produit
Dictionary<string, double> products = new Dictionary<string, double>();
products.Add("Chaise", 25.99);
products.Add("Armoire", 150.88);
products.Add("Lit", 250.50);
products.Add("Bureau", 80.50);
products.Add("Canapé", 1100.90);
foreach (var product in products)
{
double newPrice = GetPromoPrice(product.Value, 15);
Console.WriteLine(product.Key + " : " + GetRound(newPrice));
}
Console.ReadLine();
}
}
}
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
using System;
using System.Collections.Generic;
namespace DefiFinal
{
class Program
{
static double GetPromoPrice(double price, int percent)
{
return price - (price * percent / 100);
}
static double GetRound(double price)
{
return Math.Round(price, 2);
}
static void Main(string[] args)
{
//Liste de produit
Dictionary<string, double> products = new Dictionary<string, double>();
products.Add("Chaise", 25.99);
products.Add("Armoire", 150.88);
products.Add("Lit", 250.50);
products.Add("Bureau", 80.50);
products.Add("Canapé", 1100.90);
foreach (var product in products)
{
double newPrice = GetPromoPrice(product.Value, 15);
Console.WriteLine(product.Key.ToUpper() + " : " + GetRound(newPrice));
}
Console.ReadLine();
}
}
}