From 8fd25394dc1962c04ff017f7e09263497249c9b8 Mon Sep 17 00:00:00 2001 From: pablo rodriguez <58742538+1-pablo-rodriguez@users.noreply.github.com> Date: Tue, 17 Dec 2024 12:12:34 +0100 Subject: [PATCH] maj --- ana.xml | 2 +- bin/calc/commandes.class | Bin 13220 -> 13288 bytes src/calc/commandes.java | 1 + src/evaluer/evaluerAttributs.java | 7 +- src/evaluer/evaluerLesFichiersEtudiants.java | 38 ++++++++-- src/evaluer/evaluerNodesClasseurStudent.java | 6 +- src/xml/crearNodeAna.java | 69 ------------------ src/xml/creerNodeEvaluationEtudiant.java | 73 +++++++++++++++++++ src/xml/node.java | 11 +++ 9 files changed, 124 insertions(+), 83 deletions(-) delete mode 100644 src/xml/crearNodeAna.java create mode 100644 src/xml/creerNodeEvaluationEtudiant.java diff --git a/ana.xml b/ana.xml index 8b1210a..45cc51f 100644 --- a/ana.xml +++ b/ana.xml @@ -1 +1 @@ - \ No newline at end of file +Alex Marechal;20.0;1.0Alexandre Berthelin;7.142857142857143;0.35714285714285715Alexis Legrand;20.0;1.0Alexy Lefebvre;19.870129870129873;0.9935064935064936Amelie Bruniaux;20.0;1.0Anais Blondel;18.571428571428573;0.9285714285714286Anais Najdecki;6.753246753246753;0.33766233766233766Antoine Duponchelle;12.467532467532468;0.6233766233766234Antoine Ponchel;13.506493506493506;0.6753246753246753Apolline Michel;19.870129870129873;0.9935064935064936Arthur Willart;12.077922077922079;0.6038961038961039Aurelien Ben Yahia;19.870129870129873;0.9935064935064936Axel Aoumat;11.03896103896104;0.551948051948052Axel Cadart;13.506493506493506;0.6753246753246753Aymeric Grenier;20.0;1.0Baptiste Fynnaert;7.272727272727273;0.36363636363636365Charles Carron;12.077922077922079;0.6038961038961039Chloe Mazur;20.0;1.0Clara Bruneau;10.649350649350648;0.5324675324675324Clement Legrand;19.870129870129873;0.9935064935064936Cyril Massart;12.077922077922079;0.6038961038961039Doriane Bernard;19.74025974025974;0.987012987012987Elliot Pilawa;2.207792207792208;0.11038961038961038Elodie Vaesken;12.337662337662339;0.6168831168831169Enora-Lou Deplanque;10.38961038961039;0.5194805194805194Esteban Devos Devulder;9.35064935064935;0.4675324675324675Gabriel Humain;20.0;1.0Helene Adjal;12.467532467532468;0.6233766233766234Hugo Guffroy;19.48051948051948;0.974025974025974Imen Belaiche;13.506493506493506;0.6753246753246753Ines Aubier;8.441558441558442;0.42207792207792205Ines El Karami;20.0;1.0Issam Benzemra--Petit;20.0;1.0Jane Gosset;19.870129870129873;0.9935064935064936Jeremy Legros;11.03896103896104;0.551948051948052Julie Rohart;12.207792207792208;0.6103896103896104Justine Bertin;10.779220779220779;0.538961038961039Justine Mikolajczak;12.077922077922079;0.6038961038961039Lali Vin;19.870129870129873;0.9935064935064936Lea Denys;19.870129870129873;0.9935064935064936Leo Marin;13.506493506493506;0.6753246753246753Lilian Lamorille;16.883116883116884;0.8441558441558441Lisa Baran;20.0;1.0Lucas Canon;20.0;1.0Lucie Delong;18.7012987012987;0.935064935064935Luna Hemery;13.506493506493506;0.6753246753246753Maeline Humez;19.870129870129873;0.9935064935064936Manon Cassel;13.506493506493506;0.6753246753246753Martin Pilot;18.7012987012987;0.935064935064935Mateo Darras;12.077922077922079;0.6038961038961039Matheo Guerineau;19.870129870129873;0.9935064935064936Matheo Normand;20.0;1.0Mathilde Carlier;6.883116883116883;0.34415584415584416Mathilde Konury;13.376623376623375;0.6688311688311688Mathis Carlier;19.870129870129873;0.9935064935064936Mathys Calesse;12.207792207792208;0.6103896103896104Mehdi Boutchich;11.948051948051948;0.5974025974025974Melanie Bouchoir;13.376623376623375;0.6688311688311688Melusine Miletti;12.727272727272727;0.6363636363636364Mickael Lenclud;6.233766233766234;0.3116883116883117Noah Desfachelles;7.142857142857143;0.35714285714285715Noah Halluin;1.8181818181818183;0.09090909090909091Oceane Decroix;9.61038961038961;0.4805194805194805Pablo Rodriguez;18.571428571428573;0.9285714285714286Quentin Stautemas;13.506493506493506;0.6753246753246753Raphael Rivaux;10.0;0.5Remi Delaval;11.948051948051948;0.5974025974025974Remi Delvalle;13.376623376623375;0.6688311688311688Remy Maeght;10.51948051948052;0.525974025974026Romain Bruni;19.870129870129873;0.9935064935064936Romain Delrue;13.376623376623375;0.6688311688311688Ronan Bourdrel;13.376623376623375;0.6688311688311688Simon Ducrocq;20.0;1.0Solene Marien;20.0;1.0Stefan Gaudin;10.0;0.5Tanguy Delavier;18.7012987012987;0.935064935064935Theo Duprez;12.077922077922079;0.6038961038961039Theo Justin;12.207792207792208;0.6103896103896104Theo Rouze;20.0;1.0Theo Verlet;13.376623376623375;0.6688311688311688Thomas Renard;12.207792207792208;0.6103896103896104Thomas Thevenin;11.948051948051948;0.5974025974025974Tristan Quesson;6.883116883116883;0.34415584415584416Tyffene Viseur;13.506493506493506;0.6753246753246753Vytto Scilironi;11.03896103896104;0.551948051948052Yvonnick Levis;20.0;1.0 \ No newline at end of file diff --git a/bin/calc/commandes.class b/bin/calc/commandes.class index 8da84dfaaf9f3fdbe16f8830a95583a74d55033b..483f607de7f042996ffea0a9078a561f797e94dc 100644 GIT binary patch literal 13288 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 literal 13220 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 diff --git a/src/calc/commandes.java b/src/calc/commandes.java index 15f0927..e7c5362 100644 --- a/src/calc/commandes.java +++ b/src/calc/commandes.java @@ -19,6 +19,7 @@ public class commandes { //** Le node du fichier d'analyse public static node sujet = new node(); + public static node tousLesResultats = new node("Tous"); public static node sujetSauvegarde = new node(); public static JTree tree = new JTree(); public static node nodeACCSV = null; diff --git a/src/evaluer/evaluerAttributs.java b/src/evaluer/evaluerAttributs.java index 74a07bf..a4fc730 100644 --- a/src/evaluer/evaluerAttributs.java +++ b/src/evaluer/evaluerAttributs.java @@ -1,14 +1,15 @@ package evaluer; import java.util.Map; + import outils.outils; -import xml.crearNodeAna; +import xml.creerNodeEvaluationEtudiant; import xml.node; public class evaluerAttributs { private node nEtudiant ; - private crearNodeAna nAnalyse ; + private creerNodeEvaluationEtudiant nAnalyse ; private node nSujet ; /** @@ -17,7 +18,7 @@ public class evaluerAttributs { * @param nodeEtudiant : le node de l'étudiant. * @param analyse : le node analyse qui contiendra les résultats. */ - public evaluerAttributs(node nodeSujet, node nodeEtudiant, crearNodeAna analyse) { + public evaluerAttributs(node nodeSujet, node nodeEtudiant, creerNodeEvaluationEtudiant analyse) { nEtudiant = nodeEtudiant; nAnalyse = analyse; nSujet = nodeSujet; diff --git a/src/evaluer/evaluerLesFichiersEtudiants.java b/src/evaluer/evaluerLesFichiersEtudiants.java index b77f047..99249dc 100644 --- a/src/evaluer/evaluerLesFichiersEtudiants.java +++ b/src/evaluer/evaluerLesFichiersEtudiants.java @@ -1,5 +1,7 @@ package evaluer; +import java.io.BufferedWriter; +import java.io.FileWriter; import java.io.IOException; import java.text.ParseException; @@ -17,14 +19,14 @@ import calcul.enumerations.typeFichier; import fenetres.baliseStyle; import xml.EnsembleFichiers; import xml.LecturesDossiers; -import xml.crearNodeAna; +import xml.creerNodeEvaluationEtudiant; import xml.node; import xml.transformeXLMtoNode; public class evaluerLesFichiersEtudiants implements Runnable{ private final JEditorPane txt; - public node tousLesResultats = new node("Tous"); + public evaluerLesFichiersEtudiants(JEditorPane txt) { commandes.analyse=true; @@ -65,6 +67,7 @@ public class evaluerLesFichiersEtudiants implements Runnable{ if(commandes.fichierStudentMoodle) { LecturesDossiers.getEC().Initialise(); + commandes.tousLesResultats.clear(); txt.setText(""); try { new LecturesDossiers(enumerations.LocationFile.UniquementFichier, commandes.path); @@ -160,8 +163,11 @@ public class evaluerLesFichiersEtudiants implements Runnable{ //***************************************************** //** Parcours l'ensemble des fichiers des étudiants *** //***************************************************** + StringBuilder fichierCSV = new StringBuilder(); + fichierCSV.append("nomEtudiant;note;pourcentage\n"); for(int i = 0 ; i < nbClasseur ; i++) { - String texteAfficher = txt.getText() + "\nEvaluation du fichier n° " + String.valueOf(i+1) + "/" + String.valueOf(nbClasseur) + " fichier(s)"; + + String texteAfficher = "Evaluation du fichier n° " + String.valueOf(i+1) + "/" + String.valueOf(nbClasseur) + " fichier(s)\n" + txt.getText() ; txt.setText(texteAfficher); //index de l'étudiant @@ -193,19 +199,37 @@ public class evaluerLesFichiersEtudiants implements Runnable{ nodStudent.saveNodeEnXMLinNewFile("nodStudent.xml", commandes.pathApp); if(commandes.analyse) { - crearNodeAna ana = new crearNodeAna(nomEtudiant, i); + creerNodeEvaluationEtudiant ana = new creerNodeEvaluationEtudiant(nomEtudiant, i); new evaluerNodesClasseurStudent(ana, nodStudent); - ana.calculResultat(); - tousLesResultats.addEnfant(ana.clone()); + ana.calculResultatDuNode(); + fichierCSV.append(ana.retourneFirstEnfant("csv").getContenu(0)+"\n"); + commandes.tousLesResultats.addEnfant(ana); } - tousLesResultats.saveNodeEnXMLinNewFile("ana.xml", commandes.pathApp); + commandes.tousLesResultats.saveNodeEnXMLinNewFile("ana.xml", commandes.pathApp); } catch (CloneNotSupportedException | IOException e) { e.printStackTrace(); } }// ** Parcours l'ensemble des fichiers des étudiants *** + txt.setText("** FIN**\n" + txt.getText()); + saveCSV(commandes.pathApp, fichierCSV); }// Run + + + public static boolean saveCSV(String filePath, StringBuilder content) { + String path = filePath + "/ensembleResultats.csv"; + try (BufferedWriter writer = new BufferedWriter(new FileWriter(path))) { + writer.write(content.toString()); // Écrit le contenu dans le fichier + System.out.println("✅ Fichier CSV sauvegardé avec succès : " + filePath); + return true; + } catch (IOException e) { + System.err.println("❌ Erreur lors de la sauvegarde du fichier CSV : " + e.getMessage()); + e.printStackTrace(); // Affiche la trace de l'erreur pour le débogage + return false; + } + } + } //********************************** //** Analyse des fichiers student ** diff --git a/src/evaluer/evaluerNodesClasseurStudent.java b/src/evaluer/evaluerNodesClasseurStudent.java index b2b3d60..f93b47e 100644 --- a/src/evaluer/evaluerNodesClasseurStudent.java +++ b/src/evaluer/evaluerNodesClasseurStudent.java @@ -1,12 +1,12 @@ package evaluer; import calc.commandes; -import xml.crearNodeAna; +import xml.creerNodeEvaluationEtudiant; import xml.node; public class evaluerNodesClasseurStudent { - private crearNodeAna nAna ; + private creerNodeEvaluationEtudiant nAna ; private node nodeEtudiant = new node(); /** @@ -16,7 +16,7 @@ public class evaluerNodesClasseurStudent { * @param ana * @param nodStudent */ - public evaluerNodesClasseurStudent(crearNodeAna ana, node nodStudent) { + public evaluerNodesClasseurStudent(creerNodeEvaluationEtudiant ana, node nodStudent) { nodeEtudiant = nodStudent; nAna = ana; evaluerLesFeuilles(); diff --git a/src/xml/crearNodeAna.java b/src/xml/crearNodeAna.java deleted file mode 100644 index 0f99e2d..0000000 --- a/src/xml/crearNodeAna.java +++ /dev/null @@ -1,69 +0,0 @@ -package xml; - -import java.text.ParseException; -import java.util.Date; - -import calcul.formatDateWriter; - -/** - * Cette class contient tous les résultats d'un seul étudiant.
- * Les resultats sont stockés dans le node ana (node analyse). - * @author pabr6 - * - */ -public class crearNodeAna extends node{ - - private int nbrPointTotal = 0; - private int pointGagner = 0; - - public crearNodeAna() { - - } - - - public crearNodeAna(String nomEtudiant, Integer indexFichier) { - this.nameNode="analyse"; - this.attributs.put("nomEtudiant", nomEtudiant); - this.attributs.put("indexFichier", String.valueOf(indexFichier)); - try { - this.attributs.put("dateEvaluation", String.valueOf(formatDateWriter.DateLibreOffice(new Date()))); - } catch (ParseException e) { - e.printStackTrace(); - } - this.attributs.put("nbrPointTotal", "0"); - this.attributs.put("pointGagner", "0"); - } - - - /** - * Calcul le total des points de l'étudiants.
- * Ajoute les attributs nbrPointTotal et pointGagner.
- */ - public void calculResultat() { - int total= 0; - int point = 0 ; - for (node enfant : this.retourneAllEnfants("resultat")) { - total = total + Integer.valueOf(enfant.getAttributs().get("total")); - point = point + Integer.valueOf(enfant.getAttributs().get("point")); - } - this.getAttributs().put("nbrPointTotal", String.valueOf(total)); - this.getAttributs().put("pointGagner", String.valueOf(point)); - } - - @Override - public void addEnfant(node enfant) { -// enfant = (crearNodeAna) enfant; - enfant.setParent(this); - enfant.setLevel(this.level+1); - this.enfants.add(enfant); - if(enfant.getNameNode().equals("resultat")) { - nbrPointTotal = nbrPointTotal + Integer.valueOf(enfant.getAttributs().get("total")); - if(Boolean.valueOf(enfant.getAttributs().get("correct"))) { - pointGagner = pointGagner + Integer.valueOf(enfant.getAttributs().get("total")); - } - } - } - - - -} diff --git a/src/xml/creerNodeEvaluationEtudiant.java b/src/xml/creerNodeEvaluationEtudiant.java new file mode 100644 index 0000000..1328cc1 --- /dev/null +++ b/src/xml/creerNodeEvaluationEtudiant.java @@ -0,0 +1,73 @@ +package xml; + +import java.text.ParseException; +import java.util.Date; + +import calc.commandes; +import calcul.formatDateWriter; + +/** + * Cette class contient tous les résultats d'un seul étudiant.
+ * Les resultats sont stockés dans le node ana (node analyse). + * @author pabr6 + * + */ +public class creerNodeEvaluationEtudiant extends node{ + + + + public creerNodeEvaluationEtudiant() { + + } + + + public creerNodeEvaluationEtudiant(String nomEtudiant, Integer indexFichier) { + this.nameNode="analyse"; + this.attributs.put("nomEtudiant", nomEtudiant); + this.attributs.put("indexFichier", String.valueOf(indexFichier)); + try { + this.attributs.put("dateEvaluation", String.valueOf(formatDateWriter.DateLibreOffice(new Date()))); + } catch (ParseException e) { + e.printStackTrace(); + } + this.attributs.put("nbrPointTotal", "0"); + this.attributs.put("pointGagner", "0"); + this.attributs.put("bareme",String.valueOf(commandes.analyse_bareme)); + this.attributs.put("baremeABC",String.valueOf(commandes.analyse_baremeABC)); + } + + + /** + * Calcul le total des points de l'étudiants.
+ * Ajoute les attributs nbrPointTotal et pointGagner.
+ */ + public void calculResultatDuNode() { + int total= 0; + int point = 0 ; + node root = this.retourneRoot(); + for (node enfant : root.retourneAllEnfants("resultat")) { + total = total + Integer.valueOf(enfant.getAttributs().get("total")); + point = point + Integer.valueOf(enfant.getAttributs().get("point")); + } + root.getAttributs().put("nbrPointTotal", String.valueOf(total)); + root.getAttributs().put("pointGagner", String.valueOf(point)); + notationEtudiant(root,total,point); + } + + + private void notationEtudiant(node root, int total, int point ) { + node csv = new node("csv"); + double note = (double) 0; + double pourcentageReussite = (double) 0; + if(!commandes.analyse_baremeABC) { + pourcentageReussite = (double) point/total; + note = pourcentageReussite*commandes.analyse_bareme; + } + csv.addContenu(root.getAttributs().get("nomEtudiant") + ";" +String.valueOf(note) + ";" + String.valueOf(pourcentageReussite)); + root.addEnfant(csv); + } + + + + +} diff --git a/src/xml/node.java b/src/xml/node.java index 3afe206..a96ce97 100644 --- a/src/xml/node.java +++ b/src/xml/node.java @@ -667,6 +667,17 @@ protected boolean nodeClose = false; && Objects.equals(nameNode, other.nameNode) && Objects.equals(parent, other.parent); } + + /** + * Nettoyage du node.
+ * Supprime les attributs, les enfants, les contenus.
+ */ + public void clear() { + this.removeAllAttributs(); + this.removeAllEnfants(); + this.removeAllContenu(); + } + @SuppressWarnings("unchecked") @Override