//METHODES public void AfficherVoeux() { string affichage = ""; foreach (string p in Projets) { affichage += "Projet : " + p + " -- " + Voeux[Projets.IndexOf(p)] + "\n"; } Console.WriteLine(affichage); }
public void TesterCombinaison(Personne eleve) //Fonction recursive permettant de tester toutes les possibilités { int index = Eleves.IndexOf(eleve); foreach (string p in eleve.Projets) { int indexP = Projets.IndexOf(p); //Comme va être automatiquement pris seulement le premier projet de la liste quand plusieurs projet sont en fait le même, on regarde si les autres sont libre if (Combinaison[indexP] != Eleves[0]) { bool present = false; int i = 0; while ((present == false) && (i < NbPlaces) && (indexP + i < Projets.Count() - 1)) { i++; if ((Projets[indexP] == Projets[indexP + i]) && (Combinaison[indexP + i] == Eleves[0])) { present = true; indexP += i; } } } if (Combinaison[indexP] == Eleves[0]) { //Condition d'arret de la recursivité : Si on a plus d'élèves à traiter en stock Combinaison[indexP] = eleve; if (index + 1 >= Eleves.Count()) { if (VerifierComplet()) { CalculerNote(); } Combinaison[indexP] = Eleves[0]; } else { TesterCombinaison(Eleves[index + 1]); Combinaison[indexP] = Eleves[0]; } } } }
public int RecupererVoeux(string projet) { int index = Projets.IndexOf(projet); return(Voeux[index]); }