Jan.01
TP6- Collections HashTable et SortedList
Problème :
- Définir la classe Dictionnaire qui comporte une liste de mots et leurs définitions (une seule définition pour chaque mot). Utilisez la classe Hashtable (La clé doit être le mot et la valeur sa définition).
- Ajouter une méthode ajouterMot() qui ajoute un mot et sa définition.
- Ajouter une méthode rechecherDefinition() qui recherche la définition d’un mot.
- Ajouter une méthode rechercherMot() qui retourne le mot d’une définition donnée.
- Ajouter une méthode modifierDéfinition() qui modifie la définition d’un mot.
- Ajouter une méthode listeMots() qui retourne les mots du dictionnaire et leurs définitions.
- Teste les différentes méthodes dans Main (Utiliser les mots et ses définitions qui sont présentés dans le tableau ci-dessous)
- On souhaite ordonner les mots. Proposez une solution.
- Teste la solution dans Main.
Mot | Définition |
Moteur de recherche sur internet | |
ISTA | Institut Spécialisé de Technologie Appliquée |
Mark Zuckerberg | Le fondateur du site Internet de réseautage social Facebook |
Real Madrid | Un club professionnel espagnol de football, basé à Madrid. |
Houara | Une ville marocaine située entre Agadir et Taroudant. |
Election | Choix qu’on exprime par l’intermédiaire d’un vote |
C# | Un langage de programmation orienté objet, commercialisé par Microsoft |
Smartphone | Téléphone intelligent. |
Amazon.com | Une entreprise de commerce électronique américaine |
Lionel Messi | Un footballeur international argentin évoluant au poste d’attaquant au FC Barcelone. |
Correction
La classe Dictionnaire
using System; using System.Collections; using System.Linq; using System.Text; namespace TP6 { class Dictionnaire { Hashtable dict; public Dictionnaire() { } public Dictionnaire(Hashtable d) { this.dict = d; } public void ajouterMot(string mot, string def) { this.dict.Add(mot,def); } public string rechecherDefinition(string mot) { string r = ""; foreach (string m in dict.Keys) { if (m.Equals(mot)) { r = dict[m].ToString(); } } if (r.Equals("")) { return "Ce Mot n'existe pas"; ; } else { return r; } } public string rechercherMot(string def) { string r = ""; foreach (string m in dict.Keys) { if (dict[m].Equals(def)) { r = m; } } if (r.Equals("")) { return "Cette définition n'existe pas"; ; } else { return r; } } public void modifierDéfinition(string mot, string def) { bool x = false; string pm = ""; foreach(string m in dict.Keys) { if (m.Equals(mot)) { pm=m; x = true; } } if (x == false) { Console.WriteLine("Le mot n'existe pas dans le dictionnaire"); } else { this.dict[pm] = def; Console.WriteLine("La modification est faite avec succès"); } } public string listeMots() { string l=""; foreach (string m in dict.Keys) { l = l + " \n - " + m+ " : "+dict[m]; } return l; } } }
La classe DictionnaireOrdonne
using System; using System.Collections; using System.Linq; using System.Text; namespace TP6 { class DictionnaireOrdonne { SortedList dicto; public DictionnaireOrdonne() { } public DictionnaireOrdonne(SortedList d) { this.dicto = d; } public string rechecherDefinition(string mot) { string r = ""; foreach (string m in dicto.Keys) { if (m.Equals(mot)) { r = dicto[m].ToString(); } } if (r.Equals("")) { return "Ce Mot n'existe pas"; ; } else { return r; } } public string rechercherMot(string def) { string r = ""; foreach (string m in dicto.Keys) { if (dicto[m].Equals(def)) { r = m; } } if (r.Equals("")) { return "Cette définition n'existe pas"; ; } else { return r; } } public void modifierDéfinition(string mot, string def) { bool x = false; string pm = ""; foreach (string m in dicto.Keys) { if (m.Equals(mot)) { pm = m; x = true; } } if (x == false) { Console.WriteLine("Le mot n'existe pas dans le dictionnaire"); } else { this.dicto[pm] = def; Console.WriteLine("La modification est faite avec succès"); } } public string listeMots() { string l = ""; foreach (string m in dicto.Keys) { l = l + " \n - " + m + " : " + dicto[m]; } return l; } } }
La classe Program
using System; using System.Collections; using System.Linq; using System.Text; namespace TP6 { class Program { static void Main(string[] args) { // Question 7 Hashtable d = new Hashtable(); d.Add("Google", "Moteur de recherche sur internet"); d.Add("ISTA", "Institut Spécialisé de Technologie Appliquée"); d.Add("Mark Zuckerberg", "Le fondateur du site Internet de réseautage social Facebook"); d.Add("Real Madrid", "Un club professionnel espagnol de football, basé à Madrid"); d.Add("Houara", "Une ville marocaine située entre Agadir et Taroudant"); d.Add("Election", "Choix qu'on exprime par l'intermédiaire d'un vote"); d.Add("C#", "Un langage de programmation orienté objet, commercialisé par Microsoft"); d.Add("Smartphone", "Téléphone intelligent"); d.Add("Amazon.com", "Une entreprise de commerce électronique américaine"); Dictionnaire dict = new Dictionnaire(d); dict.ajouterMot("Lionel Messi", "Un footballeur international argentin évoluant au poste d'attaquant au FC Barcelone"); Console.WriteLine(dict.listeMots()); Console.WriteLine("La définition du mot Houara est : " + dict.rechecherDefinition("Houara")); dict.modifierDéfinition("Real Madrid", "Un club professionnel espagnol de football, qui a remporté 11 fois Ligue des Champions"); //--------------------------------------- // Questions 9 SortedList s = new SortedList(); s.Add("Google", "Moteur de recherche sur internet"); s.Add("ISTA", "Institut Spécialisé de Technologie Appliquée"); s.Add("Mark Zuckerberg", "Le fondateur du site Internet de réseautage social Facebook"); s.Add("Real Madrid", "Un club professionnel espagnol de football, basé à Madrid"); s.Add("Houara", "Une ville marocaine située entre Agadir et Taroudant"); s.Add("Election", "Choix qu'on exprime par l'intermédiaire d'un vote"); s.Add("C#", "Un langage de programmation orienté objet, commercialisé par Microsoft"); s.Add("Smartphone", "Téléphone intelligent"); s.Add("Amazon.com", "Une entreprise de commerce électronique américaine"); s.Add("Lionel Messi", "Un footballeur international argentin évoluant au poste d'attaquant au FC Barcelone"); DictionnaireOrdonne dicto = new DictionnaireOrdonne(s); Console.WriteLine("Liste des mots ordonne : "); Console.WriteLine(dicto.listeMots()); Console.ReadKey(); } } }