devoir_code_complet.py

Created by joelkouakou2080

Created on March 02, 2023

3.61 KB


class GestionVehicules {
  // Pour représenter l'année courante:
  // Il est aussi possible d'utiliser la classe Date
  // pour récupérer cette information automatiquement
  private static int ANNEE_ACTUELLE = 2020;

  public static void main(String[] args) {
    Vehicule[] vehicules = new Vehicule [5];

    vehicules[0] = new Voiture("Peugeot", 2005, 147325.79, 2.5, 5, 180.0, 12000);
    vehicules[1] = new Voiture("Porsche", 1999, 250000.00, 6.5, 2, 280.0, 81320);
    vehicules[2] = new Voiture("Fiat", 2001, 7327.30, 1.6, 3, 65.0, 3000);

    vehicules[3] = new Avion("Cessna", 1982, 1230673.90, "HELICES", 250);
    vehicules[4] = new Avion("Nain Connu", 1993, 4321098.00, "REACTION", 1300);

    for (int i = 0; i < vehicules.length; i++) {
      vehicules[i].calculePrix(ANNEE_ACTUELLE);
      vehicules[i].affiche();
    }
  }
}

class Vehicule {

  private String marque;
  private int dateAchat;
  private double prixAchat;
  private double prixCourant;

  public Vehicule(String marque, int date, double prix) {
    this.marque = marque;
    dateAchat = date;
    prixAchat = prix;
    prixCourant = prix;
  }

  public void calculePrix(int anneActuelle) {
    double decote = (anneActuelle - dateAchat) * 0.01;
    prixCourant = Math.max(0.0, (1.0 - decote) * prixAchat);
  }

  public void affiche() {
    System.out.print("marque : " + marque +
        ", date d'achat : " + dateAchat +
        ", prix actuel : " + prixCourant);
    System.out.println();
  }
  public int getDateAchat(){
    return dateAchat;
  }
  public String getMarque(){
    return marque;
  }
  public double getPrixAchat(){
    return prixAchat;
  }
  public void setPrixCourant(double prix){
    prixCourant = prix;
  }

}

class Voiture extends Vehicule {
  
  private double cylindree;
  private int nbPortes;
  private double puissance;
  private double kilometrage;

  public Voiture(String marque, int date, double prix,
      double cylindree, int portes, double cv, double km) {
    super(marque, date, prix);
    this.cylindree = cylindree;
    nbPortes = portes;
    puissance = cv;
    kilometrage = km;
  }

  public void calculePrix(int anneActuelle) {
    double decote = (anneActuelle - getDateAchat()) * .02;
    // On force le type en int de manià ̈re à  arrondir le résultat
    // On verra dans quelques semaines une manià ̈re plus élégante de faire
    // ce genre de choses...
    decote += 0.05 * (int)(kilometrage / 10000);
    if (getMarque().equals("Fiat") || getMarque().equals("Renault")) {
      decote += 0.1;
    } else if (getMarque().equals("Ferrari") || getMarque().equals("Porsche")) {
      decote -= 0.2;
    }

    setPrixCourant(Math.max(0.0, (1.0 - decote) * getPrixAchat()));
  }

  public void affiche() {
    System.out.println(" ---- Voiture ----");
    super.affiche();
    System.out.println(cylindree + " litres, "
        + nbPortes + " portes, "
        + puissance + " CV, "
        + kilometrage + " km.");
  }
}

class Avion extends Vehicule {
  
  private String moteur;
  private int heuresVol;

  public Avion(String marque, int date, double prix, String moteur, int heures) {
    super(marque, date, prix);
    this.moteur = moteur;
    heuresVol = heures;
  }

  public void calculePrix(int anneActuelle) {
    double decote;
    if (moteur == "HELICES") {
      decote = 0.1 * heuresVol / 100.0;
    } else {
      decote = 0.1 * heuresVol / 1000.0;
    }

    setPrixCourant(Math.max(0.0, (1.0 - decote) * getPrixAchat()));
  }

  public void affiche() {
    System.out.println(" ---- Avion à " + moteur + "----");
    super.affiche();
    System.out.println(heuresVol + " heures de vol.");
  }

}

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.