INSA de Lyon | TP 3IF C++ | “Références Croisées” | Réalisation
2010
TP 3IF C++ Document de Réalisation « Les Références Croisées » Jan KEROMNES et David APARICIO
Sommaire Réalisation de la classe ............................................................................................................... 2 Choix de la structure pour les références croisées ................................................................ 2 Les occurrences, un vector ........................................................................................ 2 Les fichiers, un vector .............................................................................. 2 Les identificateurs, une map .............................................................................. 2 Structure finale ................................................................................................................... 2 Listing des codes sources ...................................................................................................... 2 Fichier « main.h » ............................................................................................................... 2 Fichier « main.cpp » ........................................................................................................... 3 Fichier « Stream.h » ........................................................................................................... 7 Fichier « Stream.cpp »........................................................................................................ 8 Fichier « CrossReference.h » ............................................................................................ 11 Fichier « CrossReference.cpp » ........................................................................................ 12 Tests fonctionnels ................................................................................................................ 14 Le script de test, « tests.bat » .......................................................................................... 14 Execution du script de test ............................................................................................... 15 Conclusion ................................................................................................................................ 16
1
B3106 | Jan KEROMNES | David APARICIO
INSA de Lyon | TP 3IF C++ | “Références Croisées” | Réalisation
2010
Réalisation de la classe Suite à la spécification complète de l’application, nous avons procédé à sa réalisation du TP.
Choix de la structure pour les références croisées Pour représenter les « références croisées », nous avons eu une première approche théorique lors de la phase des spécifications. Nous avons ensuite appliqué ces choix à la réalisation de notre application C++, en utilisant la bibliothèque standard STL.
Les occurrences, un vector Pour représenter les numéros de lignes de nos identificateurs, nous avons choisi un vector, auquel nous appliquons un push_back(int) à chaque nouveau numéro de ligne.
Les fichiers, un vector Pour représenter ces occurrences au sein des différents fichiers, nous avons premièrement défini une association entre le nom d’un fichier et ses occurrences avec une pair. Puis, nous avons créé une collection de ces paires, en utilisant un vector.
Les identificateurs, une map Pour optimiser le processus de recherche, nous avions choisi un arbre rouge et noir. Cette structure se retrouve dans la STL sous la forme d’une map.
Structure finale Les trois points précédents nous donnent la structure suivante : map
Listing des codes sources Fichier « main.h » /*************************************************************************
2
B3106 | Jan KEROMNES | David APARICIO
INSA de Lyon | TP 3IF C++ | “Références Croisées” | Réalisation
2010
file name : main started : 10 nov. 2010 copyright : (C) 2010 by Jan and David (B3106) *************************************************************************/ //-------------------------------- Interface of class (file main.h) #if ! defined ( MAIN_H_ ) #define MAIN_H_ //------------------------------------------------------------------ Types // a structure for a reference to an identifier, in a given file at a given line struct REF { string identifier; string file; int line; }; //-------------------------------------------------------------- Functions int main ( int argc, char *argv[] ); #endif // MAIN_H_
Fichier « main.cpp » /************************************************************************* file name : main started : 10 nov. 2010 copyright : (C) 2010 by Jan and David (B3106) *************************************************************************/ //---------------------------- Realization of class (file main.cpp) //--------------------------------------------------------------- INCLUDES //-------------------------------------------------------- System Includes using namespace std; #include #include #include #include #include #include #include //------------------------------------------------------ Personal Includes #include "main.h" #include "CrossReferences.h" #include "Stream.h"
3
B3106 | Jan KEROMNES | David APARICIO
INSA de Lyon | TP 3IF C++ | “Références Croisées” | Réalisation
2010
//-------------------------------------------------------------- Constants //----------------------------------------------------------------- PUBLIC //-------------------------------------------------------------- Functions void syntax ( string appName ) { cerr keywords; // the keyword set ifstream stream; // the stream reading the file bool keep; // keep keywords or non-keywords REF reference; // reference to the current Identifier }; #endif // STREAM_H_
Fichier « Stream.cpp » /************************************************************************* file name : Stream started : 5 déc. 2010 copyright : (C) 2010 by Jan and David (B3106) *************************************************************************/ //------------------------ Realization of class (file Stream.cpp) //--------------------------------------------------------------- INCLUDES //-------------------------------------------------------- System Includes using namespace std; #include #include #include #include //------------------------------------------------------ Personal Includes #include "main.h" #include "Stream.h" //-------------------------------------------------------------- Constants //----------------------------------------------------------------- PUBLIC //---------------------------------------------- Constructors - destructor Stream::Stream ( string file, bool keepKeywords ) : stream(file.c_str()), keep(keepKeywords) { if ( ! stream.is_open() ) { throw "File not found"; } reference.file = file; // the file name
8
B3106 | Jan KEROMNES | David APARICIO
INSA de Lyon | TP 3IF C++ | “Références Croisées” | Réalisation
2010
reference.line = 1; // start at line 1 reference.identifier = ""; // no Identifier found yet NextReference(); // immediately search for the first Identifier #ifdef DEBUG cout second; // for each file for ( int i = 0, end = fileVector.size() ; i < end ; i++ ) { // print its name cout
Programming languages and data bases : C, C++, Java, Assembler 68000, Oracle ... for networks, Network functions, ISO architecture, internet architecture, data.
Currently senior bachelor. INSA Lyon, âLyon Institute of Technologyâ, ... Playing Music. SPORTS Martial Arts ⢠Rock Climbing ⢠Snowboarding ⢠Scuba Diving.
Number of published paper in peer reviewed journals: 74 â h-index: 19 (from Web of ... A. Deschamps, C. R. Hutchinson, D. Maisonnette, T. Chaise, J. Garnier,.
have a substantial experience in programming in Fortran, C, matlab or python. The applicant must have published articles in English. The work will be conducted ...
Quench hot metal or allow it to cool before handling or before letting it touch ..... l'hydrogène libre peut s'accumuler sous la pièce à couper et détonner lors du .... Placer tout d'abord le fil de terre du cordon d'alimentation sur le plot de mise
python, perl. ... This program is free software; you can redistribute it and/or modify ... This code is beerware- if you find it useful, please buy me (or, for that matter ...
This Transport A Lyon Autobus De Lyon Trolleybus De Lyon Ligne LyonPerrache Geneve Chemin De Fer. De. LEst. De. Lyon. Ligne. 3. Du. Tramway. De. Lyon. PDF on the files/S3Library-96a62-Aec6a-24701-4ce5e-77cff.pdf file begin with Intro, Brief Discussio
Supports pédagogiques remis en fin de stage : - Livret avec les protocoles de fabrication. - Liste du matériel utilisé durant le stage. Cours / TP de 8h30 à 17h. GACD - 25, rue Bleue - 75009 Paris. Accès : métro Cadet, ligne 7. Parking : Montholon. T
et 22 septembre 2018. Cours / TP de 8h30 à 17h30. GACD - 25, rue Bleue - 75009 Paris. Accès : métro Cadet, ligne 7. Parking : Montholon. Dr Laïla Hitmi. Spécialiste qualifiée en O.D.F.. C.E.C.S.M.O (Paris Descartes). Ex-assistante Universitaire. Dépa
optiques embarqués seront décrites, avec un zoom sur le domaine de la détection optique. Séminaire de mathématiques et calcul : Les challenges actuels en ...
Réalisation du modèle numérique. • Traitement et découpe de l'empreinte. • Soclage de l'empreinte. • Choix de l'imprimante. • Choix du matériaux d'impression. • Collage des attaches sur le modèle imprimé. • Réalisation du système de transfert. - Coll