Examen de C++ - ZZ2 - 27/01/2025

Consignes générales

Voici votre examen de C++ ZZ2. Lisez tout le sujet avant de commencer : un certain nombre de tests ont été écrits pour être indépendants ou avec peu d'influence sur les autres.

À la fin de l'examen, vous devez transmettre le source/répertoire d'un programme qui compile. Une icône se trouve sur le bureau "Post Exam".

Pour plus de simplicité, vous DEVEZ utiliser trois fichiers en plus de main.cpp : tests.cpp, musique.hpp et musique.cpp. Ne changez pas la casse et n'ajoutez pas de fichiers, cela casserait la chaine de compilation et engendrerait une note nulle.

Toutes les déclarations seront dans l'entête, les définitions/implémentations seront dans le cpp.

La ligne de compilation est la suivante :

make

Si besoin, vous pouvez faire un make clean. La première compilation de la bibliothèque Catch est un peu longue, comme d'habitude

Ne jamais recommenter un test qui a réussi. Tous les tests décommentés doivent compiler dans le même temps (sauf mention contraire).

Pour garder une trace exécutable de votre programme sans stress supplémentaire :

DOCUMENTATION CPP

Sujet

Vous allez plus ou moins implémenter le diagramme UML ci-dessous. Toute ressemblance avec un autre examen serait purement fortuite.

On commence par la classe Personne.

Le programme utilise une exception ImpossibleException qu'il est nécessaire de créer [Impossible1]

Le programme utilise une classe Partition à définir mais qui est une classe vide.

On s'intéresse ensuite aux classes Instrument, Flute, Piano et Violon. (les trois dernières classes ne sont pas développées dans le cadre de cet examen)

On s'intéresse ensuite au facteur d'instrument qui est l'expert capable de créer/réviser/réparer un instrument.

Un musicien joue d'un ou plusieurs instruments (on ne prend pas en compte le cas où il ne connait pas d'instrument :-))

Il n'y a pas de fuite mémoire à votre programme !

Commandes GIT

Préparation du compte (1 fois, au début) :

git config --global user.name "un_nom" git config --global user.email "un_mail"

Préparation du répertoire :

git init

À chaque nouveau fichier:

git add fichier git add *

Sauvegarder / Committer :

git commit -am "commentaire"

git log permet d'avoir la liste des sauvegardes avec un numéro de hachage

Pour revenir en arrière :

git checkout numero_de_hash
OU git revert numero_de_hash