Vous avez besoin d’un outil pratique pour convertir des devises, mais les solutions existantes ne sont pas toujours adaptées.
Cela peut entraîner des erreurs de conversion coûteuses et un manque de flexibilité pour les taux de change personnalisés.
En développant votre propre convertisseur de devises en C#, vous pouvez créer un outil sur mesure avec des taux de change fixes pour vos besoins.
Démarrez votre voyage en programmation C# et devenez un expert en un rien de temps.
Introduction
Vous avez probablement déjà rencontré des convertisseurs de devises en ligne, mais que diriez-vous de créer votre propre convertisseur, de manière simple et efficace, en appliquant des concepts que vous avez appris ? Dans cette session, nous allons créer un programme de conversion de devises. Il s’agira d’un outil simple, permettant de saisir une somme d’argent dans une devise et de la convertir dans une autre, comme de l’euro (EUR) vers le dollar (USD) ou la livre sterling (GBP). Le taux de change sera fixe et prédéfini dans le programme. Suivez le guide pour mettre en œuvre ce projet de manière progressive !
Etape 1 : Définir les devises disponibles
Pour commencer, nous allons créer une énumération afin de lister les devises disponibles, limitant ainsi les options à un ensemble de valeurs prédéfinies. Cela rendra notre programme plus simple et évitera les erreurs d’entrée de données.
Code :
enum Devise
{
EUR, // Euro
USD, // Dollar américain
GBP // Livre sterling
}
Cette énumération contient trois devises : l’euro (EUR), le dollar (USD), et la livre (GBP). En utilisant une énumération, nous pouvons nous assurer que seules ces devises seront acceptées par le programme.
Etape 2 : Stocker les taux de conversion
Ensuite, nous allons créer un dictionnaire pour stocker les taux de conversion entre les différentes paires de devises. La clé sera une paire de devises (par exemple, EUR vers USD), et la valeur sera le taux de conversion correspondant. Nous allons utiliser des tuples pour gérer les paires de devises.
Code :
static Dictionary<(Devise, Devise), double> tauxDeChange = new Dictionary<(Devise, Devise), double>
{
{(Devise.EUR, Devise.USD), 1.10},
{(Devise.EUR, Devise.GBP), 0.85},
{(Devise.USD, Devise.EUR), 0.91},
{(Devise.USD, Devise.GBP), 0.77},
{(Devise.GBP, Devise.EUR), 1.17},
{(Devise.GBP, Devise.USD), 1.30}
};
Ce dictionnaire nous permet de stocker toutes les conversions possibles entre les devises. Par exemple, 1 EUR équivaut à 1.10 USD, et 1 GBP équivaut à 1.30 USD. Vous pouvez bien sûr modifier ces taux selon les fluctuations réelles du marché.
Etape 3 : Demander et valider la devise de départ
Nous allons maintenant créer une méthode pour demander à l’utilisateur de saisir la devise de départ. Il est important de valider cette saisie afin de s’assurer que l’utilisateur choisit une devise correcte parmi celles proposées. Pour cela, nous utiliserons une boucle pour redemander la saisie si l’entrée est incorrecte.
Code pour la saisie et la validation :
Devise demanderDevise()
{
string saisie;
Console.Write("Entrez la devise de départ (EUR, USD, GBP): ");
saisie = Console.ReadLine().ToUpper(); // Conversion en majuscule pour uniformiser l'entrée.
if (Enum.TryParse(saisie, out Devise devise))
{
return devise;
}
else
{
Console.WriteLine("Erreur: devise inconnue. Veuillez entrer EUR, USD ou GBP.");
return demanderDevise(); // Relancer la demande si la saisie est incorrecte.
}
}
La méthode demanderDevise va permettre à l’utilisateur de saisir une devise. Si l’utilisateur entre une valeur incorrecte, la méthode affiche un message d’erreur et relance la demande jusqu’à ce que l’entrée soit valide.
Etape 4 : Demander la devise cible
De même que pour la devise de départ, nous allons demander à l’utilisateur de saisir la devise cible pour la conversion. Cette étape utilise la même logique de validation pour garantir que la devise entrée est valide.
Code pour la saisie de la devise cible :
Devise deviseCible = demanderDevise(); // Appel de la méthode de demande de devise.
Etape 5 : Vérifier que les devises sont différentes
Avant de procéder à la conversion, il est important de vérifier que la devise de départ et la devise cible ne sont pas identiques. Si elles le sont, il n’y a pas besoin de conversion, et nous pouvons simplement afficher un message indiquant que la conversion n’est pas nécessaire.
Code pour cette vérification :
if (deviseDepart == deviseCible)
{
Console.WriteLine("Les devises sont identiques, aucune conversion nécessaire.");
return; // Sortir du programme si les devises sont identiques.
}
Etape 6 : Calculer la conversion
Une fois que nous avons validé les devises et assuré qu’elles sont différentes, nous pouvons procéder à la conversion en utilisant le dictionnaire des taux de change. Voici le code pour effectuer la conversion et afficher le résultat.
Code pour la conversion :
double montant;Console.Write("Entrez le montant à convertir: ");
montant = double.Parse(Console.ReadLine());
double taux = tauxDeChange[(deviseDepart, deviseCible)];
double montantConverti = montant * taux;
Console.WriteLine($"{montant} {deviseDepart} = {montantConverti} {deviseCible}");
Cette étape prend en entrée un montant à convertir, trouve le taux de conversion dans le dictionnaire, effectue le calcul et affiche le montant converti.
Code Complèt :
using System;
using System.Collections.Generic;
namespace proj_form
{
internal class Program
{
enum Devise
{
EUR, // Euro
USD, // Dollar américain
GBP // Livre sterling
}
static Dictionary<(Devise, Devise), double> tauxDeChange = new Dictionary<(Devise, Devise), double>
{
{(Devise.EUR, Devise.USD), 1.10},
{(Devise.EUR, Devise.GBP), 0.85},
{(Devise.USD, Devise.EUR), 0.91},
{(Devise.USD, Devise.GBP), 0.77},
{(Devise.GBP, Devise.EUR), 1.17},
{(Devise.GBP, Devise.USD), 1.30}
};
// Méthode pour demander et valider la devise de départ
static Devise demanderDevise()
{
string saisie;
Console.Write("Entrez la devise de départ (EUR, USD, GBP): ");
saisie = Console.ReadLine().ToUpper(); // Conversion en majuscule pour uniformiser l'entrée.
if (Enum.TryParse(saisie, out Devise devise))
{
return devise;
}
else
{
Console.WriteLine("Erreur: devise inconnue. Veuillez entrer EUR, USD ou GBP.");
return demanderDevise(); // Relancer la demande si la saisie est incorrecte.
}
}
static void Main(string[] args)
{
// Demander la devise de départ et la devise cible
Devise deviseDepart = demanderDevise();
Devise deviseCible = demanderDevise();
// Vérifier si les devises sont identiques
if (deviseDepart == deviseCible)
{
Console.WriteLine("Les devises sont identiques, aucune conversion nécessaire.");
return; // Sortir du programme si les devises sont identiques.
}
// Demander le montant à convertir
Console.Write("Entrez le montant à convertir: ");
double montant = double.Parse(Console.ReadLine());
// Effectuer la conversion
double taux = tauxDeChange[(deviseDepart, deviseCible)];
double montantConverti = montant * taux;
// Afficher le résultat de la conversion
Console.WriteLine($"{montant} {deviseDepart} = {montantConverti} {deviseCible}");
Console.ReadKey(); // Attente de la pression d'une touche pour fermer la console
}
}
}
Résultat Attendu :
Résultat final
Vous avez maintenant un programme fonctionnel qui prend une somme d’argent, demande les devises de départ et de destination, et effectue la conversion en utilisant un taux prédéfini. Grâce à l’énumération pour les devises et le dictionnaire pour les taux de change, le programme est non seulement fonctionnel, mais aussi facile à maintenir et à étendre si de nouvelles devises ou taux de change devaient être ajoutés.
Conclusion
Ce projet vous permet de mettre en pratique les concepts de base tels que les énumérations, les dictionnaires et la gestion des saisies utilisateur. Vous pouvez personnaliser et améliorer ce programme de différentes manières, par exemple en ajoutant des mises à jour dynamiques des taux de change en temps réel, ou en permettant à l’utilisateur de choisir parmi plus de devises.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment créer un convertisseur de devises en C# ?
Comment utiliser les énumérations pour les devises ?
Pourquoi stocker les taux de change dans un dictionnaire ?
Comment valider la saisie des devises par l'utilisateur ?
Comment gérer les cas où la conversion n'est pas nécessaire ?
Conclusion
En conclusion, ce projet de convertisseur de devises en C# vous offre une excellente occasion de mettre en pratique des concepts tels que les énumérations et les dictionnaires. Quelles autres fonctionnalités aimeriez-vous ajouter pour enrichir ce programme ?