This commit is contained in:
pablo rodriguez 2024-12-18 18:04:28 +01:00
parent b17cf118d7
commit f9a6dd8745
93 changed files with 195 additions and 1019 deletions

View File

@ -0,0 +1 @@
Pablo Rodriguez,LAPTOP-G5TBC6N3/pabr6,LAPTOP-G5TBC6N3,18.12.2024 17:48,file:///C:/Users/pabr6/AppData/Roaming/LibreOffice/4;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

12
bin/.gitignore vendored
View File

@ -1,13 +1,3 @@
/fenetres/
/xml/
/AnalyseCalc/
/menu/
/actions/
/list/
/resources/
/evaluer/
/outils/
/calc/
/baseEvaluation/
/baseListesEtudiants/
/calcul/
/fenetres/

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/actions/actCopy.class Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/actions/actPaste.class Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/calc/Student.class Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/evaluer/evaluer.class Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/menu/mnArbre.class Normal file

Binary file not shown.

Binary file not shown.

BIN
bin/menu/mnEvaluer.class Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/menu/mnMarqueNode.class Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/menu/mnSaut.class Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/menu/mnTitre.class Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/resources/copy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
bin/resources/evaluer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

BIN
bin/resources/paste.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/xml/Zip.class Normal file

Binary file not shown.

Binary file not shown.

BIN
bin/xml/demarreTest.class Normal file

Binary file not shown.

Binary file not shown.

BIN
bin/xml/node.class Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1,87 +1,87 @@
nomEtudiant;note;pourcentage
Alex Marechal;8.0;1.0
Alexandre Berthelin;6.331623931623931;0.7914529914529914
Alexis Legrand;7.2615384615384615;0.9076923076923077
Alexy Lefebvre;7.288888888888889;0.9111111111111111
Amelie Bruniaux;7.726495726495727;0.9658119658119658
Anais Blondel;6.714529914529915;0.8393162393162393
Anais Najdecki;6.2905982905982905;0.7863247863247863
Antoine Duponchelle;6.276923076923077;0.7846153846153846
Antoine Ponchel;7.589743589743589;0.9487179487179487
Apolline Michel;7.07008547008547;0.8837606837606837
Arthur Willart;6.413675213675214;0.8017094017094017
Aurelien Ben Yahia;7.1521367521367525;0.8940170940170941
Axel Aoumat;4.4854700854700855;0.5606837606837607
Axel Cadart;7.2615384615384615;0.9076923076923077
Aymeric Grenier;7.726495726495727;0.9658119658119658
Baptiste Fynnaert;7.2615384615384615;0.9076923076923077
Charles Carron;6.55042735042735;0.8188034188034188
Chloe Mazur;7.589743589743589;0.9487179487179487
Clara Bruneau;5.2786324786324785;0.6598290598290598
Clement Legrand;7.042735042735043;0.8803418803418803
Cyril Massart;6.017094017094017;0.7521367521367521
Doriane Bernard;6.878632478632479;0.8598290598290599
Elliot Pilawa;4.658407079646017;0.5823008849557522
Elodie Vaesken;6.441025641025641;0.8051282051282052
Enora-Lou Deplanque;4.581196581196581;0.5726495726495726
Esteban Devos Devulder;6.536752136752137;0.8170940170940171
Gabriel Humain;7.288888888888889;0.9111111111111111
Helene Adjal;6.276923076923077;0.7846153846153846
Hugo Guffroy;6.427350427350428;0.8034188034188035
Imen Belaiche;7.726495726495727;0.9658119658119658
Ines Aubier;7.617094017094017;0.9521367521367521
Ines El Karami;7.589743589743589;0.9487179487179487
Issam Benzemra--Petit;7.671794871794872;0.958974358974359
Jane Gosset;7.17948717948718;0.8974358974358975
Jeremy Legros;5.032478632478632;0.629059829059829
Julie Rohart;6.823931623931624;0.852991452991453
Justine Bertin;6.933333333333334;0.8666666666666667
Justine Mikolajczak;6.988034188034188;0.8735042735042735
Lali Vin;7.562393162393162;0.9452991452991453
Lea Denys;7.17948717948718;0.8974358974358975
Leo Marin;7.097435897435897;0.8871794871794871
Lilian Lamorille;5.264957264957265;0.6581196581196581
Lisa Baran;6.960683760683761;0.8700854700854701
Lucas Canon;7.671794871794872;0.958974358974359
Lucie Delong;7.17948717948718;0.8974358974358975
Luna Hemery;7.671794871794872;0.958974358974359
Maeline Humez;7.562393162393162;0.9452991452991453
Manon Cassel;7.726495726495727;0.9658119658119658
Martin Pilot;6.851282051282051;0.8564102564102564
Mateo Darras;6.358974358974359;0.7948717948717948
Matheo Guerineau;7.206837606837607;0.9008547008547009
Matheo Normand;7.671794871794872;0.958974358974359
Mathilde Carlier;6.4683760683760685;0.8085470085470086
Mathilde Konury;7.4393162393162395;0.9299145299145299
Mathis Carlier;7.398290598290599;0.9247863247863248
Mathys Calesse;7.124786324786324;0.8905982905982905
Mehdi Boutchich;5.880341880341881;0.7350427350427351
Melanie Bouchoir;7.220512820512821;0.9025641025641026
Melusine Miletti;6.140170940170941;0.7675213675213676
Mickael Lenclud;2.9168141592920356;0.36460176991150445
Noah Desfachelles;5.798290598290598;0.7247863247863248
Noah Halluin;3.157522123893805;0.39469026548672564
Oceane Decroix;7.124786324786324;0.8905982905982905
Pablo Rodriguez;6.769230769230769;0.8461538461538461
Quentin Stautemas;6.5777777777777775;0.8222222222222222
Raphael Rivaux;2.8034188034188032;0.3504273504273504
Remi Delaval;6.65982905982906;0.8324786324786325
Remi Delvalle;7.425641025641026;0.9282051282051282
Remy Maeght;4.772649572649573;0.5965811965811966
Romain Bruni;7.206837606837607;0.9008547008547009
Romain Delrue;7.015384615384615;0.8769230769230769
Ronan Bourdrel;7.617094017094017;0.9521367521367521
Simon Ducrocq;7.316239316239316;0.9145299145299145
Solene Marien;7.671794871794872;0.958974358974359
Stefan Gaudin;4.3076923076923075;0.5384615384615384
Tanguy Delavier;6.905982905982906;0.8632478632478633
Theo Duprez;6.769230769230769;0.8461538461538461
Theo Justin;7.124786324786324;0.8905982905982905
Theo Rouze;7.671794871794872;0.958974358974359
Theo Verlet;7.617094017094017;0.9521367521367521
Thomas Renard;6.714529914529915;0.8393162393162393
Thomas Thevenin;5.948717948717949;0.7435897435897436
Tristan Quesson;6.208547008547009;0.7760683760683761
Tyffene Viseur;7.288888888888889;0.9111111111111111
Vytto Scilironi;5.894017094017094;0.7367521367521368
Yvonnick Levis;7.17948717948718;0.8974358974358975
Alex Marechal;6.780620577027762;0.8475775721284703
Alexandre Berthelin;3.0615133369624385;0.3826891671203048
Alexis Legrand;5.4001088731627656;0.6750136091453457
Alexy Lefebvre;5.574305933587371;0.6967882416984214
Amelie Bruniaux;5.857376156777354;0.7321720195971693
Anais Blondel;4.415895481763745;0.5519869352204682
Anais Najdecki;2.900381056069679;0.3625476320087099
Antoine Duponchelle;4.489929232444203;0.5612411540555253
Antoine Ponchel;5.596080566140446;0.6995100707675558
Apolline Michel;5.456722917800762;0.6820903647250952
Arthur Willart;3.9891126837234623;0.4986390854654328
Aurelien Ben Yahia;5.308655416439848;0.663581927054981
Axel Aoumat;3.2400653238976593;0.4050081654872074
Axel Cadart;5.186717474142624;0.648339684267828
Aymeric Grenier;5.809471965160588;0.7261839956450735
Baptiste Fynnaert;3.723462166575939;0.46543277082199236
Charles Carron;3.780076211213936;0.472509526401742
Chloe Mazur;5.735438214480131;0.7169297768100164
Clara Bruneau;3.0571584104518235;0.38214480130647793
Clement Legrand;5.430593358737071;0.6788241698421339
Cyril Massart;3.7974959172563962;0.47468698965704953
Doriane Bernard;4.938486663037561;0.6173108328796951
Elliot Pilawa;2.5834701696770663;0.3229337712096333
Elodie Vaesken;4.520413718018508;0.5650517147523135
Enora-Lou Deplanque;2.6173108328796952;0.3271638541099619
Esteban Devos Devulder;3.653783342406097;0.45672291780076213
Gabriel Humain;5.539466521502449;0.6924333151878062
Helene Adjal;4.507348938486663;0.5634186173108329
Hugo Guffroy;4.71638541099619;0.5895481763745237
Imen Belaiche;5.613500272182907;0.7016875340228633
Ines Aubier;4.794774088187262;0.5993467610234078
Ines El Karami;5.596080566140446;0.6995100707675558
Issam Benzemra--Petit;5.70930865541644;0.713663581927055
Jane Gosset;5.365269461077844;0.6706586826347305
Jeremy Legros;3.618943930321176;0.452367991290147
Julie Rohart;3.923788786064235;0.4904735982580294
Justine Bertin;4.629286880783887;0.5786608600979859
Justine Mikolajczak;4.350571584104518;0.5438214480130648
Lali Vin;5.657049537289058;0.7071311921611323
Lea Denys;5.487207403375068;0.6859009254218835
Leo Marin;4.990745781164943;0.6238432226456179
Lilian Lamorille;2.9657049537289057;0.3707131192161132
Lisa Baran;5.2084921066957;0.6510615133369625
Lucas Canon;5.70930865541644;0.713663581927055
Lucie Delong;4.72509526401742;0.5906369080021775
Luna Hemery;5.295590636908003;0.6619488296135003
Maeline Humez;5.652694610778443;0.7065868263473054
Manon Cassel;5.4001088731627656;0.6750136091453457
Martin Pilot;4.498639085465433;0.5623298856831791
Mateo Darras;3.5710397387044095;0.4463799673380512
Matheo Guerineau;5.508982035928144;0.688622754491018
Matheo Normand;5.70930865541644;0.713663581927055
Mathilde Carlier;2.970059880239521;0.3712574850299401
Mathilde Konury;5.199782253674469;0.6499727817093086
Mathis Carlier;5.569951007076756;0.6962438758845945
Mathys Calesse;4.489929232444203;0.5612411540555253
Mehdi Boutchich;3.497005988023952;0.437125748502994
Melanie Bouchoir;5.221556886227545;0.6526946107784432
Melusine Miletti;4.25040827436037;0.5313010342950463
Mickael Lenclud;2.3645320197044337;0.2955665024630542
Noah Desfachelles;3.035383777898748;0.3794229722373435
Noah Halluin;1.3267651888341543;0.16584564860426929
Oceane Decroix;4.010887316276538;0.5013609145345672
Pablo Rodriguez;4.3810560696788245;0.5476320087098531
Quentin Stautemas;4.838323353293413;0.6047904191616766
Raphael Rivaux;1.5764833968426784;0.1970604246053348
Remi Delaval;3.9629831246597713;0.4953728905824714
Remi Delvalle;5.204137180185084;0.6505171475231355
Remy Maeght;2.569406641262929;0.3211758301578661
Romain Bruni;5.500272182906913;0.6875340228633642
Romain Delrue;5.0647795318454;0.633097441480675
Ronan Bourdrel;5.583015786608601;0.6978769733260751
Simon Ducrocq;5.552531301034295;0.6940664126292869
Solene Marien;5.7180185084376705;0.7147523135547088
Stefan Gaudin;2.1774632553075666;0.2721829069134458
Tanguy Delavier;4.459444746869897;0.5574305933587371
Theo Duprez;4.346216657593903;0.5432770821992379
Theo Justin;4.446379967338051;0.5557974959172564
Theo Rouze;5.456722917800762;0.6820903647250952
Theo Verlet;5.565596080566141;0.6956995100707676
Thomas Renard;4.010887316276538;0.5013609145345672
Thomas Thevenin;3.6668481219379423;0.4583560152422428
Tristan Quesson;3.5362003266194884;0.44202504082743604
Tyffene Viseur;5.204137180185084;0.6505171475231355
Vytto Scilironi;3.5449101796407185;0.4431137724550898
Yvonnick Levis;5.517691888949374;0.6897114861186717

1 nomEtudiant note pourcentage
2 Alex Marechal 8.0 6.780620577027762 1.0 0.8475775721284703
3 Alexandre Berthelin 6.331623931623931 3.0615133369624385 0.7914529914529914 0.3826891671203048
4 Alexis Legrand 7.2615384615384615 5.4001088731627656 0.9076923076923077 0.6750136091453457
5 Alexy Lefebvre 7.288888888888889 5.574305933587371 0.9111111111111111 0.6967882416984214
6 Amelie Bruniaux 7.726495726495727 5.857376156777354 0.9658119658119658 0.7321720195971693
7 Anais Blondel 6.714529914529915 4.415895481763745 0.8393162393162393 0.5519869352204682
8 Anais Najdecki 6.2905982905982905 2.900381056069679 0.7863247863247863 0.3625476320087099
9 Antoine Duponchelle 6.276923076923077 4.489929232444203 0.7846153846153846 0.5612411540555253
10 Antoine Ponchel 7.589743589743589 5.596080566140446 0.9487179487179487 0.6995100707675558
11 Apolline Michel 7.07008547008547 5.456722917800762 0.8837606837606837 0.6820903647250952
12 Arthur Willart 6.413675213675214 3.9891126837234623 0.8017094017094017 0.4986390854654328
13 Aurelien Ben Yahia 7.1521367521367525 5.308655416439848 0.8940170940170941 0.663581927054981
14 Axel Aoumat 4.4854700854700855 3.2400653238976593 0.5606837606837607 0.4050081654872074
15 Axel Cadart 7.2615384615384615 5.186717474142624 0.9076923076923077 0.648339684267828
16 Aymeric Grenier 7.726495726495727 5.809471965160588 0.9658119658119658 0.7261839956450735
17 Baptiste Fynnaert 7.2615384615384615 3.723462166575939 0.9076923076923077 0.46543277082199236
18 Charles Carron 6.55042735042735 3.780076211213936 0.8188034188034188 0.472509526401742
19 Chloe Mazur 7.589743589743589 5.735438214480131 0.9487179487179487 0.7169297768100164
20 Clara Bruneau 5.2786324786324785 3.0571584104518235 0.6598290598290598 0.38214480130647793
21 Clement Legrand 7.042735042735043 5.430593358737071 0.8803418803418803 0.6788241698421339
22 Cyril Massart 6.017094017094017 3.7974959172563962 0.7521367521367521 0.47468698965704953
23 Doriane Bernard 6.878632478632479 4.938486663037561 0.8598290598290599 0.6173108328796951
24 Elliot Pilawa 4.658407079646017 2.5834701696770663 0.5823008849557522 0.3229337712096333
25 Elodie Vaesken 6.441025641025641 4.520413718018508 0.8051282051282052 0.5650517147523135
26 Enora-Lou Deplanque 4.581196581196581 2.6173108328796952 0.5726495726495726 0.3271638541099619
27 Esteban Devos Devulder 6.536752136752137 3.653783342406097 0.8170940170940171 0.45672291780076213
28 Gabriel Humain 7.288888888888889 5.539466521502449 0.9111111111111111 0.6924333151878062
29 Helene Adjal 6.276923076923077 4.507348938486663 0.7846153846153846 0.5634186173108329
30 Hugo Guffroy 6.427350427350428 4.71638541099619 0.8034188034188035 0.5895481763745237
31 Imen Belaiche 7.726495726495727 5.613500272182907 0.9658119658119658 0.7016875340228633
32 Ines Aubier 7.617094017094017 4.794774088187262 0.9521367521367521 0.5993467610234078
33 Ines El Karami 7.589743589743589 5.596080566140446 0.9487179487179487 0.6995100707675558
34 Issam Benzemra--Petit 7.671794871794872 5.70930865541644 0.958974358974359 0.713663581927055
35 Jane Gosset 7.17948717948718 5.365269461077844 0.8974358974358975 0.6706586826347305
36 Jeremy Legros 5.032478632478632 3.618943930321176 0.629059829059829 0.452367991290147
37 Julie Rohart 6.823931623931624 3.923788786064235 0.852991452991453 0.4904735982580294
38 Justine Bertin 6.933333333333334 4.629286880783887 0.8666666666666667 0.5786608600979859
39 Justine Mikolajczak 6.988034188034188 4.350571584104518 0.8735042735042735 0.5438214480130648
40 Lali Vin 7.562393162393162 5.657049537289058 0.9452991452991453 0.7071311921611323
41 Lea Denys 7.17948717948718 5.487207403375068 0.8974358974358975 0.6859009254218835
42 Leo Marin 7.097435897435897 4.990745781164943 0.8871794871794871 0.6238432226456179
43 Lilian Lamorille 5.264957264957265 2.9657049537289057 0.6581196581196581 0.3707131192161132
44 Lisa Baran 6.960683760683761 5.2084921066957 0.8700854700854701 0.6510615133369625
45 Lucas Canon 7.671794871794872 5.70930865541644 0.958974358974359 0.713663581927055
46 Lucie Delong 7.17948717948718 4.72509526401742 0.8974358974358975 0.5906369080021775
47 Luna Hemery 7.671794871794872 5.295590636908003 0.958974358974359 0.6619488296135003
48 Maeline Humez 7.562393162393162 5.652694610778443 0.9452991452991453 0.7065868263473054
49 Manon Cassel 7.726495726495727 5.4001088731627656 0.9658119658119658 0.6750136091453457
50 Martin Pilot 6.851282051282051 4.498639085465433 0.8564102564102564 0.5623298856831791
51 Mateo Darras 6.358974358974359 3.5710397387044095 0.7948717948717948 0.4463799673380512
52 Matheo Guerineau 7.206837606837607 5.508982035928144 0.9008547008547009 0.688622754491018
53 Matheo Normand 7.671794871794872 5.70930865541644 0.958974358974359 0.713663581927055
54 Mathilde Carlier 6.4683760683760685 2.970059880239521 0.8085470085470086 0.3712574850299401
55 Mathilde Konury 7.4393162393162395 5.199782253674469 0.9299145299145299 0.6499727817093086
56 Mathis Carlier 7.398290598290599 5.569951007076756 0.9247863247863248 0.6962438758845945
57 Mathys Calesse 7.124786324786324 4.489929232444203 0.8905982905982905 0.5612411540555253
58 Mehdi Boutchich 5.880341880341881 3.497005988023952 0.7350427350427351 0.437125748502994
59 Melanie Bouchoir 7.220512820512821 5.221556886227545 0.9025641025641026 0.6526946107784432
60 Melusine Miletti 6.140170940170941 4.25040827436037 0.7675213675213676 0.5313010342950463
61 Mickael Lenclud 2.9168141592920356 2.3645320197044337 0.36460176991150445 0.2955665024630542
62 Noah Desfachelles 5.798290598290598 3.035383777898748 0.7247863247863248 0.3794229722373435
63 Noah Halluin 3.157522123893805 1.3267651888341543 0.39469026548672564 0.16584564860426929
64 Oceane Decroix 7.124786324786324 4.010887316276538 0.8905982905982905 0.5013609145345672
65 Pablo Rodriguez 6.769230769230769 4.3810560696788245 0.8461538461538461 0.5476320087098531
66 Quentin Stautemas 6.5777777777777775 4.838323353293413 0.8222222222222222 0.6047904191616766
67 Raphael Rivaux 2.8034188034188032 1.5764833968426784 0.3504273504273504 0.1970604246053348
68 Remi Delaval 6.65982905982906 3.9629831246597713 0.8324786324786325 0.4953728905824714
69 Remi Delvalle 7.425641025641026 5.204137180185084 0.9282051282051282 0.6505171475231355
70 Remy Maeght 4.772649572649573 2.569406641262929 0.5965811965811966 0.3211758301578661
71 Romain Bruni 7.206837606837607 5.500272182906913 0.9008547008547009 0.6875340228633642
72 Romain Delrue 7.015384615384615 5.0647795318454 0.8769230769230769 0.633097441480675
73 Ronan Bourdrel 7.617094017094017 5.583015786608601 0.9521367521367521 0.6978769733260751
74 Simon Ducrocq 7.316239316239316 5.552531301034295 0.9145299145299145 0.6940664126292869
75 Solene Marien 7.671794871794872 5.7180185084376705 0.958974358974359 0.7147523135547088
76 Stefan Gaudin 4.3076923076923075 2.1774632553075666 0.5384615384615384 0.2721829069134458
77 Tanguy Delavier 6.905982905982906 4.459444746869897 0.8632478632478633 0.5574305933587371
78 Theo Duprez 6.769230769230769 4.346216657593903 0.8461538461538461 0.5432770821992379
79 Theo Justin 7.124786324786324 4.446379967338051 0.8905982905982905 0.5557974959172564
80 Theo Rouze 7.671794871794872 5.456722917800762 0.958974358974359 0.6820903647250952
81 Theo Verlet 7.617094017094017 5.565596080566141 0.9521367521367521 0.6956995100707676
82 Thomas Renard 6.714529914529915 4.010887316276538 0.8393162393162393 0.5013609145345672
83 Thomas Thevenin 5.948717948717949 3.6668481219379423 0.7435897435897436 0.4583560152422428
84 Tristan Quesson 6.208547008547009 3.5362003266194884 0.7760683760683761 0.44202504082743604
85 Tyffene Viseur 7.288888888888889 5.204137180185084 0.9111111111111111 0.6505171475231355
86 Vytto Scilironi 5.894017094017094 3.5449101796407185 0.7367521367521368 0.4431137724550898
87 Yvonnick Levis 7.17948717948718 5.517691888949374 0.8974358974358975 0.6897114861186717

File diff suppressed because one or more lines are too long

View File

@ -1,63 +0,0 @@
package AnalyseCalc;
import java.util.ArrayList;
import java.util.List;
import AnalyseCalc.Classeur2.historique;
public class AnalyseClasseur {
List<AnalyseFeuille> classeur = new ArrayList<AnalyseFeuille>();
boolean vide = true;
historique Histo = null;
String informationTriche = "";
int nombreOccurrenceIdentiqueHistorique = 0;
static String EnsembleHistoriqueDesClasseurAnalyse = "";
public AnalyseClasseur() {
}
public void addFeuille(AnalyseFeuille AFeuil, Classeur2 clas) {
classeur.add(AFeuil);
vide=false;
}
// pour les étudiants qui n'ont pas remis le bon sujet
public void addHistorique(historique histo) {
Histo = histo;
}
public List<AnalyseFeuille> getClasseur() {
return classeur;
}
public boolean isVide() {
return vide;
}
public historique getHisto() {
return Histo;
}
public String getInformationTriche() {
return informationTriche;
}
public int getNombreOccurrenceIdentiqueHistorique() {
return nombreOccurrenceIdentiqueHistorique;
}
public static String getEnsembleHistoriqueDesClasseurAnalyse() {
return EnsembleHistoriqueDesClasseurAnalyse;
}
}

View File

@ -1,674 +0,0 @@
package AnalyseCalc;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.TreeMap;
import AnalyseCalc.Classeur2.feuille;
import AnalyseCalc.Classeur2.feuille.colonne;
import AnalyseCalc.Classeur2.feuille.graphic;
import AnalyseCalc.Classeur2.feuille.ligne;
import AnalyseCalc.Classeur2.feuille.ligne.*;
import outils.*;
import outils.HTML;
public class AnalyseFeuille {
List<String> pl = new ArrayList<String>();
private double point = 0;
private double pointtotal = 0;
private double propPoint = 0.0;
private double poids = 1;
private boolean evaluer = false;
private HashMap<String,String> menu = new HashMap<String,String>();
private TreeMap<String,sousTotal> sousTotaux = new TreeMap<String,sousTotal>();
private String identifiantFeuille = "";
private boolean analyseVide = true;
private String NomFeuille = "";
//Lorsque il n'y a pas de feuille student (feuille student null)
public AnalyseFeuille(feuille feuilSujet, String id) {
identifiantFeuille=id;
}
// Comparaison entre les deux feuilles
public AnalyseFeuille(feuille feuilStudent, feuille feuilSujet, String id) throws UnsupportedEncodingException {
analyseVide=false;
identifiantFeuille=id;
NomFeuille = feuilSujet.getNomFeuille();
evaluer = Boolean.valueOf(feuilSujet.getEvaluer());
poids = Double.valueOf(feuilSujet.getPoids());
menu.put(identifiantFeuille, NomFeuille); // feuille dans le menu automatiquement
pl.add(HTML.SautLigne(identifiantFeuille));
pl.add(HTML.H1("Analyse de la feuille : " + NomFeuille.toUpperCase()));
pl.add(HTML.Paragraph_classp8(feuilSujet.getCommunication()));
if(!feuilSujet.getLink().isEmpty()) pl.add(HTML.SautPuisLien(feuilSujet.getLink(), feuilSujet.getLinktitle()));
outils o = new outils();
o.initilisePointClass();
sousTotaux.put(NomFeuille, new sousTotal(NomFeuille, o.getPointsClass(), o.getPointTotal(),identifiantFeuille));
String Tst ="";
// Nommage des cellules - titre et entete et menu automatique s'il y a le symbole
boolean flagNommageTitre=false;
for(Entry<String, String> k : feuilSujet.getNommageCellulesFeuille().entrySet()) {
if(Boolean.valueOf(k.getValue().contains(""))||Boolean.valueOf(k.getKey().contains(""))) {
if(!flagNommageTitre) {
pl.add(HTML.SautLigne(identifiantFeuille+"ValeursGlobales"));
pl.add(HTML.SautLigne());
pl.add(HTML.H1("Valeurs globales"));
pl.add(HTML.SautLigne());
pl.add(HTML.TableEnteteTableur());
flagNommageTitre=true;
menu.put(identifiantFeuille+"ValeursGlobales","Valeurs globales");
sousTotaux.put("Valeurs globales", new sousTotal("Valeurs globales", o.getPointsClass(), o.getPointTotal(),identifiantFeuille+"ValeursGlobales"));
}
String valueStudentValue = feuilStudent.getNommageCellulesFeuille().get(outils.withoutPoint(k.getKey()));
Tst = o.Compare1(valueStudentValue, k.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"Nommage : <b>" + outils.withoutPoint(k.getKey()) + "</b>","Cells" ,valueStudentValue, outils.withoutPoint(k.getValue()), niveau) );
}
}
if(sousTotaux.get("Valeurs globales")!=null) sousTotaux.get("Valeurs globales").addPointSousTotal(o.getPointsClass(), o.getPointTotal());
Tst="";
// colonne
for(Entry<Integer, colonne> k : feuilSujet.getColonnes().entrySet()) {
for(Entry<String, String> k1 : k.getValue().getPropertiesColumn().entrySet()) {
if(Boolean.valueOf(k1.getValue().contains(""))) {
String RefC = k.getValue().getRefColonne();
String RefCLettre = k.getValue().getRefColDansClasseur();
colonne colStudent = feuilStudent.retourneColonne(RefC);
if(colStudent!=null) {
String valueStudent = colStudent.getPropertiesColumn().get(k1.getKey());
Tst = o.Compare1(valueStudent, k1.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"Colonne :" + RefCLettre ,k1.getKey() ,valueStudent, outils.withoutPoint(k1.getValue()), niveau) );
}else {
Tst = o.Compare1("null", k1.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"Colonne :" + RefCLettre ,k1.getKey() ,"Colonne Student null", outils.withoutPoint(k1.getValue()), niveau) );
}
}
}
}
//comparaison Ligne, cellule
for(Entry<Integer, ligne> k : feuilSujet.getLignes().entrySet()) {
//Ajoute un titre, un sous-titre et un entete si evaluer est true à la ligne
if(Boolean.valueOf(k.getValue().getEvaluer()) || k.getValue().isSaut()) {
pl.add(HTML.SautLigne(identifiantFeuille+"Ligne : " + k.getValue().getRefLigne()));
pl.add(HTML.SautLigne());
if(!k.getValue().getTitre().isEmpty()) {
if(k.getValue().getStyletitrePrincipale().equals("H1")) pl.add(HTML.H1(k.getValue().getTitre()));
if(k.getValue().getStyletitrePrincipale().equals("H2")) pl.add(HTML.H2(k.getValue().getTitre()));
if(k.getValue().getStyletitrePrincipale().equals("H3")) pl.add(HTML.SautLigneOnduleBleu(k.getValue().getTitre()));
if(k.getValue().getStyletitrePrincipale().equals("H4")) pl.add(HTML.SautLigneTitreOnduleRouge(k.getValue().getTitre()));
}else {
pl.add(HTML.H1("Ligne : " + k.getValue().getRefLigne()));
}
pl.add(HTML.Paragraph_classp8(k.getValue().getCommunication()));
// si ce n'est pas un saut alors c'est evaluer donc entête et menu et soustotaux
if(!k.getValue().isSaut()) {
pl.add(HTML.TableEnteteTableur());
if(k.getValue().getTitre().isEmpty()) menu.put(identifiantFeuille+"Ligne : " + k.getValue().getRefLigne(),"Ligne : " + k.getValue().getRefLigne() );
if(!k.getValue().getTitre().isEmpty()) menu.put(identifiantFeuille+"Ligne : " + k.getValue().getRefLigne(),k.getValue().getTitre() );
// cloture sous total des lignes
for(Entry<String,sousTotal> st : sousTotaux.entrySet()) {
if( st.getKey().contains("Ligne") && !st.getValue().isFinish()) {
st.getValue().addPointSousTotal(o.getPointsClass(), o.getPointTotal());;
}
}
// nouveau soustotal
if(k.getValue().getTitre().isEmpty()) {
sousTotaux.put("Ligne : " + k.getValue().getRefLigne(), new sousTotal("Ligne : " + k.getValue().getRefLigne(), o.getPointsClass(), o.getPointTotal(),identifiantFeuille+"Ligne : " + k.getValue().getRefLigne()));
}else {
sousTotaux.put("Ligne : " + k.getValue().getRefLigne(), new sousTotal(k.getValue().getTitre(), o.getPointsClass(), o.getPointTotal(),identifiantFeuille+"Ligne : " + k.getValue().getRefLigne()));
}
}
}
//ligne properties
for(Entry<String, String> k1 : k.getValue().getPropertiesRow().entrySet()) {
if(Boolean.valueOf(k1.getValue().contains(""))) {
String RefL = k.getValue().getRefLigne();
ligne ligStudent = feuilStudent.retourneLigne(RefL);
String valueStudent ="null";
if(ligStudent!=null) {
valueStudent = ligStudent.getPropertiesRow().get(k1.getKey());
}
Tst = o.Compare1(valueStudent, k1.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"Ligne :" + RefL ,k1.getKey() ,valueStudent, outils.withoutPoint(k1.getValue()), niveau) );
}
}
//Cellule
for(Entry<Integer, cellule> k2 : k.getValue().getCellules().entrySet()) {
String RefL = k2.getValue().getRefLigne();
String RefC = k2.getValue().getRefColonne();
String RefCLettre = k2.getValue().getRefColDansClasseur();
//Ajoute un titre, un sous-titre et un entete si evaluer est true
if(Boolean.valueOf(k2.getValue().getEvaluer())) {
if(k2.getValue().isMenu()) {
if(k2.getValue().getTitre().isEmpty()) {
menu.put(identifiantFeuille+"Cellule "+ RefCLettre + RefL,"Cellule "+ RefCLettre + RefL);
}else {
menu.put(identifiantFeuille+"Cellule "+ RefCLettre + RefL,k2.getValue().getTitre());
}
}
pl.add(HTML.SautLigne(identifiantFeuille+"Cellule "+ RefCLettre + RefL));
pl.add(HTML.SautLigne());
if(k2.getValue().getTitre().isEmpty()) {
if(k2.getValue().getStyletitre().equals("H4")) pl.add(HTML.SautLigneTitreOnduleRouge("Cellule : " + RefCLettre + RefL));
if(k2.getValue().getStyletitre().equals("H3")) pl.add(HTML.SautLigneOnduleBleu("Cellule : " + RefCLettre + RefL));
if(k2.getValue().getStyletitre().equals("H2")) pl.add(HTML.H2("Cellule : " + RefCLettre + RefL));
if(k2.getValue().getStyletitre().equals("H1")) pl.add(HTML.H1("Cellule : " + RefCLettre + RefL));
}else {
if(k2.getValue().getStyletitre().equals("H4")) pl.add(HTML.SautLigneTitreOnduleRouge(k2.getValue().getTitre()));
if(k2.getValue().getStyletitre().equals("H3")) pl.add(HTML.SautLigneOnduleBleu(k2.getValue().getTitre()));
if(k2.getValue().getStyletitre().equals("H2")) pl.add(HTML.H2(k2.getValue().getTitre()));
if(k2.getValue().getStyletitre().equals("H1")) pl.add(HTML.H1(k2.getValue().getTitre()));
}
pl.add(HTML.TableEnteteTableur());
if(k2.getValue().getTitre().isEmpty()) {
sousTotaux.put("Cellule "+ RefCLettre + RefL, new sousTotal("Cellule "+ RefCLettre + RefL, o.getPointsClass(), o.getPointTotal(),identifiantFeuille+"Cellule "+ RefCLettre + RefL));
}else {
sousTotaux.put(k2.getValue().getTitre(), new sousTotal(k2.getValue().getTitre(), o.getPointsClass(), o.getPointTotal(),identifiantFeuille+"Cellule "+ RefCLettre + RefL));
}
}
if(k2.getValue().isSaut() && !Boolean.valueOf(k2.getValue().getEvaluer())) {
if(k2.getValue().getTitre().isEmpty()) {
if(k2.getValue().getStyletitre().equals("H4")) pl.add(HTML.SautLigneTitreOnduleRouge("Cellule : " + RefCLettre + RefL));
if(k2.getValue().getStyletitre().equals("H3")) pl.add(HTML.SautLigneOnduleBleu("Cellule : " + RefCLettre + RefL));
if(k2.getValue().getStyletitre().equals("H2")) pl.add(HTML.H2("Cellule : " + RefCLettre + RefL));
if(k2.getValue().getStyletitre().equals("H1")) pl.add(HTML.H1("Cellule : " + RefCLettre + RefL));
}else {
if(k2.getValue().getStyletitre().equals("H4")) pl.add(HTML.SautLigneTitreOnduleRouge(k2.getValue().getTitre()));
if(k2.getValue().getStyletitre().equals("H3")) pl.add(HTML.SautLigneOnduleBleu(k2.getValue().getTitre()));
if(k2.getValue().getStyletitre().equals("H2")) pl.add(HTML.H2(k2.getValue().getTitre()));
if(k2.getValue().getStyletitre().equals("H1")) pl.add(HTML.H1(k2.getValue().getTitre()));
}
}
//Propriétés de la cellule
for(Entry<String, String> k3 : k2.getValue().getPropertiesCell().entrySet()) {
if(k3.getValue()!=null) if(Boolean.valueOf(k3.getValue().contains(""))) {
cellule celStudent = feuilStudent.retourneCellule(Integer.valueOf(RefC), Integer.valueOf(RefL));
String valueStudent = "null";
if(celStudent!=null) valueStudent = celStudent.getPropertiesCell().get(k3.getKey());
Tst = o.Compare1(valueStudent, k3.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,RefCLettre+RefL ,k3.getKey() ,valueStudent, outils.withoutPoint(k3.getValue()), niveau) );
}
}
// boucle pour les validations
for(Entry<String, String> k3 : k2.getValue().getPropertiesCell().entrySet()) {
//Validation (si la cellule possède une validation de données, le NomValidation n'est pas null)
if(k3.getKey().equals("NomValidation")) {
//Ajoute un titre, un sous-titre et un entete si evaluer est true
if(Boolean.valueOf(k2.getValue().getVal().isEvaluer())||k2.getValue().isSaut()){
pl.add(HTML.SautLigne(identifiantFeuille+"Validation : " + RefCLettre + RefL));
pl.add(HTML.SautLigne());
if(k2.getValue().getVal().getStyletitre().equals("H4")) pl.add(HTML.SautLigneTitreOnduleRouge("Validation : " + RefCLettre + RefL));
if(k2.getValue().getVal().getStyletitre().equals("H3")) pl.add(HTML.SautLigneOnduleBleu("Validation : " + RefCLettre + RefL));
if(k2.getValue().getVal().getStyletitre().equals("H2")) pl.add(HTML.H2("Validation : " + RefCLettre + RefL));
if(k2.getValue().getVal().getStyletitre().equals("H1")) pl.add(HTML.H1("Validation : " + RefCLettre + RefL));
if(!k2.getValue().isSaut()) {
pl.add(HTML.TableEnteteTableur());
menu.put(identifiantFeuille+"Validation : " + RefCLettre + RefL,"Validation : " + RefCLettre + RefL);
sousTotaux.put("Validation "+ RefCLettre + RefL, new sousTotal("Validation "+ RefCLettre + RefL, o.getPointsClass(), o.getPointTotal(),identifiantFeuille+"Validation "+ RefCLettre + RefL));
}
}
for(Entry<String, String> k4 : k2.getValue().getVal().getPropertiesValidation().entrySet()) {
if(Boolean.valueOf(k4.getValue().contains(""))) {
cellule celStudent = feuilStudent.retourneCellule(Integer.valueOf(RefC), Integer.valueOf(RefL));
// test si student possède une validation pas vide
if(!celStudent.getVal().isEmpty()) {
String valueStudent = celStudent.getVal().getPropertiesValidation().get(k4.getKey());
Tst = o.Compare1(valueStudent, k4.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,RefCLettre+RefL ,k4.getKey() ,valueStudent, outils.withoutPoint(k4.getValue()), niveau) );
}
// test si student possède une validation vide
if(celStudent.getVal().isEmpty()){
Tst = o.Compare1("null", k4.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,RefCLettre+RefL ,k4.getKey() ,"null", outils.withoutPoint(k4.getValue()), niveau) );
}
}
}
}
if(sousTotaux.get("Validation "+ RefCLettre + RefL)!=null) sousTotaux.get("Validation "+ RefCLettre + RefL).addPointSousTotal(o.getPointsClass(), o.getPointTotal());
} // fin de la boucle pour les validation
if(k2.getValue().getTitre().isEmpty()) {
if(sousTotaux.get("Cellule "+ RefCLettre + RefL)!=null) sousTotaux.get("Cellule "+ RefCLettre + RefL).addPointSousTotal(o.getPointsClass(), o.getPointTotal());
}else {
if(sousTotaux.get(k2.getValue().getTitre())!=null) sousTotaux.get(k2.getValue().getTitre()).addPointSousTotal(o.getPointsClass(), o.getPointTotal());
}
}
}// Fin de la boucle de la ligne
// cloture de précendent sous total de la ligne
for(Entry<String,sousTotal> st : sousTotaux.entrySet()) {
if( st.getKey().contains("Ligne") && !st.getValue().isFinish()) {
st.getValue().addPointSousTotal(o.getPointsClass(), o.getPointTotal());;
}
}
// Les graphiques
for(Entry<Integer, graphic> k1 : feuilSujet.getGraphics().entrySet()) {
//ajoute un entête
if(Boolean.valueOf(k1.getValue().getEvaluer())){
String Titre = outils.withoutPoint(k1.getValue().getTitreGraphique());
pl.add(HTML.SautLigne(identifiantFeuille+"Graph : "+ k1.getValue().getTitreAfficherFeedBack()));
pl.add(HTML.SautLigne());
pl.add(HTML.H1("Graphique : " + k1.getValue().getTitreAfficherFeedBack() ));
if(!k1.getValue().getCommunication().isEmpty()) pl.add(HTML.Paragraph_classp8(k1.getValue().getCommunication()));
pl.add(HTML.H2("Paramètre(s) du graphique : " + k1.getValue().getTitreAfficherFeedBack()));
pl.add(HTML.TableEnteteTableur());
menu.put(identifiantFeuille+"Graph : "+ k1.getValue().getTitreAfficherFeedBack(),"Graph : "+k1.getValue().getTitreAfficherFeedBack());
sousTotaux.put("Graph : "+ k1.getValue().getTitreAfficherFeedBack(), new sousTotal("Graph : "+k1.getValue().getTitreAfficherFeedBack(), o.getPointsClass(), o.getPointTotal(),identifiantFeuille+"Graph : "+ k1.getValue().getTitreAfficherFeedBack()));
String TitreNettoyer = outils.NetTexte(Titre, "");
graphic graphicStudent = feuilStudent.retourneGraphicByName(TitreNettoyer);
//propriétés du graphique
for(Entry<String,String> k2 : k1.getValue().getPropertiesGraphic().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent =graphicStudent.getPropertiesGraphic().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#AA20FF\"><b><u>Propriété du graphique</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#AA20FF\"><b><u>Propriété du graphique</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin propriétés du graphique
//titre du graphique
for(Entry<String,String> k2 : k1.getValue().getTitre().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent = graphicStudent.getTitre().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#FF20AA\"><b><u>Titre</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#FF20AA\"><b><u>Titre</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin
//sous-titre du graphique
for(Entry<String,String> k2 : k1.getValue().getSoustitre().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent = graphicStudent.getSoustitre().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#20BB20\"><b><u>Sous-titre</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#20BB20\"><b><u>Sous-titre</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin
//aire du graphique
for(Entry<String,String> k2 : k1.getValue().getAiregraphic().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent = graphicStudent.getAiregraphic().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#20BBFF\"><b><u>Aire du graphique</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#20BBFF\"><b><u>Aire du graphique</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin
//Axe principal X
for(Entry<String,String> k2 : k1.getValue().getAxeXprincipal().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent = graphicStudent.getAxeXprincipal().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#0010EE\"><b><u>Axe principal X</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#0010EE\"><b><u>Axe principal X</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin axeX du graphique
for(Entry<String,String> k2 : k1.getValue().getAxeYprincipal().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent = graphicStudent.getAxeYprincipal().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#BB1090\"><b><u>Axe principal Y</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#BB1090\"><b><u>Axe principal Y</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin axeY du graphique
// Axe X secondaire
for(Entry<String,String> k2 : k1.getValue().getAxeXsecondaire().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent = graphicStudent.getAxeXsecondaire().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#404080\"><b><u>Axe secondaire X</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#404080\"><b><u>Axe secondaire X</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin
// axe secondaire Y
for(Entry<String,String> k2 : k1.getValue().getAxeYsecondaire().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent = graphicStudent.getAxeYsecondaire().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#800080\"><b><u>Axe secondaire Y</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#800080\"><b><u>Axe secondaire Y</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin
// series
for(Entry<String,String> k2 : k1.getValue().getSeries().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent = graphicStudent.getSeries().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#8000FF\"><b><u>Série de données</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#8000FF\"><b><u>Série de données</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin
// legend
for(Entry<String,String> k2 : k1.getValue().getLegend().entrySet()){
if(k2.getValue().contains("")) {
if(graphicStudent!=null) {
String valueStudent = graphicStudent.getLegend().get(k2.getKey());
Tst = o.Compare1(valueStudent, k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#408040\"><b><u>Legende</u></b> : </span>\r" ,k2.getKey() ,valueStudent, outils.withoutPoint(k2.getValue()), niveau) );
}else {
Tst = o.Compare1("Pas d'objet graphique", k2.getValue());
int niveau = 3;
if(Tst.contains("Correct")) niveau = 1;
if(Tst.contains("Erreur")) niveau = 2;
pl.add(HTML.TableTableur(Tst,"<span style=\"color:#408040\"><b><u>Legende</u></b> : </span>\r" ,k2.getKey() ,"Pas d'objet graphique", outils.withoutPoint(k2.getValue()), niveau) );
}
}
}//fin
if(sousTotaux.get("Graph : "+ k1.getValue().getTitreAfficherFeedBack())!=null) sousTotaux.get("Graph : "+ k1.getValue().getTitreAfficherFeedBack()).addPointSousTotal(o.getPointsClass(), o.getPointTotal());
}
}
point=o.getPointsClass();
pointtotal=o.getPointTotal();
propPoint = o.getPropClass();
sousTotaux.get(NomFeuille).addPointSousTotal(point, pointtotal);
}
public TreeMap<String, sousTotal> getSousTotaux() {
return sousTotaux;
}
public List<String> getPl() {
return pl;
}
public void setPl(List<String> pl) {
this.pl = pl;
}
public double getPoint() {
return point;
}
public void setPoint(int point) {
this.point = point;
}
public double getPointtotal() {
return pointtotal;
}
public void setPointtotal(int pointtotal) {
this.pointtotal = pointtotal;
}
public double getPropPoint() {
return propPoint;
}
public void setPropPoint(double propPoint) {
this.propPoint = propPoint;
}
public double getPoids() {
return poids;
}
public void setPoids(double poids) {
this.poids = poids;
}
public boolean isEvaluer() {
return evaluer;
}
public void setEvaluer(boolean evaluer) {
this.evaluer = evaluer;
}
public HashMap<String,String> getMenu() {
return menu;
}
public boolean isAnalyseVide() {
return analyseVide;
}
public void setAnalyseVide(boolean analyseVide) {
this.analyseVide = analyseVide;
}
public String getIdentifiantFeuille() {
return identifiantFeuille;
}
public String getNomFeuille() {
return NomFeuille;
}
}

View File

@ -2647,7 +2647,12 @@ public class Classeur2 {
if(nodeFormatsConditionnels.getAttributs().get("styleName")!=null) conditionalformat.put("styleName", nodeFormatsConditionnels.getAttributs().get("styleName"));
if(nodeFormatsConditionnels.getAttributs().get("condition")!=null) conditionalformat.put("condition", nodeFormatsConditionnels.getAttributs().get("condition"));
if(nodeFormatsConditionnels.getAttributs().get("baseCellAddress")!=null) conditionalformat.put("baseCellAddress", nodeFormatsConditionnels.getAttributs().get("baseCellAddress"));
node b = nodeFormatsConditionnels.retourneFirstEnfant("styleFormatConditionnel");
if(b!=null) {
for (Entry<String, String> k1 : b.getAttributs().entrySet()) {
styleFormatConditionnel.put(k1.getKey() , k1.getValue()) ;
}
}
}
// Chargement depuis le classeur de l'étudiant.
@ -2657,7 +2662,10 @@ public class Classeur2 {
if(condition.getAttributs().get("calcext:apply-style-name")!=null) conditionalformat.put("styleName", condition.getAttributs().get("calcext:apply-style-name"));
if(condition.getAttributs().get("calcext:value")!=null) conditionalformat.put("condition", condition.getAttributs().get("calcext:value"));
if(condition.getAttributs().get("calcext:base-cell-address")!=null) conditionalformat.put("baseCellAddress", condition.getAttributs().get("calcext:base-cell-address"));
node nodeStyle = nod.retourneFirstEnfant("style:style", "style:display-name", condition.getAttributs().get("calcext:apply-style-name"));
String styleName = conditionalformat.get("styleName").replaceAll(" ", "_20_");
node nodeStyle = nod.retourneFirstEnfant("style:style", "style:name", styleName);
if(nodeStyle!=null) {
if(nodeStyle.getAttributs().get("style:family")!=null) styleFormatConditionnel.put("styleFamily", nodeStyle.getAttributs().get("style:family"));
if(nodeStyle.getAttributs().get("style:parent-style-name")!=null) styleFormatConditionnel.put("parentStyleName", nodeStyle.getAttributs().get("style:parent-style-name"));

View File

@ -27,6 +27,11 @@ public class evaluerAttributs {
evaluerAttributLigne();
evaluerAttributCellule();
}
if(nodeSujet.getNameNode().equals("formatConditionnel")) {
evaluerAttributFormatConditionnel();
evaluerAttributStyleFormatConditionnel();
}
if(nodeSujet.getNameNode().equals("graphic")) {
evaluerAttributGraphic();
evaluerLesNodesEnfantsGraphic();
@ -92,6 +97,38 @@ public class evaluerAttributs {
}
}
/**
* Evaluer les attributs du node formatConditionnel.<br>
*/
private void evaluerAttributFormatConditionnel() {
for (Map.Entry<String, String> entry : nSujet.getAttributs().entrySet()){
if(nSujet.isAttributEvaluer(entry.getKey())) {
String valeurEtudiant = "";
if(nEtudiant!=null) valeurEtudiant=nEtudiant.getAttributs().get(entry.getKey());
nAnalyse.retourneLastEnfant("formatConditionnel").addEnfant(new outils().Compare("formatConditionnel",entry.getKey(), entry.getValue(), valeurEtudiant));
}
}
}
/**
* Evaluer les attributs du node styleFormatConditionnel.<br>
*/
private void evaluerAttributStyleFormatConditionnel() {
node styleFormatConditionnel = nSujet.retourneFirstEnfant("styleFormatConditionnel");
if(styleFormatConditionnel.isEvaluer()) {
node styleFormatConditionnelEtudiant = null;
if(nEtudiant!=null) styleFormatConditionnelEtudiant = nEtudiant.retourneFirstEnfant("styleFormatConditionnel");
for (Map.Entry<String, String> entry : styleFormatConditionnel.getAttributs().entrySet()){
if(styleFormatConditionnel.isAttributEvaluer(entry.getKey())) {
String valeurEtudiant = "";
if(styleFormatConditionnelEtudiant!=null) if(styleFormatConditionnelEtudiant.getAttributs().get(entry.getKey())!=null) valeurEtudiant = styleFormatConditionnelEtudiant.getAttributs().get(entry.getKey());
nAnalyse.retourneLastEnfant("formatConditionnel").addEnfant(new outils().Compare("formatConditionnel",entry.getKey(), entry.getValue(), valeurEtudiant ));
}
}
}
}
/**
* Evaluer les attributs du node graphic.<br>
*/

View File

@ -65,8 +65,8 @@ public class evaluerLesFichiersEtudiants implements Runnable{
commandes.message.append("<hr>");
LecturesDossiers.getEC().Initialise();
if(commandes.fichierStudentMoodle) {
LecturesDossiers.getEC().Initialise();
commandes.tousLesResultats.clear();
txt.setText("");
try {
@ -100,6 +100,7 @@ public class evaluerLesFichiersEtudiants implements Runnable{
//*****************************************
//** Nombre de fichier writer à analyser **
//*****************************************
int nbClasseur = EnsembleFichiers.getListeContentTableur().size();
String NbFichiers = String.valueOf(nbClasseur);
commandes.analyse_Nbre_Fichier_Student = nbClasseur;
@ -196,7 +197,7 @@ public class evaluerLesFichiersEtudiants implements Runnable{
System.out.println(nomEtudiant);
nodStudent.getAttributs().put("nomEtudiant", nomEtudiant);
nodStudent.saveNodeEnXMLinNewFile("nodStudent.xml", commandes.pathApp);
// nodStudent.saveNodeEnXMLinNewFile("nodStudent.xml", commandes.pathApp);
if(commandes.analyse) {
creerNodeEvaluationEtudiant ana = new creerNodeEvaluationEtudiant(nomEtudiant, i);

View File

@ -20,6 +20,7 @@ public class evaluerNodesClasseurStudent {
nodeEtudiant = nodStudent;
nAna = ana;
evaluerLesFeuilles();
evaluerLesFormatsConditionnels();
evaluerLesGraphics();
}
@ -55,6 +56,23 @@ public class evaluerNodesClasseurStudent {
}
}
/**
* evaluer les formats conditionnels.<br>
*/
private void evaluerLesFormatsConditionnels() {
for (node formatConditionnel : commandes.sujet.retourneAllEnfants("formatConditionnel")) {
if(formatConditionnel.isEvaluer()) {
node formatConditionnelEtudiant = trouveLeFormatConditionnelEtudiant(formatConditionnel.getAttributs().get("baseCellAddress"));
node anaFormatConditionnel = new node("formatConditionnel");
anaFormatConditionnel.getAttributs().put("baseCellAddress", formatConditionnel.getAttributs().get("baseCellAddress"));
nAna.addEnfant(anaFormatConditionnel);
new evaluerAttributs(formatConditionnel, formatConditionnelEtudiant , nAna);
anaFormatConditionnel.calculPoints();
}
}
}
/**
* Trouve la feuille de l'étudiant.<br>
* @param nomFeuille
@ -70,6 +88,9 @@ public class evaluerNodesClasseurStudent {
* @return
*/
private node trouveLeGraphicEtudiant(String nomObjet, String TitreGraphic, String type) {
if(TitreGraphic.indexOf("")!=-1) TitreGraphic = TitreGraphic.substring(0, TitreGraphic.indexOf(""));
if(type.indexOf("")!=-1) type = type.substring(0, type.indexOf(""));
node graph = nodeEtudiant.retourneFirstEnfant("graphic", "nomObjet", nomObjet);
if(graph==null) graph = nodeEtudiant.retourneFirstEnfant("graphic", "TitreGraphique", TitreGraphic);
if(graph==null) graph = nodeEtudiant.retourneFirstEnfant("graphic", "type", type);
@ -77,6 +98,34 @@ public class evaluerNodesClasseurStudent {
return graph;
}
/**
* Trouve le format conditionnel de l'étudiant.<br>
* @param baseCellAddress
* @return
*/
private node trouveLeFormatConditionnelEtudiant(String baseCellAddress) {
if(baseCellAddress.indexOf("")!=-1) baseCellAddress = baseCellAddress.substring(0, baseCellAddress.indexOf(""));
if(baseCellAddress.matches("[0-9]")) {
String number = baseCellAddress.replaceAll("[^0-9]+", ""); // Supprime tout sauf les chiffres
int ligneCellSujet = Integer.parseInt(number);
String name = baseCellAddress.replaceAll("[^a-zA-Z\\.]+", "");
if(nodeEtudiant!=null) {
for (node enfantsEtudiant : nodeEtudiant.retourneAllEnfants("formatConditionnel")) {
String A = enfantsEtudiant.getAttributs().get("baseCellAddress");
if(A!=null) {
if(A.equals(name+String.valueOf(ligneCellSujet)) || A.equals(name+String.valueOf(ligneCellSujet-1))
|| A.equals(name+String.valueOf(ligneCellSujet-2)) || A.equals(name+String.valueOf(ligneCellSujet+1))
|| A.equals(name+String.valueOf(ligneCellSujet+2))) {
return enfantsEtudiant;
}
}
}
}
}
return null;
}
/**
* Evaluer les colonnes les unes après les autres.<br>
* @param feuilleSujet

View File

@ -61,7 +61,7 @@ public class afficheText extends JEditorPane {
sb.append(baliseStyle.balise());
if(nodeParent!=null) sb.append("<p class=\"p1\">Parent = " + nodeParent.getNameNode() + "</p><br>");
sb.append("<hr><br><h1>Nom du nodeAC : " + nod.toString() + "</h1><br><hr>");
sb.append("<hr><br><h1>Nom du node : " + nod.toString() + "</h1><br><hr>");
//*********************************************
//** sous titre pour identifier les éléments **

View File

@ -1,103 +0,0 @@
package outils;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.DecimalFormat;
import AnalyseCalc.AnalyseClasseur;
public class notation {
private String note = "0";
private double totalpoints =0.0;
private double points =0.0;
private String proportionString = "0";
private static String noteCSV = "Nom;Note\n\r";
DecimalFormat df = new DecimalFormat("###.##");
public notation(node touslesResultats) {
for(int i = 0 ; i < AClas.getClasseur().size();i++) {
points = AClas.getClasseur().get(i).getPoint()*AClas.getClasseur().get(i).getPoids() + points;
totalpoints = AClas.getClasseur().get(i).getPointtotal()*AClas.getClasseur().get(i).getPoids() + totalpoints;
}
if(fichierCorrespondSujet && totalpoints>0 && !AClas.getHisto().isTriche() && !AClas.getHisto().isEmpty() && !AClas.getHisto().isTropCopier() && !AClas.getHisto().isTropModifications()) {
double proportion = points/totalpoints;
proportion= Math.pow(proportion, calc.commandes.analyse_progression);
proportionString = df.format(proportion*100) + "%";
note = df.format(calc.commandes.analyse_bareme*proportion);
}else {
proportionString=df.format(0.00) + "%";
note =df.format(0.00);
}
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public double getTotalpoints() {
return totalpoints;
}
public double getPoints() {
return points;
}
public void setTotalpoints(double totalpoints) {
this.totalpoints = totalpoints;
}
public void setPoints(double points) {
this.points = points;
}
public String getProportionString() {
return proportionString;
}
public String pointbareme(double prop, double bareme) {
double a = (bareme/totalpoints)*bareme;
double note = prop*a;
return df.format(note) + " / " + df.format(a);
}
public static String getNoteCSV() {
return noteCSV;
}
public static void publieNotesCSV(String patch) throws IOException {
System.getProperty("file.encoding","UTF-8");
Path outputFilePath = Paths.get(patch + "/" +"notes.csv");
BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8);
fichier.write(noteCSV);
fichier.close();
}
}

View File

@ -309,79 +309,6 @@ public class verificationFichierAnalyse {
/**
* Mise à jour du hash et du nom du fichier d'analyse.</br>
* @throws CloneNotSupportedException
* @throws IOException
*/
public void MiseAJourFichierAnalyse() throws CloneNotSupportedException, IOException {
calc.commandes.hash = String.valueOf(calc.commandes.sujet.hashCode());
boolean maj =false;
if(calc.commandes.sujet.getAttributs().get("hash")==null) {
maj=true;
}else {
if(!calc.commandes.sujet.getAttributs().get("hash").equals(calc.commandes.hash)) {
maj=true;
}
}
if(calc.commandes.sujet.getAttributs().get("analysis_filename")==null) {
maj=true;
}else {
if(!calc.commandes.sujet.getAttributs().get("analysis_filename").equals(calc.commandes.analysis_filename)) {
maj=true;
}
}
if(maj) {
int nbespace = "───────────────────────────┐".length()-calc.commandes.hash.length();
if (nbespace<0) nbespace=1;
int nbespace2 = "───────────────────────────────┐".length()-calc.commandes.analysis_filename.length();
if (nbespace2<0) nbespace2=1;
System.out.println("\t\t┌────────────────────────────────────────────────────────────────────┐");
System.out.println("\t\t│ Le hash du code de l'évaluation ou le nom du fichier d'analyse │");
System.out.println("\t\t│ a été mise à jour dans le fichier d'analyse. │");
System.out.println("\t\t│ │");
System.out.println("\t\t│ Le hash du code de l'évaluation est : " + calc.commandes.hash + new String(new char[nbespace]).replace("\0", " ") +"" );
System.out.println("\t\t│ Le nom du fichier d'analyse est : " + calc.commandes.analysis_filename + new String(new char[nbespace2]).replace("\0", " ") +"" );
System.out.println("\t\t│ │");
System.out.println("\t\t└────────────────────────────────────────────────────────────────────┘");
System.out.println();
calc.commandes.sujet.getAttributs().put("hash", calc.commandes.hash);
calc.commandes.sujet.getAttributs().put("analysis_filename", calc.commandes.nameSujet);
calc.commandes.message.append("<hr><h1>Le hash du code de l'évaluation ou le nom du fichier d'analyse</h1><hr>");
calc.commandes.message.append("<p> a été mise à jour dans le fichier d'analyse.</p>");
calc.commandes.message.append("<br>");
calc.commandes.message.append("<p> Le hash du code de l'évaluation est : " + calc.commandes.hash +"</p>");
calc.commandes.message.append("<p> Le nom du fichier d'analyse est : " + calc.commandes.analysis_filename + "</p>");
calc.commandes.message.append("<hr>");
calc.commandes.message.append("<br>");
String cheminVersFichierAnalyse = calc.commandes.PathFilenameAnalysis;
if(calc.commandes.analysis_filename.contains(".")) {
Ecriture.ecritureNodeEnXML(calc.commandes.sujet,calc.commandes.analysis_filename.substring(0, calc.commandes.nameSujet.lastIndexOf(".")),cheminVersFichierAnalyse,Ecriture.typeFichier.fichier_analyse);
}else {
Ecriture.ecritureNodeEnXML(calc.commandes.sujet,calc.commandes.analysis_filename,cheminVersFichierAnalyse,Ecriture.typeFichier.fichier_analyse);
}
}else {
System.out.println("\t\t┌─────────────────────────────────────────────────────┐");
System.out.println("\t\t│ Vérification du hash et du nom du fichier correct. │");
System.out.println("\t\t└─────────────────────────────────────────────────────┘");
System.out.println();
calc.commandes.message.append("<p>**********************************************************</p>");
calc.commandes.message.append("<p> Vérification du hash et du nom du fichier correct.</p>");
calc.commandes.message.append("<p>**********************************************************</p>");
}
}
/**
*
* @param nomFichier

View File

@ -27,6 +27,9 @@ public class EnsembleFichiers {
ListeNomFichierFeedBack.clear();
ListeFichierods.clear();
ListeObjetGraphicTableur.clear();
ListeContentTableur.clear();
ListeFichierods.clear();
ListeHistoriqueTableur.clear();
}
/**

File diff suppressed because one or more lines are too long