Adloun

programmation Java (école d'ingénieur) · Chapitre 7 · Exercice de TD

Un panier de produits

Classes et objets · niveau 2

Énoncé

Une classe Produit a un nom, un prix unitaire et une quantité, et une méthode sousTotal(). Écrire deux méthodes static : total(Produit[] panier), qui retourne le prix total du panier, et plusCher(Produit[] panier), qui retourne le produit de plus grand prix unitaire. Tester avec 4 cahiers à 2,50 €, 10 stylos à 1,20 € et une calculatrice à 19,90 €.

Corrigé


class Produit {
    String nom;
    double prix;
    int quantite;

    Produit(String nom, double prix, int quantite) {
        this.nom = nom;
        this.prix = prix;
        this.quantite = quantite;
    }

    double sousTotal() { return prix * quantite; }
}

public class Ex6Panier {
    static double total(Produit[] panier) {
        double t = 0;
        for (Produit p : panier) t += p.sousTotal();
        return t;
    }

    static Produit plusCher(Produit[] panier) {   // panier non vide
        Produit m = panier[0];
        for (Produit p : panier) if (p.prix > m.prix) m = p;
        return m;
    }

    public static void main(String[] args) {
        Produit[] panier = {
            new Produit("cahier", 2.5, 4),
            new Produit("stylo", 1.2, 10),
            new Produit("calculatrice", 19.9, 1)
        };
        System.out.printf("total : %.2f euros%n", total(panier));
        System.out.println("le plus cher : " + plusCher(panier).nom);
    }
}

total : 41.90 euros
le plus cher : calculatrice

plusCher retourne un objet (une référence), dont on lit ensuite l'attribut : plusCher(panier).nom. Elle suppose le panier non vide. Sur un panier vide, la lecture de la case panier[0] provoquerait l'exception suivante : ArrayIndexOutOfBoundsException.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →