Sunteți pe pagina 1din 3

UNIVERSITE DE SOUSSE ‫جامعة سوسة‬

Institut Supérieur d’Informatique et des ‫الـمـعـهـد الـعـالـي لـإلعـالمـية و تـقـنـيـات‬


Techniques de Communication ‫اآلتـصـال بـحـمـام سوسة‬
Hammam Sousse

Enseignant :Saoudi Haythem A.U.2020/2021

programmation TP N°3
Java Les exceptions-Les Listes (List-ArrayList) Classe: 1DNI

Exercice N°1 (Les Exceptions)

1- Définir une classe Compte qui possède :


- 2 attributs : code (int), solde (double)
- Un constructeur Compte(code,solde)
- Une méthode retirer (double montant)
- Une méthode main(String args[]).
Dans la méthode main ajouter un objet de type Compte. Le code et le solde sont des valeurs entrées au
clavier à partir de la classe Scanner.
2- Lors de la saisie d’une chaine de caractères au lieu d’un nombre pour le « code » du compte, une
exception « non surveillée » est déclenchée. Cette exception est de type InputMismatchException,
générée par la méthode nextInt()(ou nextDouble()) de la classe Scanner. Modifier le code de la
méthode main afin de traiter cette exception.
3- Modifier la méthode retirer(double) pour qu’elle lance une exception de type
SoldeInsuffisantException si la valeur de montant est supérieure au solde.
4- Supposons que l’on ne doit pas accepter un montant négatif dans la méthode retirer(double).
Modifier cette méthode afin qu’elle lance une exception de type MontantNegatifException si la
valeur de montant est négative.

1
Exercice N°2 (Les Listes)

Nous souhaitons réaliser une solution de gestion d’une agence de location de Voitures.
Une voiture est caractérisée par son matricule(int), sa marque(String) et son prix de location (double).
Deux voitures sont égales s’ils ont le même matricule.
1- Compléter la classe Voiture
public class Voiture {
private int matricule ;
private String marque;
private double prix;
public Voiture(int matricule, String marque, double prix) {
this. matricule = matricule; this.marque = marque; this.prix
= prix;}
public int getMatricule () {return matricule;}
public void setMatricule (int mat) { matricule = mat;}
public String getMarque() { return marque;}
public void setMarque(String marque) {this.marque = marque;}
public double getPrix() {return prix;}
public void setPrix(double prix) {this.prix = prix; }
public String toString() {return "[" + matricule + "," + marque +
"," + prix + "]";}
public boolean equals(Object obj){
……………………………
}
}
Cette agence permet de gérer ses voitures. La classe Agence est conforme au diagramme UML
suivant :

Agence
-listeVoitures :List<Voiture>
+ajouter(Voiture v) :void
+supprimer(Voiture v) :void
+selectionner(Critere
c) :List<Voiture>
2- La méthode ajouter(Voiture v) permet d’ajouter une nouvelle voiture. Cette méthode
déclenche une exception surveillée de type VoitureException, si la voiture existe dans
l’agence (listeVoitures). Ecrire la classe VoitureException

2
3- On souhaite pouvoir sélectionner parmi les voitures à louer toutes les voitures satisfaisant un
critère donné. On définit l’interface Critere ainsi :

public interface Critere {


boolean estSatisfaitPar(Voiture v);
}

a. Ecrire la classe CriterePrix qui est un critère satisfait par toutes les voitures dont le prix
est inférieur à un prix fixé à la construction du critère.
b. Sur le même principe, Ecrire la classe CritereMarque qui est un critère satisfait par toutes
les voitures d’une marque donnée. La marque est précisée à la construction du critère.

NB : Les classes CritereMarque et CriterePrix implémentent toutes les deux l’interface Critere.

4- Créer la classe Agence correspondante au schéma UML ci-dessus.


5- Ecrire la classe Test contenant la méthode main et qui permet de :
a. Créer une agence
b. Ajouter 5 voitures
c. Afficher la liste des voitures dont le prix de location est inférieur à 100

S-ar putea să vă placă și