Introduction

Ce projet est une collection de programmes C++ qui illustrent divers concepts de la programmation orientee objet, de la manipulation de vecteurs et de la gestion de figures geometriques. Il est structure en plusieurs etapes et travaux diriges (TD), chacun se concentrant sur des aspects specifiques de la programmation C++.

Etapes

Les fichiers Etape_1.cpp a Etape_6.cpp illustrent la manipulation de points en 2D et 3D. Toutes ces etapes avaient principalement pour but de comprendre le fonctionnement du C++.

Introduction

This project is a collection of C++ programs that illustrate various concepts of object-oriented programming, vector manipulation, and geometric figure management. It is structured into several steps and tutorials (TD), each focusing on specific aspects of C++ programming.

Steps

The files Step_1.cpp, Step_2.cpp, Step_3.cpp, Step_4.cpp, Step_5.cpp, and Step_6.cpp illustrate the manipulation of points in 2D and 3D. All these steps were mainly to understand how C++ works.

Step 1 - Step 2 - Step 3 - Step 4 - Step 5 - Step 6

Les fonctionnalites comprennent :

  • Saisie et affichage : Les points peuvent etre saisis et affiches.
  • Operations mathematiques : Les points peuvent etre additionnes et multiplies par des scalaires.

TDs

Manipulation de vecteurs

Les fichiers TD1.cpp, TD2.cpp, TD4.cpp et TD5.cpp contiennent des implementations de la classe vecteur. Cette classe permet de creer et de manipuler des vecteurs de differentes dimensions. Voici quelques fonctionnalites cles :

Features include:

  • Input and Display: Points can be input and displayed.
  • Mathematical Operations: Points can be added and multiplied by scalars.

TDs

Vector Manipulation

The files TD1.cpp, TD2.cpp, TD4.cpp, and TD5.cpp contain implementations of the vector class. This class allows you to create and manipulate vectors of different dimensions. Here are some key features:

TD1 - TD2 - TD4 - TD5

  • Constructeurs et destructeurs : La classe vecteur possede plusieurs constructeurs pour initialiser les vecteurs avec des dimensions et des valeurs specifiques. Le destructeur assure la liberation de la memoire allouee dynamiquement.
  • Saisie et affichage : Les methodes de saisie et d'affichage permettent respectivement de saisir et d'afficher les valeurs des vecteurs.
  • Operateurs surcharges : La classe surcharge plusieurs operateurs, dont l'operateur d'indexation [], l'operateur d'affectation = et l'operateur d'addition +.

TPs

Dans cette partie, vous trouverez deux projets C++ cles axes sur la gestion de figures geometriques et l'utilisation de la Standard Template Library (STL).

  • Constructors and Destructors: The vector class has several constructors to initialize vectors with specific dimensions and values. The destructor ensures the freeing of dynamically allocated memory.
  • Input and Display: The input and display methods allow you to input vector values and display them respectively.
  • Overloaded Operators: The class overloads several operators, including the indexing operator [], the assignment operator =, and the addition operator +.

TPs

In this part, you will find two key C++ projects focused on geometric figure management and the use of the Standard Template Library (STL).

TP Figure - TP STL

TP 1 : Gestion de figures geometriques

Ce projet tourne autour de la gestion de figures geometriques telles que les carres, cercles, triangles equilateraux et rectangles en utilisant des concepts avances de programmation orientee objet comme les classes abstraites, l'heritage et le polymorphisme.

  • Creation et affichage dynamiques : Les figures sont creees dynamiquement en utilisant le polymorphisme.
  • Calcul du perimetre : Chaque figure calcule et affiche son perimetre via la redefinition de la fonction virtuelle perimetre().
  • Polymorphisme et liaison dynamique : Le programme exploite le polymorphisme en iterant sur une liste de figures et en appelant dynamiquement les methodes appropriees.
  • Gestion de listes avec iterateurs : Les figures sont stockees dans une liste et les operations standard sont realisees avec des iterateurs.
  • Gestion des couleurs (heritage multiple) : Les cercles heritent egalement d'une classe Coloriable, illustrant l'heritage multiple en C++.
  • Operations de file : Les figures sont stockees dans une file, permettant l'insertion et la suppression tout en preservant l'ordre d'entree.

TP 2 : Standard Template Library (STL) en C++

La STL est une puissante bibliotheque C++ fournissant des structures de donnees et des algorithmes pre-construits. Ce projet explore l'utilisation efficace des conteneurs, iterateurs et algorithmes fournis par la STL.

  • Conteneurs : Le projet introduit des conteneurs sequentiels comme vector, list et deque, ainsi que des conteneurs associatifs tels que set et map.
  • Iterateurs : Les iterateurs permettent le parcours facile des conteneurs.
  • Algorithmes STL : Le projet demontre l'utilisation d'algorithmes tels que reverse(), sort() et find().
  • Operations sur set et map : L'utilisation de set garantit l'unicite des elements, tandis que map fournit un stockage cle-valeur pour des recherches efficaces.

En combinant la gestion de figures geometriques et l'utilisation de la STL, ces deux projets illustrent les puissantes capacites du C++ en matiere de conception orientee objet et de programmation generique.

Conclusion

Ce projet demontre une comprehension approfondie des concepts de base et avances de la programmation C++. Les differentes etapes et travaux diriges montrent comment manipuler des vecteurs, gerer des figures geometriques et effectuer des operations sur des points 2D et 3D. Ce projet est un excellent exemple d'application pratique des principes de la programmation orientee objet en C++.

TP 1: Geometric Figure Management

This project revolves around the management of geometric figures such as squares, circles, equilateral triangles, and rectangles using advanced object-oriented programming concepts like abstract classes, inheritance, and polymorphism.

  • Dynamic Creation and Display: Figures are created dynamically using polymorphism.
  • Perimeter Calculation: Each figure calculates and displays its perimeter by redefining the virtual function perimetre().
  • Polymorphism and Dynamic Binding: The program leverages polymorphism by iterating through a list of figures and calling appropriate methods dynamically.
  • List Management with Iterators: Figures are stored in a list and standard operations are performed using iterators.
  • Color Management (Multiple Inheritance): Circles also inherit from a Coloriable class, showcasing multiple inheritance in C++.
  • Queue Operations: Figures are stored in a queue, enabling insertion and deletion while preserving the order of entry.

TP 2: Standard Template Library (STL) in C++

The STL is a powerful C++ library that provides pre-built data structures and algorithms. This project explores how to effectively use containers, iterators, and algorithms provided by the STL.

  • Containers: The project introduces both sequential containers like vector, list, and deque, as well as associative containers such as set and map.
  • Iterators: Iterators allow for easy traversal of the containers.
  • STL Algorithms: The project demonstrates the use of algorithms such as reverse(), sort(), and find().
  • Set and Map Operations: The use of set ensures uniqueness of elements, while map provides a key-value store for efficient lookups.

By combining geometric figure management and the use of STL, these two projects illustrate the powerful capabilities of C++ in handling both object-oriented design and template programming.

Conclusion

This project demonstrates a thorough understanding of basic and advanced C++ programming concepts. The various steps and tutorials demonstrate how to manipulate vectors, manage geometric figures, and perform operations on 2D and 3D points. This project is an excellent example of the practical application of object-oriented programming principles in C++.