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