/* Manipulations sur une classe parallelepipede */
/* rectangle a faces orthogonales aux axes      */

public class ManipulationCube {

/* Type agrege de stockage des informations     */
/* relatives a une position en trois dimensions */

  static class Position3D {
    double x = 0.0;
    double y = 0.0;
    double z = 0.0; };

/* Type agrege de stockage des informations     */
/* relatives a un parallelepipede rectangle     */
/* a faces orthogonales aux axes                */

  static class Parallelepipede {
    Position3D min = new Position3D();
    Position3D max = new Position3D(); }

/* Programme principal                          */

  public static void main(String [] args) {
    Parallelepipede cb = new Parallelepipede();
    double volume;
    Ecran.afficherln("SVP, x, y & z du sommet min?");
    cb.min.x = Clavier.saisirDouble();
    cb.min.y = Clavier.saisirDouble();
    cb.min.z = Clavier.saisirDouble();
    Ecran.afficherln("SVP, x, y & z du sommet max?");
    cb.max.x = Clavier.saisirDouble();
    cb.max.y = Clavier.saisirDouble();
    cb.max.z = Clavier.saisirDouble();
    volume = (cb.max.x-cb.min.x)*
             (cb.max.y-cb.min.y)*
             (cb.max.z-cb.min.z);
    Ecran.afficherln("Volume: ",volume);
  }
}