From 914adeebbcecc98dacabfe2e6f20326d883af4f9 Mon Sep 17 00:00:00 2001 From: rick Date: Sat, 6 Mar 2021 19:02:54 +0100 Subject: [PATCH] Ajout 2e partie (marche pas) --- jour02/Box.java | 32 ++++++++++++++++++++++ jour02/Jour2.java | 69 +++++++++++++++++------------------------------ jour02/Main.java | 2 +- 3 files changed, 57 insertions(+), 46 deletions(-) diff --git a/jour02/Box.java b/jour02/Box.java index b90dcc9..93de658 100644 --- a/jour02/Box.java +++ b/jour02/Box.java @@ -1,17 +1,35 @@ public class Box { private int l, w, h; + /** + * Constructeur de boite + * + * @param l longueur + * @param w largeur + * @param h hauteur + */ public Box (int l, int w, int h) { this.l = l; this.w = w; this.h = h; } + /** + * Calcule la surface de la boite. + * + * @return la surface de la boite + */ public int getSurface() { return 2*(this.l*this.w + this.w*this.h + this.h*this.l); } + /** + * Trouve et renvoi la plus petite surface de la boite + * + * @return la plus petite surface de la boite + */ public int areaSmallSurface() { + // pour faire + jolie int wl = this.w * this.l; int wh = this.w * this.h; int lh = this.l * this.h; @@ -23,4 +41,18 @@ public class Box { return ret; } + + public int calculateRibbon() { + int wl = 2 * (this.w + this.l); + int wh = 2 * (this.w + this.h); + int lh = 2 * (this.h + this.l); + + int ret = wl >= wh ? wh : wl; + + if (ret > lh) + ret = lh; + + ret += this.w * this.l * this.h; + return ret; + } } diff --git a/jour02/Jour2.java b/jour02/Jour2.java index 7a757bf..3769397 100644 --- a/jour02/Jour2.java +++ b/jour02/Jour2.java @@ -1,12 +1,9 @@ import java.util.Scanner; import java.io.FileInputStream; -import java.io.RandomAccessFile; import java.util.ArrayList; public class Jour2 { private String filename; - private FileInputStream fis; - private Scanner sc; private ArrayList listBox; public Jour2(String filename) { @@ -14,10 +11,14 @@ public class Jour2 { this.listBox = new ArrayList(); } - public void premPartie() { - int result = 0, x, y, z; - this.loadFile(); + /** + * Charge dans l’attribut listBox les boites contenues dans le fichier. + */ + private void loadFileArrayList() { + int x, y, z; try { + FileInputStream fis = new FileInputStream(filename); + Scanner sc = new Scanner(fis); String line; while (sc.hasNextLine()) { line = sc.nextLine(); @@ -27,53 +28,31 @@ public class Jour2 { z = Integer.parseInt(tokens[2]); this.listBox.add(new Box(x, y, z)); } - - for (int i = 0; i < this.listBox.size(); i++) { - result += this.listBox.get(i).getSurface(); - result += this.listBox.get(i).areaSmallSurface(); - } + sc.close(); + fis.close(); } catch (Exception e) { System.err.println("Erreur !!"); e.printStackTrace(); } + } - this.unloadFile(); + public void premPartie() { + if (this.listBox.isEmpty()) + this.loadFileArrayList(); + int result = 0; + for (int i = 0; i < this.listBox.size(); i++) { + result += this.listBox.get(i).getSurface(); + result += this.listBox.get(i).areaSmallSurface(); + } System.out.println("Il faut " + result + " pieds de papiers cadeaux."); } public void deuxPartie() { - this.loadFile(); - try { - //while (sc.hasNextLine()) { - // - //} - - } catch (Exception e) { - System.err.println("Erreur !!"); - e.printStackTrace(); - } - this.unloadFile(); - } - - private void loadFile() { - try { - this.fis = new FileInputStream(filename); - this.sc = new Scanner(fis); - } catch (Exception e) { - System.err.println("Erreur rencontrée lors de" - + "l’ouverture du fichier."); - e.printStackTrace(); - } - } - - private void unloadFile() { - try { - this.sc.close(); - this.fis.close(); - } catch (Exception e) { - System.err.println("Erreur rencontrée lors de la " - + "fermeture du fichier."); - e.printStackTrace(); - } + if (this.listBox.isEmpty()) + this.loadFileArrayList(); + int result = 0; + for (int i = 0; i < this.listBox.size(); i++) + result += this.listBox.get(i).calculateRibbon(); + System.out.println("Il faut " + result + " pieds de rubans."); } } diff --git a/jour02/Main.java b/jour02/Main.java index 8793816..b9098db 100644 --- a/jour02/Main.java +++ b/jour02/Main.java @@ -4,6 +4,6 @@ public class Main { System.out.println("Exécution de la première partie…"); j.premPartie(); System.out.println("Exécution de la deuxième partie…"); - //j.deuxPartie(); + j.deuxPartie(); } }