//********************************** Fin des éléments utiles pour la barre de progréssion public WindowGenererResultatsAnnuelsUI() { InitializeComponent(); genererResultatsAnnuelsBL = new GenererResultatsAnnuelsBL(); ancienObjet = new MoyennesAnnuellesBE(); // Initialisation de la collection, qui va s'afficher dans la DataGrid : ListeMoyennesAnnuelles = new ObservableCollection <MoyennesAnnuellesBE>(); List <MoyennesAnnuellesBE> LMoyennesAnnuellesBE = genererResultatsAnnuelsBL.listerToutesLesMoyennesAnnuelles(); // on met la liste "ListeMoyennesAnnuelles" dans le DataGrid RemplirDataGrid(LMoyennesAnnuellesBE); List <ClasseBE> LClasse = genererResultatsAnnuelsBL.listerToutesLesClasses(); // ------------------- Chargement de la liste des codes de Classe dans le comboBox de la fenêtre //(utile pour le filtre) cmbClasse.ItemsSource = genererResultatsAnnuelsBL.getListCodeClasse(LClasse); annee = genererResultatsAnnuelsBL.getAnneeEnCours(); txtAnnee.Text = Convert.ToString(annee); txtAnneeScolaire.Text = (annee - 1).ToString(); //on cache la barre de progression ProgressBar1.Visibility = System.Windows.Visibility.Hidden; }
// ajouter une Moyenne Annuelle public bool ajouterMoyenneAnnuelle(MoyennesAnnuellesBE moyenne) { if (moyennesAnnuellesDA.ajouter(moyenne)) { journalDA.journaliser("enregistrement de la moyenne annuelle de l'élève de matricule " + moyenne.matricule + ". matière : " + moyenne.codeMat + ", année : " + moyenne.annee + ", moyenne : " + moyenne.moyenne); return(true); } return(false); }
// modifier une Moyenne Annuelle public bool modifierMoyenneAnnuelle(MoyennesAnnuellesBE moyenne) { if (moyennesAnnuellesDA.modifier(moyenne)) { journalDA.journaliser("modification de la moyenne annuelle de l'élève de matricule " + moyenne.matricule + ". matière : " + moyenne.codeMat + ", année : " + moyenne.annee + ". ancienne moyenne : " + moyenne.moyenne + ", nouvelle moyenne : " + moyenne.moyenne); return(true); } return(false); }
// supprimer une Moyenne Annuelle public bool supprinerMoyenneAnnuelle(MoyennesAnnuellesBE moyenne) { if (moyennesAnnuellesDA.supprimer(moyenne)) { journalDA.journaliser("suppression de la moyenne annuelle de l'élève de matricule " + moyenne.matricule + ". matière : " + moyenne.codeMat + ", année : " + moyenne.annee); return(true); } return(false); }
//creer une Moyenne Annuelle public bool creerMoyenneAnnuelle(String codeMatiere, String matricule, Double moyenne, int annee, int rang, double moyenneClasse, string mention, double moyenneMin, double moyenneMax, string appreciation) { MoyennesAnnuellesBE moy = new MoyennesAnnuellesBE(codeMatiere, matricule, moyenne, annee, rang, moyenneClasse, mention, moyenneMin, moyenneMax, appreciation); if (moyennesAnnuellesDA.ajouter(moy)) { journalDA.journaliser("enregistrement de la moyenne annuelle de l'élève de matricule " + matricule + ". matière : " + codeMatiere + ", année : " + annee + ", moyenne : " + moyenne); return(true); } return(false); }
// rechercher une Moyenne Annuelle public MoyennesAnnuellesBE rechercherMoyenneAnnuelle(MoyennesAnnuellesBE moyenne) { return(moyennesAnnuellesDA.rechercher(moyenne)); }
//Calcul de la moyenne des élèves pour une classe, une matière et une année donnée //il s'agit de remplir la table "moyennesAnnuelles" public void calculerMoyenneAnnuelles(String codeClasse, int annee) { ClasseBE classe = new ClasseBE(); classe.codeClasse = codeClasse; ClasseBE classeBE = rechercherClasse(classe); //on liste les matières de la classe pour l'année choisi List <MatiereBE> LMatiere = listeDesMatieresDuneClasse(classeBE, annee); //on calcul les moyennes annuelles par matières for (int j = 0; j < LMatiere.Count; j++) { // calcul de la moyenne trimestrielle des élève sur chacune des matières individuellement List <String[]> List = moyennesAnnuellesDA.calculMoyenneAnnuelles(codeClasse, LMatiere.ElementAt(j).codeMat, annee); if (List != null && List.Count != 0) { //on fabrique les objets de type moyennesTrimestrielles et on les mets dans le BD List <MoyennesAnnuellesBE> LMoyennesmoyenneAnnuelles = new List <MoyennesAnnuellesBE>(); for (int i = 0; i < List.Count; i++) { /* * List.ElementAt(i)[0] : matricule; * List.ElementAt(i)[1] : codeMatiere; * List.ElementAt(i)[2] : moyenne; */ MoyennesAnnuellesBE moyenneAnnuelle = new MoyennesAnnuellesBE(); moyenneAnnuelle.codeMat = List.ElementAt(i)[1]; moyenneAnnuelle.matricule = List.ElementAt(i)[0]; moyenneAnnuelle.moyenne = Convert.ToDouble(List.ElementAt(i)[2]); moyenneAnnuelle.annee = annee; moyenneAnnuelle.rang = 0; moyenneAnnuelle.moyenneClasse = 0; if (getMention(moyenneAnnuelle.moyenne) != null) { moyenneAnnuelle.mention = getMention(moyenneAnnuelle.moyenne); } else { moyenneAnnuelle.mention = ""; } moyenneAnnuelle.moyenneMin = 0; moyenneAnnuelle.moyenneMax = 0; LMoyennesmoyenneAnnuelles.Add(moyenneAnnuelle); } //-------------- on calcule le rang, la moyenne générale de la classe, les moyennes min et max double moyenneDeLaClasse = 0; // moyenne générale de la classe double moyenneMin = LMoyennesmoyenneAnnuelles.ElementAt(0).moyenne; // moyenne mininale des élèves de la classe double moyenneMax = LMoyennesmoyenneAnnuelles.ElementAt(0).moyenne; // moyenne maximale des élèves de la classe //on trie la liste LMoyennesmoyenneAnnuelles = LMoyennesmoyenneAnnuelles.OrderByDescending(o => o.moyenne).ToList(); MoyennesAnnuellesBE moyennePrecedente = new MoyennesAnnuellesBE(); for (int i = 0; i < LMoyennesmoyenneAnnuelles.Count; i++) { // ------------------- DEBUT détermination du rang if (i == 0) { // on est sur le premier (celui qui a la plus grande note) MoyennesAnnuellesBE oldMoyenne = LMoyennesmoyenneAnnuelles.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification) LMoyennesmoyenneAnnuelles.ElementAt(i).rang = 1; // le premier pour cette séquence et cette matière //on met à jour le rang dans la BD //modifierMoyenne(oldMoyenne, LMoyennesmoyenneAnnuelles.ElementAt(j)); moyennePrecedente = LMoyennesmoyenneAnnuelles.ElementAt(i); } else { if (LMoyennesmoyenneAnnuelles.ElementAt(i).moyenne == moyennePrecedente.moyenne) { MoyennesAnnuellesBE oldMoyenne = LMoyennesmoyenneAnnuelles.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification) //alors on a un ex éco (ils ont le même rang) LMoyennesmoyenneAnnuelles.ElementAt(i).rang = moyennePrecedente.rang; //on met à jour le rang dans la BD //modifierMoyenne(oldMoyenne, LMoyenneAvecRang.ElementAt(j)); } else { MoyennesAnnuellesBE oldMoyenne = LMoyennesmoyenneAnnuelles.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification) //alors l'élève prend le rend suivant //LMoyennesmoyenneAnnuelles.ElementAt(j).rang = moyennePrecedente.rang + 1; LMoyennesmoyenneAnnuelles.ElementAt(i).rang = i + 1; //on met à jour le rang dans la BD //modifierMoyenne(oldMoyenne, LMoyenneAvecRang.ElementAt(j)); } moyennePrecedente = LMoyennesmoyenneAnnuelles.ElementAt(i); } // ------------------- FIN détermination du rang // ------------------- DEBUT détermination de la moyenne de la classe moyenneDeLaClasse = moyenneDeLaClasse + LMoyennesmoyenneAnnuelles.ElementAt(i).moyenne; // ------------------- FIN détermination de la moyenne de la classe // ------------------- DEBUT détermination des moyennes minimales et maximales if (LMoyennesmoyenneAnnuelles.ElementAt(i).moyenne < moyenneMin) { moyenneMin = LMoyennesmoyenneAnnuelles.ElementAt(i).moyenne; } if (LMoyennesmoyenneAnnuelles.ElementAt(i).moyenne > moyenneMax) { moyenneMax = LMoyennesmoyenneAnnuelles.ElementAt(i).moyenne; } // ------------------- FIN détermination des moyennes minimales et maximales } moyenneDeLaClasse = moyenneDeLaClasse / LMoyennesmoyenneAnnuelles.Count; //------------------- DEBUT mise à jour des moyennes avec les infos telles que : moyenneClasse, mention, moyenneMin, moyenneMax for (int i = 0; i < LMoyennesmoyenneAnnuelles.Count; i++) { LMoyennesmoyenneAnnuelles.ElementAt(i).moyenneClasse = moyenneDeLaClasse; LMoyennesmoyenneAnnuelles.ElementAt(i).moyenneMin = moyenneMin; LMoyennesmoyenneAnnuelles.ElementAt(i).moyenneMax = moyenneMax; //on met à jour le rang dans la BD if (moyennesAnnuellesDA.rechercher(LMoyennesmoyenneAnnuelles.ElementAt(i)) != null) { supprimerMoyenneAnnuelle(LMoyennesmoyenneAnnuelles.ElementAt(i)); } ajouterMoyenneAnnuelle(LMoyennesmoyenneAnnuelles.ElementAt(i)); //modifierMoyenneTrimestriel(LMoyennesTrimestriels.ElementAt(i), LMoyennesTrimestriels.ElementAt(i)); } //------------------- FIN mise à jour des moyennes avec les infos telles que : moyenneClasse, mention, moyenneMin, moyenneMax } } journalDA.journaliser("Calcul des moyennes annuelles des élèves de la classe " + codeClasse + ", année " + annee); }