projet dans C++ Skill Tree

Retrouver des notes par mots-clés

Créez une recherche de notes réutilisable en C++ avec identité par chemin relatif, index de mots ASCII et requêtes AND par document, renvoyant toutes les notes correspondantes et leurs lignes réelles.

ProjetC++

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Retrouver des notes par mots-clés est un projet pratique en C++ destiné aux personnes qui connaissent les bases du langage. Vous transformerez quelques mots dont vous vous souvenez en un outil de recherche local réutilisable qui retrouve toutes les notes correspondantes dans plusieurs dossiers et indique où ces mots apparaissent réellement.

Le cours associe deux laboratoires guidés à un défi autonome. Vous relierez d’abord les mots aux identités des documents dans un index. Vous combinerez ensuite les mots d’une requête pour trouver tous les documents qui les contiennent. Enfin, vous appliquerez les mêmes règles à une autre collection de notes. Chaque laboratoire fournit ses propres notes et son code de départ, sans dépendre des fichiers de l’environnement précédent.

Ce que vous apprendrez

À la fin du cours, vous saurez :

  • identifier les documents par leur chemin relatif et distinguer les fichiers de même nom dans des dossiers différents ;
  • construire avec map et set un index reliant les mots à des ensembles de documents, sans dupliquer un document lorsqu’un mot se répète ;
  • appliquer une règle de mots entiers fondée sur les lettres ASCII, sans distinguer leur casse ;
  • combiner les ensembles candidats avec AND pour renvoyer tous les documents contenant tous les mots de la requête ;
  • afficher les chemins réels, les numéros de ligne et les lignes originales correspondantes, sans répéter une même ligne ;
  • reconstruire l’index à partir des notes d’exercice actuelles en relançant le programme, tout en préservant les originaux de référence.

À qui s’adresse ce cours

Ce cours s’adresse aux personnes qui apprennent le C++ et souhaitent employer les conteneurs standard et la lecture de fichiers pour créer un outil de recherche utile aux règles précises et vérifiables.

Prérequis : Savoir naviguer dans un terminal et connaître les chaînes, fonctions, vector, flux de fichiers et exceptions de base en C++. Les laboratoires guidés présentent les opérations nécessaires de map et set, l’identité par chemin relatif et l’intersection d’ensembles.

Environnement d’apprentissage : LabEx fournit un environnement Linux préparé dans le navigateur, avec un compilateur C++17, du code de départ, des collections de notes et Terminal. Le code d’aide pour charger les fichiers, extraire les mots et formater la sortie est préparé. Les commandes et messages du programme sont en anglais ; les noms et textes des notes conservent le contenu fourni.

Questions fréquentes

Tous les mots doivent-ils figurer sur la même ligne ?

Non. AND s’applique au document entier. Les différents mots peuvent apparaître sur des lignes différentes. Le résultat affiche une fois chaque ligne originale contenant au moins un mot de la requête, afin que vous puissiez retrouver les éléments correspondants.

Cette recherche comprend-elle toutes les langues ?

La règle se limite aux suites de lettres ASCII et ne normalise que leur casse ; les autres octets séparent les mots. cat et catalog sont des mots différents. Les noms de fichiers Unicode et les lignes originales sont préservés, mais le projet ne propose pas de segmentation multilingue générale.

Comment les notes modifiées entrent-elles dans l’index ?

Chaque exécution relit les fichiers actuels et construit un nouvel index en mémoire. Relancez le programme après avoir modifié, ajouté ou supprimé une note d’exercice autorisée. Les originaux de référence restent inchangés ; il n’y a ni index persistant ni service d’actualisation en arrière-plan.

Enseignant

labby
Labby
Labby is the LabEx teacher.

Recommandé pour vous

no data