Travail Pratique – Énumérations
"L’expérience est la meilleure des écoles, surtout en programmation."
Objectif du TP
Mettre en pratique l’utilisation d’une énumération (enum) dans un programme interactif simple.
Scénario
Vous développez un petit programme de gestion de commandes de boissons pour une machine automatique.
-
Le programme propose un menu à l'utilisateur avec des choix de boissons :
- Eau
- Thé
- Café
- Soda
-
L'utilisateur entre un chiffre correspondant à la boisson désirée.
-
Le programme affiche un message du type :
"Vous avez choisi : Café"
-
Si le choix ne correspond à rien, il affiche :
"Sélection invalide."
Contraintes
- Utiliser une énumération
Beverage(Boisson) - Utiliser un
switchpour déterminer la boisson - Gérer les cas non valides avec
default - Ne pas utiliser directement de
stringdans les comparaisons
Pseudocode !
Tout n'est pas définis dans ce pseudocode mais ça permet de bien démarrer.
Clique ici pour le découvrir.
Début du programme
Afficher le menu : 1 - Eau 2 - Thé 3 - Café 4 - Soda
Lire la saisie utilisateur (int)
Convertir la valeur en énumération
Afficher la boisson choisie selon la valeur :
Si 1 → Eau Si 2 → Thé Si 3 → Café Si 4 → Soda Sinon → Invalide
Fin du programme
Astuces
- Créez l’énumération avant le
Main() - Pensez à utiliser les conversions string -> int et int -> à l'énumération
- N’oubliez pas
breakdans leswitch
Bonus
- Ajouter un champ de confirmation : “Souhaitez-vous une autre boisson ?”
- Répéter la commande tant que l'utilisateur répond “oui”
- Testez avec des saisies valides et invalides (ex : 0 ou 99)
Solution TP
Avez-vous essayez avant ? Clique pour découvrir une solution.
using System;
namespace boisson
{
// 1. Définition de l'énumération
enum Beverage
{
Eau = 1,
The = 2,
Cafe = 3,
Soda = 4
}
class Program
{
static void Main(string[] args)
{
bool repeat = true;
while (repeat)
{
Console.Clear();
Console.WriteLine("=== MENU BOISSONS ===");
Console.WriteLine("1 - Eau");
Console.WriteLine("2 - Thé");
Console.WriteLine("3 - Café");
Console.WriteLine("4 - Soda");
Console.Write("Votre choix (1 à 4) : ");
// 2. Lecture de l’entrée
string usrValue = Console.ReadLine();
// 3 Conversion de string à int
int choice = Convert.ToInt32(usrValue);
// 4 Conversion du choix de l'utilisateur dans le type enum Beverage
Beverage usrChoice = (Beverage)choice;
// 5. Traitement avec switch
switch (usrChoice)
{
case Beverage.Eau:
Console.WriteLine("Vous avez choisi : Eau");
break;
case Beverage.The:
Console.WriteLine("Vous avez choisi : Thé");
break;
case Beverage.Cafe:
Console.WriteLine("Vous avez choisi : Café");
break;
case Beverage.Soda:
Console.WriteLine("Vous avez choisi : Soda");
break;
default:
Console.WriteLine("Sélection invalide.");
break;
}
// 5. Demander si l'utilisateur veut recommencer
Console.Write("\nSouhaitez-vous une autre boisson ? (oui/non) : ");
string reponse = Console.ReadLine().Trim().ToLower();
repeat = (reponse == "oui" || reponse == "o");
Console.WriteLine();
}
Console.WriteLine("Merci et à bientôt !");
}
}
}
Navigation
Introduction Déclaration Utilisation Travail pratique