@ -1,14 +1,17 @@
# include <iostream>
# include <thread>
# include <thread> /* on récupère thread afin de faire un sleep pour l'esthétique du menu */
# include "Personne.hpp"
# include "Contact.hpp"
using namespace std ;
using namespace reseau ;
using this_thread : : sleep_for ;
using this_thread : : sleep_for ;
int main ( ) {
/*
On cr é e chaque personne qui seront dans notre r é seau
*/
Personne p1 { " Bob " } ;
Personne p2 { " Domi " } ;
Personne p3 { " Anne " } ;
@ -26,6 +29,9 @@ int main(){
Personne p15 { " Gwen " } ;
list < Contact * > Contacts ;
// cout << "----------\n";
/*
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 } ;
@ -57,6 +63,9 @@ int main(){
Contact c15 { p15 } ;
Contacts . push_back ( & c15 ) ;
// cout << "----------\n";
/*
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 ) ;
@ -86,51 +95,56 @@ int main(){
// cout << "----------\n";
// menu {
// 1 = technique 1
// LiaisonDirect()
// LiaisonIndirect()
// LiaisonDirect pour une personne()
// LiaisonIndirect pour une personne()
// 2 = technique 2
// LiaisonDirect()
// LiaisonIndirect()
// LiaisonDirect pour une personne()
// LiaisonIndirect pour une personne()
// }
/*
D é but du menu et initialisation des variables qu ' on utilisera pour chaque partie de celui - ci
*/
int choix , choix2 , choix3 , persChoix ;
cout < < " \n --------------------------------------------------------------- \n | Technique n°3 (1) | Technique n°2 (2) | Sortir (3) | \n --------------------------------------------------------------- \n \n --> " ;
cin > > choix ;
switch ( choix ) {
/*
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 | 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) \t Bob \n (2) \t Domi \n (3) \t Anne \n (4) \t Elie \n (5) \t Cali \n (6) \t Samuel \n (7) \t Elena \n (8) \t Baptiste \n (9) \t Franck \n (10) \t Agathe \n (11) \t Louna \n (12) \t Theo \n (13) \t Morgane \n (14) \t Thibault \n (15) \t Gwen \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
*/
if ( persChoix = = 1 )
c1 . afficherContactDirect ( ) ;
if ( persChoix = = 2 )
@ -163,6 +177,9 @@ int main(){
c15 . afficherContactDirect ( ) ;
break ;
case 2 :
/*
En fonction de la personne choisi avec la variable persChoix , il affiche sa propagation
*/
if ( persChoix = = 1 )
c1 . afficherContactIndirect ( Contacts ) ;
if ( persChoix = = 2 )
@ -199,7 +216,9 @@ int main(){
else {
switch ( choix3 ) {
case 1 :
/*
On affiche les contacts directs de tout le r é seau
*/
c1 . afficherContactDirect ( ) ;
c2 . afficherContactDirect ( ) ;
c3 . afficherContactDirect ( ) ;
@ -218,7 +237,9 @@ int main(){
break ;
case 2 :
/*
On affiche la propagation de tout le r é seau
*/
c1 . afficherContactIndirect ( Contacts ) ;
c2 . afficherContactIndirect ( Contacts ) ;
c3 . afficherContactIndirect ( Contacts ) ;
@ -241,6 +262,9 @@ int main(){
break ;
case 3 :
/*
les deux prochains case sont l à pour appeler r é cursivement le main et donc notre menu
*/
main ( ) ;
break ;
}
@ -250,11 +274,15 @@ int main(){
main ( ) ;
break ;
}
/*
On attend 8 secondes apr è s l ' affichage de nos commandes puis on effache tout , pour avoir un ternimal vide entre chaque utilisation
*/
sleep_for ( 8 s ) ;
system ( " clear " ) ;
main ( ) ;
break ;
case 3 :
/* le return sert pour arrêter le programme lorsqu'on demande l'exit sur le premier menu*/
return 0 ;
break ;
}