
#include "struct.h"
using namespace std;



int main()
{
    /****DECLARATIONS****/
    char * c [] = {"Charger un graphe", "Afficher le graphe charge",  "Sauvegarder un graphe en .txt", "Lancer l'algorithme", "Quitter" } ;
    Menu * menu = new Menu("Menu principal", 5, c, "CASLQ") ;
    Matrice m;
    Matrice d;
    Dijkstra dij;
    m.nb_sommets = 7;
    d.nb_sommets = 7;
    int depart = 0;
    int current;
    bool done[m.nb_sommets];
    int b=1;
    char *mon_fichier ;

    /****Mise A Zero****/
    for(int i = 0; i < m.nb_sommets; i++)
        done[i] = false;

    for(int i = 0; i < 100; i++)
    {
        for(int i2 = 0; i2 < 100; i2++)
        {
            m.matrice[i][i2] = -1;
            d.matrice[i][i2] = -1;
            dij.suite[i].liste[i2] = -1;
        }
        dij.distance[i] = -1;
        dij.suite[i].nb = 0;
    }


    while (b=1)
 {
          menu->Affiche() ;
          int r = menu->Reponse() ;
          char chn [255] ;
          char * index ;
          //Bool flag, sym = vrai ;
          char rep [3] ;
          char fichier[12] ;

          int n, i, j, t, k, p;
          FILE * f;
          int  sommet;
        switch (r)
        {
              case 0 :/****CHARGEMENT DU FICHIER****/
            {
                    do
                   {
                    Interrogation("Entrez le nom du fichier :",mon_fichier) ;
                   }while (strlen(mon_fichier)==0) ;
                      ifstream fichier(mon_fichier, ios::in);  // on ouvre le fichier en lecture

                       if(fichier)  // si l'ouverture a réussi
                        {
                            int depart, arrivee, valeur;
                            fichier >> m.nb_sommets;
                            for (int i=0; i < m.nb_sommets ; i++)
                            {
                                m.matrice[i][i] = 0;
                            }

                            do
                            {
                                fichier >> depart;
                                if(depart != -1)
                                {
                                    fichier >> arrivee >> valeur;
                                    m.matrice[depart][arrivee] = valeur;
                                }
                            }while(depart != -1);

                            fichier.close();  // on ferme le fichier
                        }
                        else
                        {
                            cout<<"Le fichier est introuvable."<<endl;
                        }
               break;
            }


            /*   case 1 :{
                        for (int cpt=0; cpt<n-1;cpt++)
                        {
                            for (int cpt2=0; cpt2<n-1;cpt2++)
                            {
                                if(mat[cpt][cpt2].retour_valid()==false)
                                {
                                    printf("| ##\t");
                                }
                                else
                                {
                                    printf("| %ld\t",mat[cpt][cpt2].retour_poids());
                                }
                            }
                            printf("\n");
                        }
                        break;
               }*/



                case 2:

                case 3:
                cout<<"Entrer le sommet de depart\n"<<endl;
                cin>>sommet;
                cout<< "Sommet="<<sommet<<endl<<endl;;

                break;
        }
 }

    system("pause");
    return 0;
}
