Пример #1
0
        /// <summary>
        /// Méthode qui permet de comparer les taux de deux indicateurs
        /// </summary>
        /// <param name="type">Type de comparaison</param>
        /// <param name="i">Indicateur avec lequel comparé</param>
        /// <returns>Un dictionnaire contenant le résultat de la comparaison</returns>
        public void compareDispersion(TypeComp type)
        {
            // Création du nouvel indicateur de comparaison
            IndicateurDispersionPA resultat = new IndicateurDispersionPA(fusionUsers(this, IndicCompare), fusionOrdres(this, IndicCompare), fusionPA(this, IndicCompare), fusionS(this, IndicCompare), fusionGroupes(this, IndicCompare));

            // On cherche à comparer les deux dictionnaires
            Dictionary<ImageExp, List<double>> dico = new Dictionary<ImageExp, List<double>>();

            // On remplit le dictionnaire avec les données du premier indicateur
            foreach (ImageExp img in this.Data.Keys)
            {
                if (dico.ContainsKey(img))
                {
                    dico[img].Add(this.Data[img]);
                }
                else
                {
                    dico.Add(img, new List<double>());
                    dico[img].Add(this.Data[img]);

                }
            }
            // On remplit le dictionnaire avec les données du second indicateur
            foreach (ImageExp img in IndicCompare.Data.Keys)
            {
                if (dico.ContainsKey(img))
                {
                    dico[img].Add(IndicCompare.Data[img]);
                }
                else
                {
                    dico.Add(img, new List<double>());
                    dico[img].Add(IndicCompare.Data[img]);

                }
            }
            //Puis on procède à la comparaison voulue
            // Ne pas oublier de remplir le dico de l'indicateur à chaque étape
            if (type == TypeComp.Add)
            {
                resultat.Data = additionner(dico);
            }
            else if (type == TypeComp.Sous)
            {
                resultat.Data = soustraire(dico);
            }
            else
            {
                resultat.Data = moyenner(dico);
            }

            DataComparaison.Add(this.Data);
            DataComparaison.Add(IndicCompare.Data);
            DataComparaison.Add(resultat.Data);
        }
Пример #2
0
 /// <summary>
 /// Méthode qui permet de créer l'indicateur et l'ajouter en fonction du type d'indicateur
 /// </summary>
 private void creerIndicateur()
 {
     switch (typeIndicateur)
     {
         case "Taux de recouvrement":
             IndicateurTauxRecouvrement tauxRecouvrement = new IndicateurTauxRecouvrement(positions, ordres, modPA, modS, groupes);
             AppData.IndicateursTauxRecouvrement.Add(tauxRecouvrement);
             AppData.IndicateursTauxRecouvrement.Last().determineTaux();
             break;
         case "Densité de recouvrement":
             IndicateurDensiteRecouvrement densiteRecouvrement = new IndicateurDensiteRecouvrement(positions, ordres, modPA, modS, groupes);
             AppData.IndicateursDensiteRecouvrement.Add(densiteRecouvrement);
             AppData.IndicateursDensiteRecouvrement.Last().determineDensite();
             break;
         case "Dispersion PA":
             IndicateurDispersionPA dispersionPA = new IndicateurDispersionPA(positions, ordres, modPA, modS, groupes);
             AppData.IndicateursDispersionPA.Add(dispersionPA);
             AppData.IndicateursDispersionPA.Last().determineDispersion();
             break;
         case "Nombre d'allers retours bandeau / image":
             IndicateurAllerRetour allerRetour = new IndicateurAllerRetour(positions, ordres, modPA, modS, groupes);
             AppData.IndicateursAllerRetour.Add(allerRetour);
             AppData.IndicateursAllerRetour.Last().determineAllerRetour();
             break;
         default: break;
     }
 }