/* IFT1166 - Session Hiver 2005 - TP#4 - fichier contenant la fonction principale main pour faire tourner le programme. 22 Mars 2005 - v1.00 M.Lokbani diffusion de l'enoncé. contact: pift1166@iro.umontreal.ca lokbani@iro.umontreal.ca */ #include #include using namespace std; /* Enr: utilisation de la classe Enregistrement seule! pas d'affichage en sortie. Les classes Graphe, Histogramme et Tarte ne seront pas chargees. Nous n'avons pas besoin donc de les connaitre. la classe Enregistrement est declaree et definie dans le fichier: enr.h les classes Graphe, Histogramme et Tarte sont declarees et definies dans le fichier: graphe.h il faudra inclure au debut du fichier graphe.h la ligne suivante pour pouvoir utiliser (surtout compiler!) la classe Enregistrement: #include "enr.h" les options de compilations vont definir lequel des fichiers d'en-tete va etre charge par le pre-processeur. */ #ifndef Enr /* les classes Graphe, Histogramme, Tarte ont ete definies dans le fichier graphe.h de ce fait nous pouvons simuler maintenant l'affichage le pre-processeur charge le fichier graphe.h dans ce dernier il y aura appel au fichier enr.h pour charger la classe Enregistrement. pour compiler en tenant compte de cette option, vous devez faire ce qui suit: g++ -Wall -pedantic -o Tx tp4H05.cpp où par exemple Tx est votre programme executable. */ #include "graphe.h" #else /* on ne traite pas encore l'affichage en sortie! Ce cas arrive, par exemple, si les classes Graphe, Histogramme, Tarte n'ont pas encore ete realisees. On ne sera pas donc penaliser! on pourra toujours tester la classe Enregistrement seule. on va charger que la classe Enregistrement. pour compiler en tenant compte de cette option, vous devez faire ce qui suit: g++ -Wall -pedantic -o Tx -DEnr tp4H05.cpp où par exemple Tx est votre programme executable. */ #include "enr.h" #endif int main() { string s; // traitement dans le cas d'un tableau de int int tab1[10] = {1,2,4,6,9,3,2,1,1,3}; s = "enreg1_int"; Enregistrement x1(10,tab1,s); cout << x1; // on ne traite pas pour l'instant l'affichage en sortie! #ifndef Enr // instanciation des objets ... Histogramme XHI; Tarte XTI; // dessine le tableau des int XHI.Dessine(x1); XTI.Dessine(x1); #endif // traitement dans le cas d'un tableau de char char tab2[15] = {'a','b','c','d','e','a','c','c','c','b','w','e','r','f','d'}; s = "enreg2_char"; Enregistrement x2(15,tab2,s); cout << x2; #ifndef Enr // instanciation des objets ... Histogramme XHC; Tarte XTC; // dessine le tableau des int XHC.Dessine(x2); XTC.Dessine(x2); #endif // traitement dans le cas d'un tableau de string string tab3[20] = {"allo","aller","allemand","allo","allier","allo","aller","alliance","aller","allemand","alliance","alleu","alliaire","alleu","allier","allesthesie","allevasse","alligator","allocentrique","allevasse"}; s = "enreg3_string"; Enregistrement x3(20,tab3,s); cout << x3; #ifndef Enr // instanciation des objets ... Histogramme XHS; Tarte XTS; // dessine le tableau des string XHS.Dessine(x3); XTS.Dessine(x3); #endif return 0; }