/* IFT1166 - Session Hiver 2007 - TP#3 - Correcteur orthographique Mohamed Lokbani & Philippe Langlais contact: lokbani@iro.umontreal.ca ou pift1166@iro.umontreal.ca fichier contenant les classes: Phrase, Dictionnaire et Correcteur */ // ---------------> Fichier à Compléter par vous <------------------ /* ------------------------------------------------------------------ PROGRAMMEUR 1 nom: prénom: login: PROGRAMMEUR 2 nom: prénom: login: COMMENTAIRES (s'il le faut): ------------------------------------------------------------------ */ #ifndef _H_PROCESS #define _H_PROCESS /* ------------------------------------------------------------- La classe "Phrase" ------------------ Ces deux membres privés sont initialisés par le constructeur - mots est un pointeur vers une table de mots - nbMots est le nombre de mots de votre phrase - constructeur avec un argument qui est une phrase. son rôle est de construire la table de mots. Il vous faut donc découper une phrase en mots, allouer la table, etc. L'utilisateur de la classe (cad vous !) pourra accéder aux membres privés grâce aux méthodes suivantes: - getNbMots() : nombre de mots dans la phrase - getMot(i) : retourne le ieme mot dans la phrase ------------------------------------------------------------- */ class Phrase { private: string* mots; // un pointeur sur un tableau de mots int nbMots; // le nombre de mots dans la phrase public: /* Le constructeur de la classe "Phrase" prend en argument une phrase (un objet string) à stocker. Son rôle est de découper cette phrase en mots qui seront stockés dans la table mots. */ Phrase(string phrase) { // à compléter // 1) compte le nombre de mots de la phrase : nbMots // 2) alloue la table mots de manière à contenir exactement nbMots // 3) range chaque mot dans la table mots } ~Phrase() { // à compléter // détruit les données allouées dynamiquement. } /* Les méthodes suivantes permettent d'accéder à des informations comme: - le nombre de mots de la phrase - un mot particulier */ // retourne le nombre de mots dans la phrase int getNbMots() { // à compléter } // retourne le ième mot de la phrase string getMot(int i) { // à compléter } }; /* ------------------------------------------------------------- La classe Dictionnaire Permet de coder un lexique (dictionnaire) sous la forme d'une table de mots (string) - la table est sur-allouée directement au moment de la déclaration et contiendra au plus MAX_MOTS mots. - la variable membre nbMots contient le nombre exact de mots codés dans le dictionnaire. - Le constructeur prend en argument un objet de type Donnees à lire. Le fichier lexique est supposé déjà trié. - L'utilisateur de la classe (vous) peut savoir si un mot existe dans la table ou non. ------------------------------------------------------------- */ class Dictionnaire { private: static const int MAX_MOTS = 1000; // nb max de mots que l'on peut ranger // dans un dictionnaire (passé au constructeur) string *mots; // la table de mots int nbMots; // nombre de mots réellement présents dans le dico (initialement 0) public: /* Le constructeur qui prend en argument un objet instancié à partir de la classe Données. Cet objet contient les mots du dictionnaire supposés triés (ordre alphabétique croissant) et rangés un mot par ligne. Cette méthode lit les données et ajoute dans la table les mots lus. */ Dictionnaire(Donnees* DicoData) { // à compléter } ~Dictionnaire() { // à compléter } // prédicat (méthode booléenne) qui retourne true si le mot passé en argument // existe dans le dictionnaire, false sinon bool appartient(string mot) { // à compléter } }; /* ---------------------------------------------------------------------- La classe Correcteur membres private: - Cette classe contient un pointeur sur un objet Phrase qui sera instancié dans la méthode corrige. _ Elle contient de plus un pointeur sur un objet Dictionnaire qui sera instancié dans le constructeur. membre public: - Le constructeur de la classe prend en argument un objet de type Donnees (contennant les mots du dictionnaire). - l'utilisateur de la classe (vous) peut accéder au correcteur par la méthode corrige qui prend en argument la phrase à corriger ------------------------------------------------------------------------- */ class Correcteur { private: Phrase *phrase; // un pointeur sur un objet Phrase Dictionnaire *dico; // un pointeur sur un objet Dictionnaire public: // le constructeur Correcteur(Donnees* DicoData) { // à compléter } ~Correcteur() { // à compléter } // méthode appelée pour corriger une phrase passée en argument void corrige(string ph) { // à compléter } }; #endif