Exercice 1 : Manipulation de Listes en C#
Cet exercice explore les fonctionnalités fondamentales de la collection List<T> en C#. Il vous guide à travers les opérations courantes telles que l'initialisation, l'affichage, l'ajout, la recherche et le comptage d'éléments.
- Créer une liste avec les sept couleurs de l'arc-en-ciel.
- Afficher la liste par ordre alphabétique.
- Ajouter la couleur "marron".
- Afficher le nombre d'éléments dans la liste.
- Tester si la couleur "rose" est présente.
- En utilisant la méthode
FindAll:- Écrire une méthode statique permettant de trouver toutes les couleurs ayant 5 lettres.
- Écrire une méthode statique permettant de trouver toutes les couleurs se terminant par "ge".
Exercice 2 : Gestion de Dictionnaires en C#
Découvrez comment utiliser la classe Dictionary<TKey, TValue> pour créer des associations clé-valeur. Cet exercice couvre la création, l'accès, la modification et la suppression d'éléments, ainsi que la gestion des exceptions courantes.
- Créer un dictionnaire nommé
ouvrirAvecqui associe à chaque extension de fichier un programme par défaut (par exemple, ".txt" sera ouvert avec "notepad.exe"). - Si une clé existe déjà, le programme déclenche une exception. Il est nécessaire de gérer cette exception.
- Parcourir le dictionnaire et afficher chaque paire clé-valeur sous la forme : « La valeur associée à la clé "" est "" ».
- Modifier le programme associé à l'une des clés, puis afficher le changement.
- L'indexeur d'un dictionnaire lance une exception si la clé n'est pas définie. Tester et gérer cette exception.
- Utiliser la méthode
TryGetValuepour chercher une valeur sans provoquer d'exception en cas d'absence de la clé. - Utiliser la méthode
ContainsKeypour vérifier si une clé existe. - Supprimer une paire clé/valeur spécifique.
- Afficher le nombre total de paires stockées dans le dictionnaire.
- Utiliser la méthode
Clearpour supprimer toutes les paires clé/valeur du dictionnaire.
Exercice 3 : Gestion des Exceptions et Validation de Données
Cet exercice se concentre sur l'implémentation robuste d'applications en C# en maîtrisant la gestion des exceptions, notamment pour la validation des saisies utilisateur et la création d'exceptions personnalisées.
- Écrire un programme qui demande à l'utilisateur de saisir un entier, en gérant l'exception si la saisie est incorrecte.
- Écrire un programme qui demande à l'utilisateur de saisir un entier et de refaire la saisie en cas d'erreur, en gérant l'exception.
- Écrire un programme qui demande à l'utilisateur de saisir sa date de naissance et de refaire la saisie en cas d'invalidité, en gérant l'exception.
- Écrire un programme qui demande à l'utilisateur une date de départ et une date d'arrivée, et génère une exception si la date d'arrivée est antérieure à la date de départ.
- Créer une classe
Élèvecaractérisée par un nom, un âge et une moyenne.- L'âge doit être compris entre 18 et 26 ans, sinon une exception
InvalidAgeException(qui affiche le message "L’âge doit être entre 18 et 26") est générée. - La note doit être comprise entre 0 et 20, sinon une exception
InvalidNoteException(qui affiche le message "La note doit être entre 0 et 20") est générée. - Définir les constructeurs de la classe, les accesseurs (getters/setters) et la méthode
ToString().
- L'âge doit être compris entre 18 et 26 ans, sinon une exception
Exercice 4 : Interface Utilisateur avec Listes Dynamiques
Développez une application C# avec une interface utilisateur interactive, manipulant deux listes d'éléments. Cet exercice se concentre sur la gestion des listes via des boutons pour le déplacement, le tri et le transfert d'éléments.
Une liste (gauche) se remplit lors du chargement du formulaire. Une seconde liste (droite) est initialement vide et est alimentée via les actions de l'utilisateur.
Voici le rôle des différents boutons :
- Déplacer vers le haut : Déplace l'élément sélectionné d'une ligne vers le haut dans sa liste.
- Déplacer vers le bas : Déplace l'élément sélectionné d'une ligne vers le bas dans sa liste.
A-Z: Trie la liste correspondante par ordre alphabétique croissant.Z-A: Trie la liste correspondante par ordre alphabétique décroissant.>: Déplace l'élément sélectionné de la liste de gauche vers celle de droite.<-: Déplace l'élément sélectionné de la liste de droite vers celle de gauche.>>: Déplace la totalité de la liste de gauche vers celle de droite.<<-: Déplace la totalité de la liste de droite vers celle de gauche.
Exercice 5 : Applications Interactives avec ListBox et CheckBox
Cet exercice vous guide dans la création et l'amélioration d'une application de sélection de menu, en utilisant les contrôles ListBox et CheckBox pour une interaction utilisateur avancée et des raccourcis clavier.
- Réaliser une application C# permettant à l'utilisateur de composer un menu à l'aide d'une
ListBox. Le bouton "Commander" affiche un message listant les plats sélectionnés par l'utilisateur. La sélection multiple est autorisée. - Amélioration de l'application (utilisation de
ButtonetCheckBox) :- Le bouton "Commander" conserve sa fonction d'affichage du menu composé.
- Les boutons "Cocher tout" et "Décocher tout" permettent de sélectionner ou désélectionner l'ensemble des plats proposés.
- L'application gère également les raccourcis clavier : la touche
Entréeactive le bouton "Commander" et la toucheÉchap(Escape) le bouton "Quitter".
Exercice 6 : Chronomètre et Système d'Authentification
Cet exercice propose la réalisation de deux applications C# distinctes : un chronomètre fonctionnel et un système d'authentification sécurisé avec gestion du temps.
- Réaliser une application C# "Chronomètre" :
- Le bouton "Démarrer" lance le chronomètre.
- Le bouton "Arrêter" met le chronomètre en pause.
- Le bouton "Effacer" réinitialise le chronomètre et vide la liste des tours enregistrés.
- Le bouton "Tour" permet d'enregistrer la valeur actuelle du chronomètre dans une liste.
- Réaliser une application d'authentification :
- L'utilisateur doit entrer son identifiant et mot de passe dans un délai de 30 secondes.
- Si l'utilisateur entre des informations erronées, une boîte de message affiche "Code erroné".
- Si les informations ne sont pas saisies correctement dans le délai imparti (30 secondes), une boîte de message affiche "Temps épuisé" et l'application se ferme.
- En cas de saisie correcte, une boîte de message affiche "Bienvenue !".
- Une barre de progression visualise le temps restant à l'utilisateur.
Foire Aux Questions (FAQ)
Qu'est-ce qu'une
List<T>en C# et à quoi sert-elle ?Une
List<T>en C# est une collection générique qui permet de stocker une liste d'objets fortement typés. Elle est très flexible et permet d'ajouter, de supprimer, de rechercher et de trier des éléments dynamiquement. Elle est souvent utilisée lorsque l'on a besoin d'une collection ordonnée d'éléments dont la taille peut varier au cours de l'exécution du programme.Quand devrais-je utiliser un
Dictionary<TKey, TValue>plutôt qu'uneList<T>?Vous devriez utiliser un
Dictionary<TKey, TValue>lorsque vous avez besoin de stocker des paires de données (clé-valeur) et d'accéder rapidement aux valeurs en utilisant une clé unique. Par exemple, pour associer des noms à des identifiants ou des extensions de fichiers à des programmes. UneList<T>est préférable lorsque l'ordre des éléments est important et que l'accès se fait généralement par index ou par itération.Pourquoi la gestion des exceptions est-elle cruciale en développement C# ?
La gestion des exceptions est cruciale pour rendre les applications robustes et fiables. Elle permet de détecter et de réagir de manière contrôlée aux erreurs inattendues (comme une division par zéro, un fichier introuvable ou une saisie utilisateur invalide) sans faire crasher l'application. En gérant les exceptions, on améliore l'expérience utilisateur et on facilite le débogage et la maintenance du code.