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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
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.