maj
This commit is contained in:
parent
9ef8dc05e6
commit
8fd25394dc
Binary file not shown.
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 **
|
||||
|
@ -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();
|
||||
|
@ -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.<br>
|
||||
* 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.<br>
|
||||
* Ajoute les attributs nbrPointTotal et pointGagner.<br>
|
||||
*/
|
||||
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"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
73
src/xml/creerNodeEvaluationEtudiant.java
Normal file
73
src/xml/creerNodeEvaluationEtudiant.java
Normal file
@ -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.<br>
|
||||
* 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.<br>
|
||||
* Ajoute les attributs nbrPointTotal et pointGagner.<br>
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -667,6 +667,17 @@ protected boolean nodeClose = false;
|
||||
&& Objects.equals(nameNode, other.nameNode) && Objects.equals(parent, other.parent);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Nettoyage du node.<br>
|
||||
* Supprime les attributs, les enfants, les contenus.<br>
|
||||
*/
|
||||
public void clear() {
|
||||
this.removeAllAttributs();
|
||||
this.removeAllEnfants();
|
||||
this.removeAllContenu();
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user