Commit 88514699d32296c1f6c4d481913a26e63e60d2d5
1 parent
f996eddc
update rapport
Showing
1 changed file
with
79 additions
and
105 deletions
Show diff stats
rapport_finale.md
1 | -# RAPPORT FINALE | 1 | +# RAPPORT FINAL |
2 | 2 | ||
3 | > ANDJEMBE Maksoudath, TANIEL Rémi | 3 | > ANDJEMBE Maksoudath, TANIEL Rémi |
4 | 4 | ||
5 | Le but du projet est de réaliser un tableur "basique" mais facilement | 5 | Le but du projet est de réaliser un tableur "basique" mais facilement |
6 | -extensible, l'application sera divisée en 2 parties : | ||
7 | -* le kernel | 6 | +extensible, l'application sera donc divisée en 2 parties : |
7 | +* le coeur (ou kernel) | ||
8 | * la partie graphique | 8 | * la partie graphique |
9 | 9 | ||
10 | -Le kernel s'occupera de toutes les opérations de notre grid, les cases | ||
11 | -ne pourront contenir que des réels ou des formules(opération binaire ou | ||
12 | -des fonctions acceptant des plages de cases). | 10 | +Le coeur de l'application s'occupera de toutes les opérations de notre grilles, |
11 | +pour simplifier le problème les cases ne pourront contenir que des réels ou des | ||
12 | +formules(opération binaire ou des fonctions acceptant des plages de cases | ||
13 | +comme une moyenne ou une somme). | ||
13 | 14 | ||
14 | ## 1. ANALYSE ET CONCEPTION | 15 | ## 1. ANALYSE ET CONCEPTION |
15 | 16 | ||
@@ -21,7 +22,6 @@ abstraites sont en italique : | @@ -21,7 +22,6 @@ abstraites sont en italique : | ||
21 | 22 | ||
22 | ![UML](rapport_image/uml.png) | 23 | ![UML](rapport_image/uml.png) |
23 | 24 | ||
24 | - | ||
25 | ### PSEUDO-JAVA CREATION GRILLE,CASES | 25 | ### PSEUDO-JAVA CREATION GRILLE,CASES |
26 | 26 | ||
27 | Voici un exemple de création d'une grid et de l'ajout / modification / | 27 | Voici un exemple de création d'une grid et de l'ajout / modification / |
@@ -65,7 +65,7 @@ class Application { | @@ -65,7 +65,7 @@ class Application { | ||
65 | ### CHOIX STRUCTURE DE DONNÉES | 65 | ### CHOIX STRUCTURE DE DONNÉES |
66 | 66 | ||
67 | Nous devons choisir une structure de donnée pour stocker les cases dans | 67 | Nous devons choisir une structure de donnée pour stocker les cases dans |
68 | -notre grid, nous savons déjà que nous allons utiliser ne collection | 68 | +notre grille, nous savons déjà que nous allons utiliser une collection |
69 | pour les stocker,voici celles que nous connaissons: | 69 | pour les stocker,voici celles que nous connaissons: |
70 | - des tableaux | 70 | - des tableaux |
71 | - des listes | 71 | - des listes |
@@ -77,23 +77,22 @@ pour stocker les cases de notre grid : | @@ -77,23 +77,22 @@ pour stocker les cases de notre grid : | ||
77 | * Pour rechercher une case et, effectuer des opérations dessus ce sera | 77 | * Pour rechercher une case et, effectuer des opérations dessus ce sera |
78 | plus facile, la clé de la Map sera une chaine de caractère (String) qui | 78 | plus facile, la clé de la Map sera une chaine de caractère (String) qui |
79 | représente la coordonnée de cette case (c'est-à-dire la concaténation | 79 | représente la coordonnée de cette case (c'est-à-dire la concaténation |
80 | -du nom de ligne et de l'indice de la colonne, exemple "A1", "B9", etc...) | 80 | +du nom de la ligne et de l'indice de la colonne, exemple : "A1", "B9", etc...) |
81 | 81 | ||
82 | -Une case peut etre utilisée dans plusieurs autres cases, on ne sait | 82 | +Une case peut etre utilisée dans plusieurs autres cases, on ne connait |
83 | pas le nombre d'autres cases où elle sera utilisée, on stockera donc | 83 | pas le nombre d'autres cases où elle sera utilisée, on stockera donc |
84 | -cette donée dans une `ArrayList` de `Case`. | 84 | +cette donnée dans une `ArrayList<Case>`. |
85 | 85 | ||
86 | -Certaines fonctions (`Moyenne`, `Somme`) utilise également une plage de case, pour stocker ces cases, | ||
87 | -nous allons également une `ArrayList` de `Case`. | 86 | +Certaines fonctions (`Average`, `Sum`) utilise également une plage de case, |
87 | +pour stocker ces cases, nous allons également une `ArrayList<Case>`. | ||
88 | 88 | ||
89 | ### METHODES ESSENTIELLES EN PSEUDO-JAVA | 89 | ### METHODES ESSENTIELLES EN PSEUDO-JAVA |
90 | 90 | ||
91 | -#### 1. Methode getValeur | 91 | +#### 1. Methode getValue |
92 | 92 | ||
93 | Cette méthode retourne la valeur d'une case se trouvant dans une grille grâce aux coordonnées de la case. | 93 | Cette méthode retourne la valeur d'une case se trouvant dans une grille grâce aux coordonnées de la case. |
94 | -Elle utilise la méthode getCell qui permet d'accet à une case qui existe et dans le contraire lève une exeption. | 94 | +Elle utilise la méthode getCell qui permet d'accéder à une case qui existe et qui dans le cas contraire lève une exeption. |
95 | ```java | 95 | ```java |
96 | - | ||
97 | class Grid { | 96 | class Grid { |
98 | Map<String, Cell> cells = new HashMap<>(); | 97 | Map<String, Cell> cells = new HashMap<>(); |
99 | 98 | ||
@@ -102,7 +101,6 @@ class Grid { | @@ -102,7 +101,6 @@ class Grid { | ||
102 | } | 101 | } |
103 | } | 102 | } |
104 | 103 | ||
105 | - | ||
106 | class Cell { | 104 | class Cell { |
107 | String column; | 105 | String column; |
108 | int line; | 106 | int line; |
@@ -112,17 +110,14 @@ class Cell { | @@ -112,17 +110,14 @@ class Cell { | ||
112 | return value; | 110 | return value; |
113 | } | 111 | } |
114 | } | 112 | } |
115 | - | ||
116 | ``` | 113 | ``` |
117 | 114 | ||
115 | +#### 2. Methode getFormulaAsString | ||
118 | 116 | ||
119 | -#### 2. Methode getFormuleAsString (acceder au contenu) | ||
120 | - | ||
121 | -Cette méthode permet de retourner le contenu d'une case. Si elle contient une formule, on retourne la formule simple et dans le cas contraire son nom | ||
122 | -pou dire qu'elle ne contient pas de formule mais une valeur. | 117 | +Cette méthode permet de retourner le contenu d'une case. Si elle contient une formule, |
118 | +on retourne la formule simple et dans le cas contraire ses coordonnées. | ||
123 | 119 | ||
124 | ```java | 120 | ```java |
125 | - | ||
126 | class Grid { | 121 | class Grid { |
127 | Map<String, Cell> cells = new HashMap<>(); | 122 | Map<String, Cell> cells = new HashMap<>(); |
128 | 123 | ||
@@ -131,7 +126,6 @@ class Grid { | @@ -131,7 +126,6 @@ class Grid { | ||
131 | } | 126 | } |
132 | } | 127 | } |
133 | 128 | ||
134 | - | ||
135 | class Cell { | 129 | class Cell { |
136 | String column; | 130 | String column; |
137 | int line; | 131 | int line; |
@@ -146,9 +140,12 @@ class Cell { | @@ -146,9 +140,12 @@ class Cell { | ||
146 | } | 140 | } |
147 | } | 141 | } |
148 | ``` | 142 | ``` |
143 | + | ||
149 | **Exemple pour Addition** (Opération Binaire) | 144 | **Exemple pour Addition** (Opération Binaire) |
150 | 145 | ||
151 | -La classe BinaryOperation implémente la methode toString() en, récuperant l'opérateur qui est définit dans la méthode getOperator() de chaque classe qui hérite d'elle. | 146 | +La classe `BinaryOperation` implémente la methode `toString()` en récuperant l'opérateur qui est définit dans la |
147 | +méthode `getOperator()` défini dans ses classes filles. | ||
148 | + | ||
152 | ```java | 149 | ```java |
153 | class BinaryOperation { | 150 | class BinaryOperation { |
154 | Cell leftCell; | 151 | Cell leftCell; |
@@ -164,13 +161,15 @@ class Addition { | @@ -164,13 +161,15 @@ class Addition { | ||
164 | return "+"; | 161 | return "+"; |
165 | } | 162 | } |
166 | } | 163 | } |
167 | - | ||
168 | ``` | 164 | ``` |
169 | 165 | ||
170 | - | ||
171 | #### 3. Methode getDevelopedFormula | 166 | #### 3. Methode getDevelopedFormula |
172 | 167 | ||
173 | -Cette méthode renvoie la formule dévéloppée d'une case. | 168 | +Cette méthode renvoie la formule dévéloppée d'une case, c'est à dire suivant les cas : |
169 | +- Case avec une valeur : ses coordonnées (exemple: A1) | ||
170 | +- Case avec une formule "simple" : la valeur de la case (exemple: SUM(A1,A2,A3)) | ||
171 | +- Case avec une formule "complexe" : la valeur de la case et de ses cases utilisées (exemple: SUM(B1,(B1+B2),AVERAGE(C1,C2,C3))) | ||
172 | + | ||
174 | ```java | 173 | ```java |
175 | class Grid{ | 174 | class Grid{ |
176 | Map<String, Cell> cells = new HashMap<>(); | 175 | Map<String, Cell> cells = new HashMap<>(); |
@@ -209,19 +208,19 @@ class Average { | @@ -209,19 +208,19 @@ class Average { | ||
209 | 208 | ||
210 | ``` | 209 | ``` |
211 | 210 | ||
211 | +#### 4. Methode eval | ||
212 | 212 | ||
213 | -#### 4. Methode eval() | ||
214 | - | ||
215 | -Cette méthode permet de retourner le résultat d'un calacul avec des opérations binaires ou des fonctions. | 213 | +Cette méthode permet de retourner le résultat d'un calcul avec des opérations binaires ou des fonctions. |
216 | 214 | ||
217 | -##### Opération binaires | 215 | +##### Opération Binaire |
218 | 216 | ||
219 | class BinaryOperation { | 217 | class BinaryOperation { |
220 | Cell leftCell; | 218 | Cell leftCell; |
221 | Cell rightCell; | 219 | Cell rightCell; |
222 | 220 | ||
223 | } | 221 | } |
224 | -Les classes Addition,Multiplication,Substraction et Division héritent de la classe BinaryOpération et utilisent donc ses attributs leftCell et rightCell. | 222 | +Les classes `Addition`, `Multiplication`, `Subtraction` et `Division` héritent de la classe `BinaryOperation` et utilisent |
223 | +donc ses getters associés à `leftCell` et `rightCell`. | ||
225 | 224 | ||
226 | - Dans Addition : | 225 | - Dans Addition : |
227 | 226 | ||
@@ -229,7 +228,7 @@ Les classes Addition,Multiplication,Substraction et Division héritent de la cla | @@ -229,7 +228,7 @@ Les classes Addition,Multiplication,Substraction et Division héritent de la cla | ||
229 | class Addition { | 228 | class Addition { |
230 | 229 | ||
231 | double eval() { | 230 | double eval() { |
232 | - return leftCell.getValue() + rightCell.getValue(); | 231 | + return getLeftCell().getValue() + getRightCell().getValue(); |
233 | } | 232 | } |
234 | } | 233 | } |
235 | 234 | ||
@@ -240,21 +239,19 @@ class Addition { | @@ -240,21 +239,19 @@ class Addition { | ||
240 | ```java | 239 | ```java |
241 | class Multiplication { | 240 | class Multiplication { |
242 | 241 | ||
243 | - | ||
244 | double eval() { | 242 | double eval() { |
245 | - return leftCell.getValue() * rightCell.getValue(); | 243 | + return getLeftCell().getValue() * getRightCell().getValue(); |
246 | } | 244 | } |
247 | } | 245 | } |
248 | ``` | 246 | ``` |
249 | 247 | ||
250 | - | ||
251 | - Dans Soustraction : | 248 | - Dans Soustraction : |
252 | 249 | ||
253 | ```java | 250 | ```java |
254 | -class Substraction { | 251 | +class Subtraction { |
255 | 252 | ||
256 | double eval() { | 253 | double eval() { |
257 | - return leftCell.getValue() - rightCell.getValue(); | 254 | + return getLeftCell().getValue() - getRightCell().getValue(); |
258 | } | 255 | } |
259 | } | 256 | } |
260 | 257 | ||
@@ -265,12 +262,8 @@ class Substraction { | @@ -265,12 +262,8 @@ class Substraction { | ||
265 | ```java | 262 | ```java |
266 | class Division { | 263 | class Division { |
267 | 264 | ||
268 | - | ||
269 | double eval() { | 265 | double eval() { |
270 | - if (droite.getValue() != 0) | ||
271 | - return gauche.getValue() / droite.getValue(); | ||
272 | - else | ||
273 | - lève une exception | 266 | + return getLeftCell().getValue() / getRightCell().getValue(); |
274 | } | 267 | } |
275 | } | 268 | } |
276 | 269 | ||
@@ -279,10 +272,8 @@ class Division { | @@ -279,10 +272,8 @@ class Division { | ||
279 | 272 | ||
280 | class Function { | 273 | class Function { |
281 | List<Cell> listCells; | 274 | List<Cell> listCells; |
282 | - | ||
283 | } | 275 | } |
284 | -Les classes Average et Sum héritent de la classe BinaryOpération et utilisent donc son attribut listCells. | ||
285 | - | 276 | +Les classes `Average` et `Sum` héritent de la classe `Function` et utilisent donc le getter associé à `listCells`. |
286 | 277 | ||
287 | - Dans Moyenne : | 278 | - Dans Moyenne : |
288 | 279 | ||
@@ -291,13 +282,12 @@ class Average { | @@ -291,13 +282,12 @@ class Average { | ||
291 | 282 | ||
292 | double eval() { | 283 | double eval() { |
293 | double val=0; | 284 | double val=0; |
294 | - | ||
295 | if (listCases.size() != 0) | 285 | if (listCases.size() != 0) |
296 | - for(int i=0; i<listCells.size(); i++) | ||
297 | - val += listCells.get(i).getValue(); | ||
298 | - return val / listCells.size(); | 286 | + for(Cell c : getUtilisedCells()) |
287 | + val += c.getValue(); | ||
288 | + return val / getUtilisedCells().size(); | ||
299 | else | 289 | else |
300 | - lève une exception | 290 | + leve une exception |
301 | } | 291 | } |
302 | } | 292 | } |
303 | 293 | ||
@@ -309,12 +299,9 @@ class Sum { | @@ -309,12 +299,9 @@ class Sum { | ||
309 | 299 | ||
310 | double eval() { | 300 | double eval() { |
311 | double val=0; | 301 | double val=0; |
312 | - if (listCases.size() != 0) | ||
313 | - for(int i=0; i<listCells.size(); i++) | ||
314 | - val += listCells.get(i).getValue(); | ||
315 | - return val; | ||
316 | - else | ||
317 | - lève une exception | 302 | + for(Cell c : getUtilisedCells()) |
303 | + val += c.getValue(); | ||
304 | + return val; | ||
318 | } | 305 | } |
319 | } | 306 | } |
320 | 307 | ||
@@ -322,14 +309,16 @@ class Sum { | @@ -322,14 +309,16 @@ class Sum { | ||
322 | 309 | ||
323 | #### 5. Methode setValue | 310 | #### 5. Methode setValue |
324 | 311 | ||
325 | -Lorsque l'on modifie une valeur d'une case, on met à jour la valeur des cases qui utilisent la case. | 312 | +Nous différencions une valeur fixe et une formule quand nous souhaitons une cellule. |
313 | +De plus, si la cellule est utilisée dans une autre, nous propageons la nouvelle valeur | ||
314 | +pour modifier la valeur des cellules en conséquence. | ||
326 | 315 | ||
327 | ```java | 316 | ```java |
328 | class Grid { | 317 | class Grid { |
329 | Map<String, Cell> cells = new HashMap<>(); | 318 | Map<String, Cell> cells = new HashMap<>(); |
330 | 319 | ||
331 | - void setValue(String column, int line, double value) { | ||
332 | - this.getCell(column, line).setValue(value); | 320 | + void setValue(String column, int line, double v) { |
321 | + this.getCell(column, line).setValue(v); | ||
333 | } | 322 | } |
334 | } | 323 | } |
335 | 324 | ||
@@ -340,30 +329,28 @@ class Cell { | @@ -340,30 +329,28 @@ class Cell { | ||
340 | Formula formula; | 329 | Formula formula; |
341 | List<Cell> usedIn = new ArrayList<Cell>(); | 330 | List<Cell> usedIn = new ArrayList<Cell>(); |
342 | 331 | ||
343 | - void setValue(double valeur) { | ||
344 | - value = valeur; | ||
345 | - for(int i=0; i<usedIn.size(); i++) | ||
346 | - usedIn.get(i).updateValue(); | 332 | + void setValue(double v) { |
333 | + value = v; | ||
334 | + for(Cell c : usedIn) | ||
335 | + c.updateValue(); | ||
347 | } | 336 | } |
348 | } | 337 | } |
349 | - | ||
350 | ``` | 338 | ``` |
351 | 339 | ||
352 | - | ||
353 | #### 5. Methode setFormula | 340 | #### 5. Methode setFormula |
354 | 341 | ||
355 | -Cette méthode assigne une formule à une case en étant sûre qu'un cycle n'est pas créée. | 342 | +Cette méthode assigne une formule à une case en étant sûre qu'un cycle n'est pas créée, |
343 | +une exception est lévée dans le cas où un cycle est crée. | ||
344 | + | ||
356 | ```java | 345 | ```java |
357 | class Grid { | 346 | class Grid { |
358 | Map<String, Cell> cases = new HashMap<>(); | 347 | Map<String, Cell> cases = new HashMap<>(); |
359 | 348 | ||
360 | void setFormula(String column, int line, Formula formula) { | 349 | void setFormula(String column, int line, Formula formula) { |
361 | - String code = colonne + ligne; | ||
362 | - this.getCell(column, line).setFormula(formula); | 350 | + this.getCell(column, line).setFormula(formula); |
363 | } | 351 | } |
364 | } | 352 | } |
365 | 353 | ||
366 | - | ||
367 | class Cell { | 354 | class Cell { |
368 | String column; | 355 | String column; |
369 | int line; | 356 | int line; |
@@ -379,16 +366,17 @@ class Cell { | @@ -379,16 +366,17 @@ class Cell { | ||
379 | if (!formula.createCycle(this)) | 366 | if (!formula.createCycle(this)) |
380 | formule = formula; | 367 | formule = formula; |
381 | updateValue(); | 368 | updateValue(); |
382 | - for(int i=0; i<usedIn.size(); i++) | ||
383 | - usedIn.get(i).updateValue(); | 369 | + for(Cell c : usedIn) |
370 | + c.updateValue(); | ||
384 | else | 371 | else |
385 | - lève une exception | 372 | + leve une exception |
386 | } | 373 | } |
387 | } | 374 | } |
388 | ``` | 375 | ``` |
389 | #### 5. Methode createCycle | 376 | #### 5. Methode createCycle |
390 | 377 | ||
391 | -Cette méthode vérifie si on créée un cycle direct ou indirece.La façon de la définir est differente si on a une opération binaire ou une focntion. | 378 | +Cette méthode vérifie si on crée un cycle direct ou indirect. La façon de la définir est différente |
379 | +si on a une opération binaire ou une fonction. | ||
392 | 380 | ||
393 | ##### Opération binaire | 381 | ##### Opération binaire |
394 | 382 | ||
@@ -398,20 +386,11 @@ class BinaryOperation { | @@ -398,20 +386,11 @@ class BinaryOperation { | ||
398 | Cell rightCell; | 386 | Cell rightCell; |
399 | 387 | ||
400 | boolean createCycle(Cell cell) { | 388 | boolean createCycle(Cell cell) { |
401 | - Si la case gauche ne contient pas de formule et la case de droite contient une | ||
402 | - rechercher si la case est dans la formule de la case de droite | ||
403 | - | ||
404 | - Si la case gauche contient une formule et la case de droite n'en contient pas | ||
405 | - rechercher si la case est dans la formule de la case de gauche | ||
406 | - | ||
407 | - Si la case gauche et la droite contiennent des formules | ||
408 | - rechercher si la case est dans les deux formule | ||
409 | - | ||
410 | - Si les deux cases n'ont pas de formules | ||
411 | - rechercher si la case est égale à case gauche ou droite | 389 | + Si la case gauche contient une formule, voir si on crée un cycle avec la fonction |
390 | + Sinon si la case droite en contient une, voir si on crée un cycle avec | ||
391 | + Sinon vérifier que la case à droite et à gauche sont égales avec celle donnée en paramètre | ||
412 | } | 392 | } |
413 | } | 393 | } |
414 | - | ||
415 | ``` | 394 | ``` |
416 | 395 | ||
417 | ##### Fonction | 396 | ##### Fonction |
@@ -421,9 +400,8 @@ class Function { | @@ -421,9 +400,8 @@ class Function { | ||
421 | List<Cell> listCells; | 400 | List<Cell> listCells; |
422 | 401 | ||
423 | boolean creerCycle(Cell cell) { | 402 | boolean creerCycle(Cell cell) { |
424 | - | ||
425 | Si la case n'est pas dans listCells | 403 | Si la case n'est pas dans listCells |
426 | - Pour toute les cases dans listCells qui contiennent des formules, regarder si la case est dans la formule | 404 | + Sinon pour toute les cases dans listCells qui contiennent des formules, regarder si on crée un cycle avec |
427 | } | 405 | } |
428 | } | 406 | } |
429 | 407 | ||
@@ -437,48 +415,44 @@ que nous allons programmé dans notre application, voici quelques | @@ -437,48 +415,44 @@ que nous allons programmé dans notre application, voici quelques | ||
437 | exemples : | 415 | exemples : |
438 | 416 | ||
439 | - Création d'une case avec une valeur fixe | 417 | - Création d'une case avec une valeur fixe |
440 | -- Création d'une case avec une formule d' `Opération binaire` et une | ||
441 | -fonction comme `Moyenne` | 418 | +- Création d'une case avec une formule d'opération binaire et une |
419 | +fonction comme une moyenne | ||
442 | - Modification d'une case avec une valeur sans qu'elle soit utilisée dans | 420 | - Modification d'une case avec une valeur sans qu'elle soit utilisée dans |
443 | une autre case | 421 | une autre case |
444 | - Modification d'une case avec une valeur utilisée dans une autre case | 422 | - Modification d'une case avec une valeur utilisée dans une autre case |
445 | - Vérification qu'une erreur se lève lors de la création des 2 types | 423 | - Vérification qu'une erreur se lève lors de la création des 2 types |
446 | de cycles (direct et indirect) | 424 | de cycles (direct et indirect) |
447 | - Renvoie de la formule dévéloppée d'une case avec une formule assez compliqué | 425 | - Renvoie de la formule dévéloppée d'une case avec une formule assez compliqué |
426 | +- Sauvegarde d'une grille | ||
448 | 427 | ||
449 | ## 2. STRUCTURE DU PROJET | 428 | ## 2. STRUCTURE DU PROJET |
450 | 429 | ||
451 | - | ||
452 | -### PACKAGES,CLASSES,FICHIERS DE DONNÉES | 430 | +### PACKAGES, CLASSES, FICHIERS DE DONNÉES |
453 | 431 | ||
454 | L'implémentation du projet peut se résumer comme suit : | 432 | L'implémentation du projet peut se résumer comme suit : |
455 | 433 | ||
456 | -![PACKAGE](rapport_image/package.png) | ||
457 | - | 434 | +![PACKAGE](package.png) |
458 | 435 | ||
459 | -Le schéma ci-dessus nous montre que, l'implémentation est composé de 5 package (representant 5 repertoires) contenant des classes ( chaque classe est un fichier d'extension java). | 436 | +Le schéma ci-dessus nous montre que, l'implémentation est composé de 5 package (representant 5 repertoires) contenant des |
437 | +classes (chaque classe est un fichier d'extension java). | ||
460 | 438 | ||
461 | ### MODES D'UTILISATION | 439 | ### MODES D'UTILISATION |
462 | 440 | ||
463 | Concernant les commandes de compilation et d'exécution, sous des logiciels comme Eclipse ou IntelliJ par exemple, juste un clique bouton suffit. | 441 | Concernant les commandes de compilation et d'exécution, sous des logiciels comme Eclipse ou IntelliJ par exemple, juste un clique bouton suffit. |
464 | - | ||
465 | -Par contre, dans le cas contraire, il faut se placer dans à la raicne du repertoire contenant les fichiers et lancer les commandes suivantes : | 442 | +Par contre, dans le cas contraire, il faut se placer dans à la racine du répertoire contenant les fichiers et lancer les commandes suivantes : |
466 | 443 | ||
467 | **Commande de compilation**: | 444 | **Commande de compilation**: |
468 | 445 | ||
469 | -mkdir -p bin|find src -not \( -path src/kernel/test -prune \) -name \*.java|xargs -i javac -d bin {} -cp src/ | 446 | +find src -not \( -path src/kernel/test -prune \) -name \*.java|xargs -i javac -d bin {} -cp src/ |
470 | 447 | ||
471 | **Commande d'exécution**: | 448 | **Commande d'exécution**: |
472 | 449 | ||
473 | -**java -cp bin app.Menu** pour tester les possibilités qu'offre une grille | ||
474 | -ou **java -cp bin ihm.TablooProto** pour lancer l'interface graphique de la grille. | ||
475 | - | ||
476 | -Si l'on ne veut pas saisir ces commandes, on peut directement utiliser les fichiers bash exécutable **appbash** ou **tablobash** respectivement pour acceder au menu | ||
477 | -ou à l'interface grapphique en faisant **./appbash** ou **./tablobash**. | 450 | +java -cp bin app.Menu |
451 | +java -cp bin ihm.TablooProto | ||
478 | 452 | ||
479 | ## 3. BILAN | 453 | ## 3. BILAN |
480 | 454 | ||
481 | -Au cours de ce projet les actions suivantes ont été faites : | 455 | +Au cours de ce projet, voici ce que nous avons réalisé : |
482 | 456 | ||
483 | ### Le noyeau | 457 | ### Le noyeau |
484 | 458 |