TP 4 : Système de réservation d`une compagnie de transports

Transcription

TP 4 : Système de réservation d`une compagnie de transports
Université de Strasbourg
Licence 3 de Mathématiques
Programmation Orientée Objet
Feuille de TP
TP 4 : Système de réservation d’une compagnie de transports
Objectif : Modéliser et implanter un système permettant de gérer les réservation d’une compagnie
de transports : gestion des réservations en fonctions des moyens de transports employés, gestion des
usagés (catégorie d’usagés, cartes de réductions, ...), calcul du prix des billets, ...
Avant de commencer ...
Exercice 1
Terminez (si ce n’est déjà fait) l’exercice sur les formes géométriques du TP précédent.
Description du systèmes
Une compagnie de transport propose plusieurs moyens de transport pour effectuer différents trajets.
On souhaite permettre à des utilisateurs de calculer le coût d’un trajet et de le réserver.
En fonction des trajets, plusieurs moyens de transport sont disponibles : bus (bus et minibus), trains
(trains régionaux, trains à grande vitesse ou trains inter-cités). Chaque moyen de transports dispose d’une
capacité maximale :
• minibus : 15 personnes ;
• bus : 55 personnes ;
• trains régionaux : 100, 200 ou 300 places ;
• trains à grandes vitesses : 150 places ou 300 places ;
• trains inter-cités : 100 ou 200 places.
Un trajet est représenté par deux noms de ville (point de départ et d’arrivé), d’une distance et d’un
moyen de transport. Pour calculer le prix du voyage, il est parfois nécessaire de connaître le jour de la
semaine où s’effectue le trajet. On peut représenter ce jour de la semaine par un entier compris entre 0,
pour le lundi, et 6 pour le dimanche. On peut imaginer qu’un voyage soit composé de plusieurs trajets
Afin de réduire les coûts des voyages, il existe plusieurs types de voyageurs 1 : les voyageurs professionnels et de loisirs. Un utilisateur peut également bénéficier de cartes de réductions (au maximum une
par voyageur) : carte jeune et carte grands voyageurs.
À partir de ces différentes informations, le calcul du prix du voyage se fait en appliquant la formule
suivante :
X
p=
(distancet × véhiculet × voyageur) − réduction
t∈voyage
La distancet représente la distance d’un trajet composant le voyage.
1. Dans ce problème, on ne cherche pas à représenter une personne physique mais une catégorie de personnes.
1
La valeur véhiculet représente un coefficient calculé en fonction du type de véhicule d’un trajet.
Chaque moyen de transport représente un coût tve au kilomètre. Le paramètre tve représente une valeur
propre à chaque type de véhicule et doit pouvoir être modifiable par la compagnie de transport. Le calcul
du coefficient véhicule est différent suivant le mode de transport employé et est défini par les fonctions
suivantes :
• Minibus :

 0.5 × tve , si la distance du trajet est inférieur à 100 km
véhicule =
0.75 × tve , si la distance du trajet est comprise entre 100 km et 350 km

1.25 × tve , sinon.
• Bus :

0.75 × tve , si la distance du trajet est inférieur à 100 km



0.5 × tve , si la distance du trajet est comprise entre 100 km et 850 km
véhicule =
1.25
× tve , si la distance du trajet est comprise entre 850 km et 1100 km



1.75 × tve , sinon
• Trains régionaux :
véhicule =
1 × tve , du lundi au jeudi inclus
0.75 × tve , du vendredi au dimanche inclus
• Trains à grandes vitesses :

1 × tve , du lundi au jeudi inclus pour les trajet de moins de 100 km



0.75 × tve , du vendredi au dimanche inclus pour les trajet de moins de 100 km
véhicule =
0.65 × tve , du lundi au jeudi inclus pour les trajet de plus de 100 km



0.85 × tve , du vendredi au dimanche inclus pour les trajet de plus de 100 km
• Trains inter-cités :
véhicule =
0.80 × tve , du lundi au jeudi inclus
1 × tve , du vendredi au dimanche inclus
De façon analogue au véhicule, le terme voyageur représente un coefficient dépendant du type de
voyageurs. Il est calculé en fonction d’un taux de base tvo différents pour chaque type de voyageurs. Ce
taux peut-être modifié par la compagnie à tout moment :
• Voyageurs professionnels :
0.5 ∗ tvoy du lundi au vendredi inclus
voyageur =
1.5 ∗ tvoy le samedi et le dimanche
• Voyageurs loisirs :
voyageur =
1.0 ∗ tvoy du lundi au jeudi inclus
0.5 ∗ tvoy du vendredi au dimanche inclus
Le terme réduction représente une réduction dont pourrait bénéficier le voyageur. Elle représente
un pourcentage qui est retiré du prix global du voyage. Comme pour les véhicules et les voyageurs, sont
mode de calcul diffère en fonction de son type :
2
• Carte Jeune :
réduction =
−50%, du lundi au jeudi inclus
−25%, du vendredi au dimanche inclus
• Carte Grands Voyageurs :

 −50%, du lundi au jeudi pour les trajets de plus de 250 km
réduction =
−25%, du vendredi au dimanche pour les trajets de plus de 250 km

−0%, sinon
Afin que le programme soit complet, on doit pouvoir simuler une réservation. Pour cela, on vous
propose d’ajouter une classe permettant stocker un ensemble de voyages (ou de trajets). À partir de
cette classe, on doit être capable de calculer le prix de différents voyages en fournissant différents cas
d’utilisations (type d’utilisateurs et cartes de réductions). La simultation des réservations doit également
être prise en compte.
Exercice 2
Modélisez ce problème en vous basant sur les concepts de programmation orientée objets. Implantez
la dans un programme C++. Testez régulièrement votre code.
Pour manipuler le programme, vous pouvez implanter un petit menu interactif, sur le terminal, pour
effectuer les différentes opérations (entrée des cas d’utilisations, création de trajets, ...).
3