M1103 Mini-feuille 4

Exercice 1 — Voitures et parkings

Attention : nous ne vous fournissons pas de tests automatiques pour cette mini-feuille. Vous partez donc d’un projet vierge et vous écrivez votre propre fonction main pour tester votre programme.

Nous voulons écrire deux classes pour modéliser des voitures et des parkings. Le but est de pouvoir ajouter des voitures à des parkings.

Créez les fichiers car.h, car.cpp, lot.h, lot.cpp et main.cpp dans votre projet.

a — Voitures

Une voiture a une plaque (de type string), une marque (de type string) et une vitesse maximale (de type int).

Écrire une classe Car avec les données membres privées plate, make et maxspeed.

Écrire un constructeur pour les initialiser. Si la vitesse maximale donnée est négative, lancer une exception de type invalid_argument.

Rajouter des fonctions membres get_plate, get_make et get_maxspeed pour les rendre accessibles de l’extérieur.

Respecter la décomposition en fichiers car.h et car.cpp.

Ajouter des tests dans la fonction main dans le fichier main.cpp pour tester votre classe.

b — Égalité de voitures

Nous voulons maintenant comparer deux voitures selon leur plaques pour ne pas mettre deux fois la même voiture dans un parking.

Rajouter un opérateur == qui prend deux (références constantes à des) voitures. Il retourne true si les plaques des deux voitures sont égales et false sinon.

Ajouter des tests dans la fonction main dans le fichier main.cpp pour tester votre opérateur.

c — Parkings

Un parking contient un ensemble de voitures.

Écrire une classe Lot avec comme données membres privées un vecteur de voitures.

Rajouter une fonction membre pour ajouter une voiture au parking (si elle n’est pas déjà dedans).

Rajouter une fonction membre contains pour vérifier si une voiture donnée se trouve dans le parking.

Respecter la décomposition en fichiers lot.h et lot.cpp.

Ajouter des tests dans la fonction main dans le fichier main.cpp pour tester votre classe.

d — Affichage

Rajouter des opérateurs << pour pouvoir afficher des voitures ainsi que des parkings (avec une liste de toutes leurs voitures).

retour au site web du cours