diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..8ce71e0 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,251 @@ +#include +#include +#include "Personne3.hpp" +#include "Contact3.hpp" +#include "Personne.hpp" +#include "Contact.hpp" +#include + +using namespace std; +using namespace reseau; + +int main() { + + /* + On crée chaque personne qui seront dans notre réseau + */ + + reseau::Personne p1{"Bob"}; + reseau::Personne p2{"Domi"}; + reseau::Personne p3{"Anne"}; + reseau::Personne p4{"Elie"}; + reseau::Personne p5{"Cali"}; + reseau::Personne p6{"Samuel"}; + reseau::Personne p7{"Elena"}; + reseau::Personne p8{"Baptiste"}; + reseau::Personne p9{"Franck"}; + reseau::Personne p10{"Agathe"}; + reseau::Personne p11{"Louna"}; + reseau::Personne p12{"Theo"}; + reseau::Personne p13{"Morgane"}; + reseau::Personne p14{"Thibault"}; + reseau::Personne p15{"Gwen"}; + list Contacts; + /* + On crée les contacts en mettant leur propiétaire, on ajoute ensuite chaque contact dans une liste juste après leur construction + */ + Contact c1{p1}; + Contacts.push_back(&c1); + Contact c2{p2}; + Contacts.push_back(&c2); + Contact c3{p3}; + Contacts.push_back(&c3); + Contact c4{p4}; + Contacts.push_back(&c4); + Contact c5{p5}; + Contacts.push_back(&c5); + Contact c6{p6}; + Contacts.push_back(&c6); + Contact c7{p7}; + Contacts.push_back(&c7); + Contact c8{p8}; + Contacts.push_back(&c8); + Contact c9{p9}; + Contacts.push_back(&c9); + Contact c10{p10}; + Contacts.push_back(&c10); + Contact c11{p11}; + Contacts.push_back(&c11); + Contact c12{p12}; + Contacts.push_back(&c12); + Contact c13{p13}; + Contacts.push_back(&c13); + Contact c14{p14}; + Contacts.push_back(&c14); + Contact c15{p15}; + Contacts.push_back(&c15); + + + /* + On place les contacts directs dans une liste de personne qui correspond au répertoire de chaque personne + */ + c1.ajouterContact(p2); + c1.ajouterContact(p5); + c1.ajouterContact(p4); + c3.ajouterContact(p1); + c3.ajouterContact(p2); + c4.ajouterContact(p5); + c4.ajouterContact(p6); + c5.ajouterContact(p4); + c6.ajouterContact(p7); + c6.ajouterContact(p9); + c7.ajouterContact(p3); + c8.ajouterContact(p2); + c9.ajouterContact(p6); + c9.ajouterContact(p11); + c10.ajouterContact(p7); + c10.ajouterContact(p8); + c11.ajouterContact(p15); + c12.ajouterContact(p10); + c13.ajouterContact(p11); + c14.ajouterContact(p12); + c14.ajouterContact(p13); + c15.ajouterContact(p9); + + // ----------------------------------------------- + + reseau2::Personne pp1{"Bob"}; + reseau2::Personne pp2{"Domi"}; + reseau2::Personne pp3{"Anne"}; + reseau2::Personne pp4{"Elie"}; + reseau2::Personne pp5{"Cali"}; + reseau2::Personne pp6{"Samuel"}; + reseau2::Personne pp7{"Elena"}; + reseau2::Personne pp8{"Baptiste"}; + reseau2::Personne pp9{"Franck"}; + reseau2::Personne pp10{"Agathe"}; + reseau2::Personne pp11{"Louna"}; + reseau2::Personne pp12{"Theo"}; + reseau2::Personne pp13{"Morgane"}; + reseau2::Personne pp14{"Thibault"}; + reseau2::Personne pp15{"Gwen"}; + pp1.ajtContact(pp2); + pp1.ajtContact(pp5); + pp1.ajtContact(pp4); + pp3.ajtContact(pp1); + pp3.ajtContact(pp2); + pp4.ajtContact(pp5); + pp4.ajtContact(pp6); + pp5.ajtContact(pp4); + pp6.ajtContact(pp7); + pp6.ajtContact(pp9); + pp7.ajtContact(pp3); + pp8.ajtContact(pp2); + pp9.ajtContact(pp6); + pp9.ajtContact(pp11); + pp10.ajtContact(pp7); + pp10.ajtContact(pp8); + pp11.ajtContact(pp15); + pp12.ajtContact(pp10); + pp13.ajtContact(pp11); + pp14.ajtContact(pp12); + pp14.ajtContact(pp13); + pp15.ajtContact(pp9); + + + vector Repertoire = { c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15 }; + vector Repertoire2 = { pp1, pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp9, pp10, pp11, pp12, pp13, pp14, pp15}; + + /* + Début du menu et initialisation des variables qu'on utilisera pour chaque partie de celui-ci + */ + int choix, choix2, choix3, persChoix, persDest, persEnvoie; + + + cout <<"\n ---------------------------------------------------------------\n | Technique n°1 (1) | Technique n°3 (2) | Sortir (3) |\n ---------------------------------------------------------------\n\n--> "; + cin >> choix; + switch(choix) { + case 1 : + + cout << "\n -------------------------------------------------------------\n | Cas global (1) | Cas individuel (2) | Retour (3) |\n -------------------------------------------------------------\n\n--> "; + cin >> choix2; + switch(choix2) { + /* + Le cas 1 et le cas 2 feront le même code au début donc on appliquera leurs différences plus tard dans un if + */ + case 1: + case 2: + + cout <<"\n -------------------------------------------------------------------\n | Contact Direct (1) | Contact Indirect (2) | Retour (3) |\n -------------------------------------------------------------------\n\n--> "; + cin >> choix3; + switch(choix3) { + /* + Le cas 1 et le cas 2 feront le même code au début donc on appliquera leurs différences plus tard dans un autre switch + */ + case 1: + case 2: + + /* + On applique en fonction de notre choix2 les méthodes et l'affichage voulu, afin d'éviter des répétitions dans les case. + */ + if(choix2==2){ + + cout << "\n Choisissez la personne que vous voulez regarder : \n\n--------------------\n(1)\tBob\n(2)\tDomi\n(3)\tAnne\n(4)\tElie\n(5)\tCali\n(6)\tSamuel\n(7)\tElena\n(8)\tBaptiste\n(9)\tFranck\n(10)\tAgathe\n(11)\tLouna\n(12)\tTheo\n(13)\tMorgane\n(14)\tThibault\n(15)\tGwen\n--------------------\n\n Tapez le numéro de la personne : "; + cin >> persChoix ; + cout << "\n"; + /* + On applique en fonction de notre choix3 les méthodes voulu, afin d'éviter des répétitions dans les case. + */ + switch(choix3) { + case 1: + /* + En fonction de la personne choisi avec la variable persChoix, il affiche ses contacts directs + */ + Repertoire[persChoix-1].afficherContactDirect(); + break; + case 2: + /* + En fonction de la personne choisi avec la variable persChoix, il affiche sa propagation + */ + Repertoire[persChoix-1].afficherContactIndirect(Contacts); + break; + } + } + else{ + switch(choix3){ + case 1: + /* + On affiche les contacts directs de tout le réseau + */ + for (long unsigned int i=0; i> persEnvoie; + cout << "\n"; + cout << "\n Choisissez le destinataire : \n\n--------------------\n(1)\tBob\n(2)\tDomi\n(3)\tAnne\n(4)\tElie\n(5)\tCali\n(6)\tSamuel\n(7)\tElena\n(8)\tBaptiste\n(9)\tFranck\n(10)\tAgathe\n(11)\tLouna\n(12)\tTheo\n(13)\tMorgane\n(14)\tThibault\n(15)\tGwen\n--------------------\n\n Tapez le numéro de la personne : "; + cin >> persDest; + cout << "\n"; + // Repertoire2[persEnvoie-1].peutCommuniquerA(Repertoire2[persDest-1]); Erreur Seg + main(); + break; + case 3 : + /* le return sert pour arrêter le programme lorsqu'on demande l'exit sur le premier menu*/ + exit(0); /* */ + break; + } + +} +