Projet App gestion réservations train en C++
Conception d'une application console pour gérer les réservations, annulations et historiques de voyages en TGV.
Admin
11/1/20241 min read

Conception d'une application console pour gérer les réservations, annulations et historiques de voyages en TGV. Dans le cadre du B2 ECE Paris.
🎯 Objectif
Développer une application robuste permettant aux utilisateurs de réserver, annuler et consulter des billets de train, avec gestion persistante des données et interface intuitive. Mon rôle : architecte logiciel et développeur full-stack (conception des classes, gestion des fichiers, UI/UX console).
💻 Réalisation technique
Stack utilisée
Langage : C++17 (programmation orientée objet, gestion des exceptions).
Persistance des données : Fichiers texte structurés (trains.txt, passagers.txt, etc.).
Outils : GCC pour la compilation, Git pour le versionnement, Doxygen pour la documentation.
Fonctionnalités clés
Réservation intelligente :
Sélection de trains via un menu interactif avec filtrage par date et destination.
Calcul automatique du prix en fonction de la distance (ex: 0.10€/km en 2nde classe, 0.15€/km en 1ère).
Gestion des annulations :
Recherche de réservations par ID ou nom de passager.
Mise à jour en temps réel des places libres et archivage dans l’historique.
Calendrier dynamique :
Affichage des départs par date avec std::map<std::string, std::vector<Train>>.
🚧 Défis relevés
Synchronisation des données :
Implémentation d’un système de lock fichier pour éviter les conflits d’écriture.
Parsing efficace des fichiers texte avec std::ifstream et std::getline.
Gestion des erreurs :
Création d’exceptions customisées (ReservationException, FichierCorrompuException).
Validation des formats de date (regex \\d{2}/\\d{2}/\\d{4}) et des champs obligatoires.
Optimisation mémoire :
Utilisation de std::list pour les réservations (insertions/suppressions rapides).
📈 Résultats & Compétences
Livrables :
Application console fonctionnelle avec 5 scénarios d’usage couverts.
Rapport technique détaillant l’architecture et les choix de conception.
Compétences clés :
POO avancée : Encapsulation, gestion des dépendances entre classes.
Algorithmie : Recherche optimisée dans les structures de données (complexité moyenne O(log n)).
Gestion de projet : Respect des délais avec un rétroplanning en 4 sprints.






Localisation
ECE Paris, 37 Quai de Grenelle 75015, Paris FR
Contact
gt.martin.pro@gmail.com
martin.tendero@edu.ece.fr

