288 lines
13 KiB
Java
288 lines
13 KiB
Java
package AnalyseCalc;
|
|
|
|
|
|
import java.text.DecimalFormat;
|
|
import java.util.Map.Entry;
|
|
|
|
import AnalyseCalc.Classeur2.feuille;
|
|
import calc.commandes;
|
|
import nodeAC.Ecriture;
|
|
import nodeAC.LecturesDossiers;
|
|
import nodeAC.constructionNodeAvecString;
|
|
import nodeAC.nodeAC;
|
|
import outils.feedback;
|
|
import outils.notation;
|
|
|
|
public class analyseCalc {
|
|
|
|
|
|
static DecimalFormat df = new DecimalFormat("###.##");
|
|
static String patch ="C:/";
|
|
static String SousVersion="0.1";
|
|
|
|
|
|
static boolean ecritCode = false; // ecriture du code du sujet
|
|
static boolean ecritNoteCSV = false; // ecriture note.csv
|
|
static boolean sansFeeback = false; // pas de feedback étudiant
|
|
static boolean exporteCodeSujet =false; // exporte le code d'un sujet
|
|
static boolean avecfichieranalyse = false; //fournie un fichier d'analyse
|
|
static String fichierAnalyse = "cc1chg.xml"; //nom du fichier d'analyse
|
|
static boolean pasdelogo = false; //pas de logo dans le feddback
|
|
static boolean analyseDossier = false; //par défaut chaque étudiant est dans un dossier Moodle
|
|
static boolean annule = false; // annule l'analyse
|
|
static boolean verifhisto = false; // vérification des historique avec une base de données XML
|
|
static boolean creerhisto = false; // génnère une base de données XML en utilisant une fichier d'analyse
|
|
static String fichierBaseHistorique = "baseHistorique.xml"; //nom par défaut à la création d'une base de données historique
|
|
static String fichierResource = "format1"; // fichier par défaut de la ressource
|
|
static boolean menupasdynamic = false; // pas de menu sticky
|
|
//
|
|
// public static void main(String[] args) throws Exception {
|
|
//
|
|
//
|
|
// System.getProperty("file.encoding","UTF-8");
|
|
//// Version = Run.UserStatus.ECRITURE_FILE_TABLEUR_CORRECTION;
|
|
// SousVersion="0.0.1 - 03 octobre 2020"; // version et date
|
|
// patch = System.getProperty("user.dir");
|
|
//// patch = "C:/Users/pabr6/Downloads/teste/";
|
|
//
|
|
//
|
|
//
|
|
// // annulation
|
|
// if(annule) {
|
|
// messageDernier();
|
|
// System.exit(0);
|
|
// }
|
|
//
|
|
// // Message initiale
|
|
// messagePremier();
|
|
//
|
|
//
|
|
// //Lecture des fichiers student ou de la correction
|
|
// System.out.println("\tDébut la lecture de l'ensemble des dossiers et/ou fichiers des étudiants");
|
|
// new LecturesDossiers(Ecriture.LocationFile.DansDossier, commandes.path);
|
|
//
|
|
//
|
|
// int NbrSujet = LecturesDossiers.getEC().getSize();
|
|
// if(!ecritCode) System.out.println("\r\tFin de la lecture de l'ensemble des dossiers et fichiers des étudiants ... nombre de dossiers étudiants : " + NbrSujet);
|
|
//
|
|
// // ecriture du code d'un fichier
|
|
// if(ecritCode) {
|
|
// System.out.println("\r\tFin de la lecture du fichier corrigé");
|
|
// if(LecturesDossiers.getEC().getListeFichierods().size()==0) {
|
|
// System.out.println("\r\tIl n'y a pas de fichier \".ods\" dans le répertoire de l'application.");
|
|
// System.exit(0);
|
|
// }
|
|
// }
|
|
//
|
|
// System.out.println();
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// // Chargement sujet
|
|
// Classeur2 Sujet=null;
|
|
// if(!ecritCode) {
|
|
// if(avecfichieranalyse) {
|
|
// System.out.println("\tDébut du chargement du sujet ... fichier d'analyse : " + fichierAnalyse);
|
|
// Sujet = new Classeur2(fichierAnalyse);
|
|
// }
|
|
// if(!avecfichieranalyse && !fichierResource.isEmpty()) {
|
|
// System.out.println("\tDébut du chargement du sujet ... sujet ressource : " + fichierResource);
|
|
// Sujet = new Classeur2(fichierResource,false );
|
|
// }
|
|
// if(!avecfichieranalyse && fichierResource.isEmpty()) {
|
|
// System.out.println("\tQuelle est le fichier ressource ... sujet!?");
|
|
// System.exit(0);
|
|
// }
|
|
// System.out.println("\tChargement du sujet terminé (fichier d'analyse).");
|
|
// System.out.println();
|
|
// }
|
|
//
|
|
//
|
|
// // Verification de l'historique
|
|
//
|
|
//
|
|
//
|
|
// // boucle d'analyse
|
|
// for(int i = 0 ; i<LecturesDossiers.getEC().getSize();i++) {
|
|
// System.out.println("\tAnalyse");
|
|
// if(!ecritCode) System.out.println("\t\tDossier de l'étudiant : "+LecturesDossiers.getEC().getListeNomDossier().get(i));
|
|
// System.out.println("\t\tNom du fichier : "+LecturesDossiers.getEC().getListeFichierods().get(i));
|
|
// System.out.println();
|
|
//
|
|
// // Obtient le XMLContent de Calc de l'étudiant
|
|
// System.out.println("\t\tAmorçage de l'analyse (parse xml)");
|
|
// System.out.println();
|
|
// nodeAC XMLContent = new nodeAC();
|
|
// constructionNodeAvecString A = new constructionNodeAvecString();
|
|
// XMLContent = A.NewNode(LecturesDossiers.getEC().getListeContentTableur().get(i));
|
|
// System.out.println("\t\tAmorçage terminé");
|
|
// System.out.println();
|
|
//
|
|
// //Lecture du classeur de Student
|
|
// System.out.println("\t\tDébut lecture du fichier : "+LecturesDossiers.getEC().getListeFichierods().get(i));
|
|
// Classeur2 Student = new Classeur2(XMLContent,i);
|
|
// System.out.println("\t\tLecture terminée");
|
|
// System.out.println();
|
|
//
|
|
// // générère le fichier d'analyse
|
|
// if(ecritCode) {
|
|
// System.out.println("\t\tDébut écriture du fichier d'analyse : \"codeFichier.xml\"");
|
|
// Student.ecritureClasseur(patch);
|
|
// System.out.println("\t\tEcriture du fichier d'analyse terminée.");
|
|
// System.out.println();
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// if(!ecritCode && !verifhisto) {
|
|
// //Verification du fichier (sujet)
|
|
// System.out.println("\t\tDébut vérification du classeur");
|
|
// verifsujet verif = new verifsujet(Student,Sujet);
|
|
// if(verif.isSujetClasseurVerifier()) System.out.println("\t\tVérification terminée : " + verif.isSujetClasseurVerifier());
|
|
// if(!verif.isSujetClasseurVerifier()) System.out.println("\t\tCe n'est pas le bon classeur ... l'analyse de ce classeur ne pourra pas être réalisée.");
|
|
// System.out.println();
|
|
//
|
|
//
|
|
//
|
|
// AnalyseClasseur AClas = new AnalyseClasseur();
|
|
// AClas.addHistorique(Student.getHisto());
|
|
//
|
|
// if(verif.isSujetClasseurVerifier()) {
|
|
// //créer une analyse pour chaque feuille de calcul
|
|
// for (Entry<Integer, feuille> k : Sujet.getFeuilles().entrySet()) {
|
|
// if(k.getValue().getEvaluer().equals("true")) {
|
|
// //une feuille évaluée
|
|
// feuille feuilleSujet = k.getValue();
|
|
// feuille feuilleStudent = Student.retourneFeuilleByName(k.getValue().getNomFeuille());
|
|
// if(feuilleStudent!=null) {
|
|
// System.out.println("\t\tDébut de l'analyse --> feuille : " + k.getValue().getNomFeuille() );
|
|
// AnalyseFeuille AFeuil = new AnalyseFeuille(feuilleStudent, feuilleSujet,"A"+Integer.valueOf(k.getKey()));
|
|
// AClas.addFeuille(AFeuil,Student);
|
|
// System.out.println("\t\tAnalyse feuille terminée.");
|
|
// System.out.println();
|
|
// }else {
|
|
// // Si la feuille est supprime
|
|
// System.out.println("\t\tLa feuille \""+ k.getValue().getNomFeuille()+"\" n'existe pas dans le classeur de l'étudiant.");
|
|
// verifsujet.addMessageVerifClasseur("\t\tLa feuille \""+ k.getValue().getNomFeuille()+"\" n'existe pas dans le classeur de l'étudiant. Vous l'avez supprimé ou vous l'avez renommé.");
|
|
// AnalyseFeuille AFeuil = new AnalyseFeuille(feuilleSujet,"A"+Integer.valueOf(k.getKey()));
|
|
// AClas.addFeuille(AFeuil,Student);
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// if(AClas.isVide()) {
|
|
// // Il n'y a pas d'analyse
|
|
// System.out.println("\t\tErreur, l'analyse n'a pas pu se faire. Vérifier votre fichier d'analyse, il faut au moins une feuille à évaluer.");
|
|
// System.out.println();
|
|
// }else {
|
|
// if(!sansFeeback) {
|
|
// System.out.println("\t\tDébut d'écriture du feedback étudiant.");
|
|
// String fichierAnalyseXML = "";
|
|
// if(avecfichieranalyse) fichierAnalyseXML = fichierAnalyse;
|
|
// if(!avecfichieranalyse) fichierAnalyseXML = fichierResource + ".xml";
|
|
// feedback feedB = new feedback();
|
|
// String noteStudent = feedB.FeedBack(patch, LecturesDossiers.getEC().getListeNomDossier().get(i),
|
|
// LecturesDossiers.getEC().getListeFichierods().get(i), Sujet, verif,
|
|
// ecritNoteCSV, AClas, pasdelogo, fichierAnalyseXML, menupasdynamic);
|
|
//
|
|
// if(!AClas.getHisto().isTriche()) {
|
|
// System.out.println("\t\tfeedback terminée et sauvegardé au format HTML. ... note : " + noteStudent + "/" + calc.commandes.analyse_bareme);
|
|
// }else {
|
|
// System.out.println("\t\tfeedback terminée et sauvegardé au format HTML. ... note : " + noteStudent + " */" + calc.commandes.analyse_bareme);
|
|
// System.out.println("\t\t\t * Nombre de correspondance : " + AClas.getNombreOccurrenceIdentiqueHistorique() + "*");
|
|
// }
|
|
// System.out.println();
|
|
// }
|
|
// if(ecritNoteCSV && sansFeeback) {
|
|
// notation note = new notation(verif.isSujetClasseurVerifier(),ecritNoteCSV,LecturesDossiers.getEC().getListeNomDossier().get(i), AClas);
|
|
// System.out.println("La note est de : " + note.getNote() + "/" + calc.commandes.analyse_bareme);
|
|
// }
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
// }else { // ce n'est pas le bon classeur, mais il faut une note
|
|
//
|
|
// if(!sansFeeback) {
|
|
// System.out.println("\t\tDébut d'écriture du feedback étudiant.");
|
|
// String fichierAnalyseXML = "";
|
|
// if(avecfichieranalyse) fichierAnalyseXML = fichierAnalyse;
|
|
// if(!avecfichieranalyse) fichierAnalyseXML = fichierResource + ".xml";
|
|
//
|
|
//
|
|
//
|
|
// feedback feedB = new feedback();
|
|
// feedB.FeedBack(patch, LecturesDossiers.getEC().getListeNomDossier().get(i), LecturesDossiers.getEC().getListeFichierods().get(i), Sujet, verif,
|
|
// ecritNoteCSV, AClas, pasdelogo, fichierAnalyseXML, menupasdynamic);
|
|
//
|
|
// System.out.println("\t\tfeedback terminée et sauvegardé au format HTML. ... note : 0.00/" + calc.commandes.analyse_bareme);
|
|
// System.out.println();
|
|
// }
|
|
// if(ecritNoteCSV && sansFeeback) {
|
|
// notation note = new notation(verif.isSujetClasseurVerifier(),ecritNoteCSV,LecturesDossiers.getEC().getListeNomDossier().get(i), AClas);
|
|
// System.out.println("La note est de : " + note.getNote() + "/" + calc.commandes.analyse_bareme);
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// }// boucle d'analyse
|
|
//
|
|
//// if(creerhisto) AnalyseClasseur.createBaseHistorique(patch);
|
|
//
|
|
// if(ecritNoteCSV) notation.publieNotesCSV(patch);
|
|
// messageDernier();
|
|
// }
|
|
//
|
|
|
|
/**
|
|
* Premier message sur la console
|
|
*/
|
|
private static void messagePremier() {
|
|
// Message préliminaire
|
|
System.out.println();
|
|
System.out.println ("╔════════════════════════════════════════════════════════╗");
|
|
System.out.println ("║ Analyse des fichiers LibreOffice Calc ║");
|
|
System.out.println ("║ Version juin 2020 - Licence GPLv3.0 ║");
|
|
|
|
System.out.println ("║ Ecriture ║");
|
|
System.out.println ("╚════════════════════════════════════════════════════════╝");
|
|
System.out.println ("\tLe répertoire courant est : " + patch);
|
|
if(analyseDossier)System.out.println ("\tChaque fichier d'étudiant est dans un dossier : " + analyseDossier);
|
|
if(analyseDossier)System.out.println ("\tTous les fichiers d'étudiant sont dans le répertoire courant : " + analyseDossier);
|
|
System.out.println();
|
|
System.out.println ("\tImportation des notes dans le fichier \"notes.csv\" : " + ecritNoteCSV);
|
|
System.out.println ("\tEcriture d'un fichier d'analyse \"codeFichier.xml\" : " + ecritCode);
|
|
System.out.println ("\tUn fichier d'analyse est fourni dans le répertoire courant: " + avecfichieranalyse);
|
|
if(avecfichieranalyse) System.out.println ("\tNom du fichier d'analyse : " + fichierAnalyse);
|
|
System.out.println ("\tPas de feedback : " + sansFeeback);
|
|
if(!sansFeeback)System.out.println ("\tAffiche le logo de l'université d'Artois dans le feedback : " + pasdelogo);
|
|
System.out.println();
|
|
|
|
}
|
|
|
|
/**
|
|
* Dernier message sur la console
|
|
*/
|
|
private static void messageDernier() {
|
|
System.out.println();
|
|
System.out.println ("╔══════════════════════════════════════════════════════════════════╗");
|
|
System.out.println ("╚══════════════════════════════════════════════════════════════════╝");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|