0% ont trouvé ce document utile (0 vote)
32 vues5 pages

10 Projets

Ce document présente 10 projets destinés aux étudiants débutants en C++ pour maîtriser les structures de données via la Programmation Orientée Objet, sans utiliser la STL. Chaque projet se concentre sur une structure de données spécifique, propose une application pratique, et inclut des jalons de 5 jours avec des tests et des fonctionnalités bonus. Les projets couvrent des concepts variés tels que les listes chaînées, les tableaux dynamiques, les piles, les files, les arbres, les tables de hachage, les graphes, et les tries.

Transféré par

embollashane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
32 vues5 pages

10 Projets

Ce document présente 10 projets destinés aux étudiants débutants en C++ pour maîtriser les structures de données via la Programmation Orientée Objet, sans utiliser la STL. Chaque projet se concentre sur une structure de données spécifique, propose une application pratique, et inclut des jalons de 5 jours avec des tests et des fonctionnalités bonus. Les projets couvrent des concepts variés tels que les listes chaînées, les tableaux dynamiques, les piles, les files, les arbres, les tables de hachage, les graphes, et les tries.

Transféré par

embollashane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Voici une présentation améliorée des 10 projets pour apprendre les structures de données en

C++ avec la POO, sans utiliser la STL.

10 Projets pour Maîtriser les Structures de Données


en C++ avec la POO (sans STL)
Ces projets sont conçus pour les étudiants débutants en C++ souhaitant approfondir leur
compréhension des structures de données et de la Programmation Orientée Objet (POO).
Chaque projet se concentre sur une seule structure de données, propose une application
pratique (jeux, gestion de données, simulation, IA) et s'étale sur 5 jours avec des jalons clairs.
L'accent est mis sur l'encapsulation des structures de données via la POO, la gestion
manuelle des pointeurs et de la mémoire, et l'implémentation de fonctionnalités bonus de tri
ou de recherche. L'évaluation prend en compte la robustesse du code, la gestion des cas
limites, la clarté de la documentation (commentaires) et la qualité des présentations.

Projet 1 : Inventaire de Jeu avec Liste Chaînée


●​ Structure : Liste chaînée simple
●​ Description : Implémentez une classe InventoryList pour gérer l'inventaire d'un joueur
dans un jeu vidéo (ex: "épée", "potion").
●​ Application Pratique (Jeu) : Simulez un sac d'objets dans un jeu de rôle (RPG).
●​ Concepts Clés : Liste chaînée, insertion, suppression, parcours, gestion des pointeurs.
●​ Fonctionnalité Bonus : Trier les objets par nom (tri par insertion).
●​ Tests Spécifiques :
○​ Ajouter 3 objets et vérifier l'affichage dans le bon ordre.
○​ Supprimer un objet inexistant (gérer l'erreur).
○​ Ajouter un objet dans une liste vide.
○​ Supprimer tous les objets.
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe InventoryList et de la méthode d'ajout.
○​ Jour 3 : Ajout et affichage fonctionnels, début de la suppression.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.

Projet 2 : Simulation de Scores avec Tableau Dynamique


●​ Structure : Tableau dynamique
●​ Description : Créez une classe ScoreBoard pour gérer les scores des joueurs dans une
simulation de tournoi.
●​ Application Pratique (Simulation) : Simulez un classement dans un tournoi de jeu.
●​ Concepts Clés : Tableau dynamique, allocation/réallocation mémoire,
redimensionnement.
●​ Fonctionnalité Bonus : Rechercher le score le plus élevé (recherche linéaire).
●​ Tests Spécifiques :
○​ Ajouter 5 scores et vérifier l'affichage.
○​ Redimensionner le tableau après l'ajout de 10 scores.
○​ Supprimer un score à un index invalide (gérer l'erreur).
○​ Vérifier la gestion d'un tableau vide.
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe ScoreBoard et de la méthode d'ajout.
○​ Jour 3 : Ajout et redimensionnement fonctionnels.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.

Projet 3 : Fonctionnalité "Undo" avec une Pile


●​ Structure : Pile (Stack)
●​ Description : Implémentez une classe MoveStack pour gérer un historique de
mouvements dans un jeu (ex: positions dans un jeu de plateau).
●​ Application Pratique (Jeu) : Simulez la fonction "undo" (annuler) dans un jeu d'échecs.
●​ Concepts Clés : Pile, gestion LIFO (Last-In, First-Out), allocation dynamique.
●​ Fonctionnalité Bonus : Rechercher un mouvement spécifique (recherche linéaire).
●​ Tests Spécifiques :
○​ Empiler 3 mouvements et vérifier l'ordre d'affichage.
○​ Dépiler sur une pile vide (gérer l'erreur).
○​ Vérifier l'état après plusieurs opérations push/pop.
○​ Vérifier l'affichage de la pile vide.
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe MoveStack et de la méthode push.
○​ Jour 3 : Opérations push et pop fonctionnelles.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.

Projet 4 : Simulation de File d'Attente avec une File


●​ Structure : File (Queue)
●​ Description : Créez une classe QueueSimulator pour gérer une file d'attente de clients
dans une simulation de supermarché.
●​ Application Pratique (Simulation) : Simulez une caisse dans un magasin.
●​ Concepts Clés : File, gestion FIFO (First-In, First-Out), gestion des pointeurs.
●​ Fonctionnalité Bonus : Trier les clients par temps d'attente (tri par sélection).
●​ Tests Spécifiques :
○​ Ajouter 4 clients et vérifier l'ordre FIFO.
○​ Retirer un client d'une file vide (gérer l'erreur).
○​ Vérifier l'affichage après ajout/retrait.
○​ Ajouter un client avec un temps d'attente négatif (gérer l'erreur).
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe QueueSimulator et de la méthode enqueue.
○​ Jour 3 : Opérations enqueue et dequeue fonctionnelles.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.

Projet 5 : Simulation d'IA avec Arbre Binaire


●​ Structure : Arbre binaire
●​ Description : Implémentez une classe DecisionTree pour simuler un arbre de décision
dans une IA simple (ex: choix dans un jeu).
●​ Application Pratique (IA) : Modélisez les décisions d'un bot dans un jeu.
●​ Concepts Clés : Arbre binaire, insertion, parcours (pré-ordre), suppression.
●​ Fonctionnalité Bonus : Rechercher un nœud par valeur (recherche en profondeur).
●​ Tests Spécifiques :
○​ Ajouter 5 nœuds et vérifier le parcours pré-ordre.
○​ Supprimer un nœud inexistant (gérer l'erreur).
○​ Vérifier l'arbre vide après suppression complète.
○​ Vérifier la structure après ajout/suppression.
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe DecisionTree et de la méthode d'insertion.
○​ Jour 3 : Insertion et parcours fonctionnels.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.

Projet 6 : Gestion de Scores avec Table de Hachage


●​ Structure : Table de hachage
●​ Description : Créez une classe ScoreTable pour gérer les scores des joueurs dans un
jeu (nom, score), avec gestion des collisions par chaînage.
●​ Application Pratique (Gestion de Données) : Gestion des scores dans un classement
de jeu.
●​ Concepts Clés : Table de hachage, fonction de hachage, gestion des collisions.
●​ Fonctionnalité Bonus : Trier les joueurs par score (tri par insertion).
●​ Tests Spécifiques :
○​ Ajouter 5 joueurs et vérifier la recherche par nom.
○​ Ajouter deux joueurs avec collision et vérifier la gestion.
○​ Rechercher un joueur inexistant (gérer l'erreur).
○​ Vérifier l'affichage de la table vide.
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe ScoreTable et de la fonction de hachage.
○​ Jour 3 : Ajout et recherche fonctionnels.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.

Projet 7 : Simulation de Réseau avec Graphe


●​ Structure : Graphe (liste d'adjacence)
●​ Description : Implémentez une classe NetworkGraph pour simuler un réseau de
communication (nœuds = appareils, arêtes = connexions).
●​ Application Pratique (Simulation) : Modélisez un réseau informatique.
●​ Concepts Clés : Graphe, liste d'adjacence, parcours.
●​ Fonctionnalité Bonus : Rechercher un appareil par nom (recherche en largeur).
●​ Tests Spécifiques :
○​ Ajouter 4 appareils et 3 connexions, vérifier l'affichage.
○​ Ajouter une connexion à un appareil inexistant (gérer l'erreur).
○​ Vérifier un graphe vide.
○​ Vérifier les connexions d'un appareil isolé.
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe NetworkGraph et de la méthode d'ajout de
nœud.
○​ Jour 3 : Ajout de nœuds et de connexions fonctionnels.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.
Projet 8 : Gestion de Bibliothèque avec Arbre Binaire de Recherche
●​ Structure : Arbre binaire de recherche
●​ Description : Créez une classe LibraryTree pour gérer un catalogue de livres (titre, ID).
●​ Application Pratique (Gestion de Données) : Gestion d'une bibliothèque numérique.
●​ Concepts Clés : Arbre binaire de recherche, insertion, recherche, parcours (en ordre).
●​ Fonctionnalité Bonus : Trier les livres par titre (parcours modifié).
●​ Tests Spécifiques :
○​ Insérer 5 livres et vérifier le parcours en ordre.
○​ Rechercher un livre inexistant (gérer l'erreur).
○​ Supprimer un livre et vérifier l'ordre des livres restants.
○​ Vérifier un arbre vide.
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe LibraryTree et de la méthode d'insertion.
○​ Jour 3 : Insertion et recherche fonctionnelles.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.

Projet 9 : Autocomplétion de Jeu avec Trie


●​ Structure : Trie (arbre préfixe)
●​ Description : Implémentez une classe AutoCompleteTrie pour gérer les noms de
personnages dans un jeu (autocomplétion).
●​ Application Pratique (Jeu) : Autocomplétion dans un jeu de recherche de personnages.
●​ Concepts Clés : Trie, insertion, recherche par préfixe.
●​ Fonctionnalité Bonus : Trier les suggestions par ordre alphabétique.
●​ Tests Spécifiques :
○​ Insérer 5 noms et vérifier les suggestions pour un préfixe.
○​ Rechercher un préfixe sans correspondance (gérer l'erreur).
○​ Vérifier l'affichage d'un trie vide.
○​ Insérer des noms identiques et vérifier la gestion.
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe AutoCompleteTrie et de la méthode d'insertion.
○​ Jour 3 : Insertion et recherche fonctionnelles.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.

Projet 10 : Planificateur de Tâches IA avec Tas


●​ Structure : Tas min
●​ Description : Créez une classe TaskHeap pour gérer des tâches prioritaires dans une
simulation d'IA.
●​ Application Pratique (IA) : Planification des tâches pour un agent IA dans un jeu.
●​ Concepts Clés : Tas (Heap), insertion, extraction, réorganisation.
●​ Fonctionnalité Bonus : Rechercher une tâche par description (recherche linéaire).
●​ Tests Spécifiques :
○​ Ajouter 5 tâches et vérifier l'extraction de la plus prioritaire.
○​ Extraire d'un tas vide (gérer l'erreur).
○​ Vérifier l'ordre après plusieurs ajouts/extractions.
○​ Ajouter une tâche avec priorité négative (gérer l'erreur).
●​ Jalons (5 jours) :
○​ Jour 1 : Présentation de la classe TaskHeap et de la méthode d'insertion.
○​ Jour 3 : Insertion et extraction fonctionnelles.
○​ Jour 5 : Toutes les fonctionnalités, tests et documentation finalisés.

Vous aimerez peut-être aussi