public class Person {
  /** Attributes */
  private String nom;
  private int age;
  private double taille;
  private double poids;

 /**
   * Un constructeur
   *creation d'un objet Person
   */
 public Person()
     {
       
      }  

/**
   * Un constructeur
   *
   * @param nom le nom de la personne
   * @param age  l'age de la personne
   * @param taille la taille de la personne
   * @param poids  le poids de la personne
   *
   */
  public Person( String nom, int age, double taille, double poids)
     {
       this.nom = nom;
       this.age = age;
       this.taille = taille;
       this.poids = poids ;
      }

 /**
   * Permet de modifier la valeur de l'attribut nom
   *
   * @param nom le nouveau nom de la personne
   */
 public void setNom ( String nom ){
    this.nom = nom ;
  }
  /**
   * Permet de connaitre la valeur de l'attribut nom
   *
   * @return String le nom de la personne
   */
  public String getNom ( ) {
     return this.nom ;
   }


/**
   * Permet de modifier la valeur de l'attribut age
   *
   * @param age le nouvel age de la personne
   */
 public void setAge ( int age ){
    this.age = age ;
  }
  /**
   * Permet de connaitre la valeur de l'attribut age
   *
   * @return int l'age de la personne
   */
  public int getAge ( ) {
     return this.age ;
   }

/**
   * Permet de modifier la valeur de l'attribut taille
   *
   * @param taille la nouvelle taille exprimee en metre
   */
 public void setTaille ( double taille ){
    this.taille = taille ;
  }
  /**
   * Permet de connaitre la valeur de l'attribut taille
   *
   * @return double la taille de la personne
   */
  public double getTaille ( ) {
     return this.taille ;
   }

/**
   * Permet de modifier la valeur de l'attribut poids
   *
   * @param poids le nouveau poids de la personne
   */
 public void setPoids ( double poids ){
    this.poids = poids ;
  }
  /**
   * Permet de connaitre la valeur de l'attribut poids
   *
   * @return double le poids de la personne
   */
  public double getPoids ( ) {
     return this.poids ;
   }
   
  /**
   * retourne les valeurs de l'objet sous forme textuelle
   *
   */
   public String toString(){
        String description = "nom de la personne : " + this.nom +"\nage  : " + this.age + "\ntaille : " +
                 this.taille +"\npoids :"+this.poids;
           return description;
   }

  /**
   * retourne true si l'objet Person a un age >= a 18 ans
   *
   */
   public boolean isAdult(){
       if(this.age>=18)
            return true;
       else
            return false;
   }

  /**
   * retourne l'indice de masse corporelle de la personne
   * imc = poids/(taille*taille) - 
   * la taille en metre et le pois en kg
   */
   public double determineIMC(){
    return this.poids/(this.taille*this.taille);
   }
  /**
   * retourne la signification de l'IMC
   *  maigreur si imc inferieur a 18,5 -
   *  normal   compris entre 18,5 et 24.9 -
   *  surpoids de 25 à 29.9 -
   *  obesite + de 30
   */
   public String significationIMC(){
         String signification;
         if(determineIMC()<18.5)
              signification="maigreur";
         else if (determineIMC()<25)
              signification="normal";
         else if (determineIMC()<30)
              signification="surpoids";
         else
             signification="obesité";
       
        return signification;
   }
}
