Un défi courant dans le développement d’un convertisseur de devises est la gestion des erreurs de saisie utilisateur.
Des saisies incorrectes peuvent entraîner des erreurs de conversion, perturbant l’expérience utilisateur et compromettant la fiabilité de l’application.
Cet article explore la construction d’un convertisseur de devises robuste, en intégrant des validations à chaque étape pour garantir des conversions précises et une expérience fluide.
Démarrez votre voyage en programmation C# et devenez un expert en un rien de temps.
Introduction au convertisseur de devises
Dans le cadre de ce projet de conversion de devises, un défi fréquent réside dans la gestion des entrées utilisateur. Les utilisateurs peuvent se tromper lors de la saisie des montants ou des devises, ce qui peut provoquer des erreurs. L’objectif ici est de créer une application qui prend en charge ces erreurs tout en assurant la validité des données saisies. Nous allons aborder la construction du convertisseur de devises étape par étape, en intégrant des vérifications à chaque étape pour rendre l’expérience plus fluide et intuitive.
Techniques pour un taux de change précis
Saisie et validation du montant à convertir
Après l’initialisation du programme, la première étape consiste à saisir le montant que l’utilisateur souhaite convertir. Nous allons créer une variable double montant pour stocker cette valeur. La méthode suivante va être utilisée pour afficher un message et récupérer la saisie de l’utilisateur sous forme de chaîne de caractères.
Création de la méthode de saisie :
public double DemanderMontant()
{
Console.WriteLine("Entrez le montant à convertir : ");
string saisie = Console.ReadLine();
double montant;
if (double.TryParse(saisie, out montant) && montant > 0)
{
return montant;
}
else
{
Console.WriteLine("Montant invalide. Veuillez entrer un montant positif.");
return DemanderMontant();
}
}
Explication
:
Cette méthode affiche un message invitant l’utilisateur à saisir un montant. Ensuite, elle tente de convertir la saisie en un nombre (double). Si la conversion échoue ou si le montant est inférieur ou égal à zéro, un message d’erreur est affiché et l’utilisateur est invité à saisir à nouveau un montant valide.
Obtention du taux de conversion
Une fois que nous avons le montant, la prochaine étape est de récupérer le taux de conversion entre les devises. Pour ce faire, nous utilisons un dictionnaire contenant des paires de devises (devise de départ, devise cible) et leurs taux respectifs.
Création de la méthode pour obtenir le taux :
public double DemanderMontant()
{
Console.WriteLine("Entrez le montant à convertir : ");
string saisie = Console.ReadLine();
double montant;
if (double.TryParse(saisie, out montant) && montant > 0)
{
return montant;
}
else
{
Console.WriteLine("Montant invalide. Veuillez entrer un montant positif.");
return DemanderMontant();
}
}
public double ObtenirTauxDeChange(string deviseDepart, string deviseCible)
{
if (tauxDeChange.ContainsKey(deviseDepart) && tauxDeChange[deviseDepart].ContainsKey(deviseCible))
{
return tauxDeChange[deviseDepart][deviseCible];
}
else
{
Console.WriteLine("Taux de conversion introuvable.");
return 0; // Retourne un taux de conversion par défaut
}
}
Explication
:
Cette méthode vérifie si le taux de change entre la devise de départ et la devise cible existe dans le dictionnaire. Si c’est le cas, elle retourne le taux; sinon, elle affiche un message d’erreur.
Calcul du montant converti
Une fois le montant et le taux de conversion obtenus, nous pouvons effectuer le calcul pour obtenir le montant converti.
Code de calcul :
double montantConverti = montant * taux;
Console.WriteLine($"Le montant converti est : {montantConverti:F2} {deviseCible}");
Explication
:
Ce code effectue le calcul en multipliant le montant par le taux de conversion. Le résultat est ensuite affiché avec deux décimales.
Code Complet :
using System;
using System.Collections.Generic;
namespace proj_form
{
internal class Program
{
// Enumération des devises
enum Devise
{
EUR, // Euro
USD, // Dollar américain
GBP // Livre sterling
}
// Dictionnaire des taux de change
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.
}
}
// Méthode pour demander un montant valide
static double DemanderMontant()
{
Console.Write("Entrez le montant à convertir: ");
string saisie = Console.ReadLine();
double montant;
if (double.TryParse(saisie, out montant) && montant > 0)
{
return montant;
}
else
{
Console.WriteLine("Montant invalide. Veuillez entrer un montant positif.");
return DemanderMontant(); // Relancer la demande si la saisie est incorrecte.
}
}
// Méthode pour obtenir le taux de change entre deux devises
static double ObtenirTauxDeChange(Devise deviseDepart, Devise deviseCible)
{
if (tauxDeChange.ContainsKey((deviseDepart, deviseCible)))
{
return tauxDeChange[(deviseDepart, deviseCible)];
}
else
{
Console.WriteLine("Taux de conversion introuvable.");
return 0; // Retourne un taux de conversion par défaut en cas d'erreur
}
}
static void Main(string[] args)
{
// Demander les devises de départ et 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
double montant = DemanderMontant();
// Obtenir le taux de change pour la conversion
double taux = ObtenirTauxDeChange(deviseDepart, deviseCible);
if (taux > 0)
{
// Effectuer la conversion
double montantConverti = montant * taux;
// Afficher le résultat de la conversion
Console.WriteLine($"{montant} {deviseDepart} = {montantConverti:F2} {deviseCible}");
}
Console.ReadKey(); // Attente de la pression d'une touche pour fermer la console
}
}
}
Validation des montants et saisie utilisateur
Résultat final de l'application de conversion
Le programme, une fois exécuté, permet à l’utilisateur de convertir des montants entre différentes devises. Il prend en charge les erreurs liées à la saisie des montants et des devises, garantissant ainsi une expérience utilisateur fluide.
Améliorer l'expérience utilisateur
Conseils pour un convertisseur efficace
4. Conseils supplémentaires :
- Validation des entrées :Il est essentiel de toujours valider les entrées de l’utilisateur, surtout lorsqu’il s’agit de données sensibles comme des montants d’argent. La méthodeTryParseest utile pour éviter les erreurs de saisie.
- Modularité :Le programme est conçu de manière modulaire, avec des fonctions distinctes pour la saisie, la récupération du taux de change et le calcul du montant converti. Cela rend le code plus lisible et réutilisable.
- Erreurs courantes :Veillez à bien gérer les erreurs de syntaxe et les oublis de parenthèses dans les expressions conditionnelles et les boucles. Utilisez l’IDE pour détecter et corriger ces erreurs rapidement.
Ce chapitre montre comment implémenter un convertisseur de devises fonctionnel, tout en prenant soin de gérer les erreurs de manière efficace et en rendant le programme plus robuste et lisible.
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 valider les montants saisis par l'utilisateur ?
Comment récupérer le taux de conversion entre deux devises ?
Comment gérer les erreurs de saisie des devises ?
Pourquoi est-il important de gérer les erreurs de saisie dans un convertisseur de devises ?
Quelle est l'approche pour effectuer des conversions de devises précises ?
Conclusion
En conclusion, la gestion des erreurs de saisie et la validation des données sont essentielles pour un convertisseur de devises fiable. Quelle autre fonctionnalité pourrait améliorer davantage l’expérience utilisateur de votre convertisseur ?