|
Les premiers pas.
|
Dans tous les exercices vous testerez vos réponses au fur et à mesure.
Exercice 1 - Premier exercice
- Écrire un programme Java qui demande à l'utilisateur des mots
saisis sur l'entrée standard System.in et qui les affiche
sur la sortie standard System.out. On utilisera la classe
java.util.Scanner pour réaliser les saisies (lire la
documentation !).
- Si ça n'est pas déjà fait, modifiez votre programme pour que les
mots soient affichés une fois qu'ils ont tous été saisis (utilisez
java.util.ArrayList).
- Le compilateur indique des messages d'alerte
(« warning» ). Expliquez pourquoi et
faites en sorte de le rassurer.
- Modifier le programme pour qu'il affiche les mots saisis par
ordre lexicographique.
- Ajoutez dans votre programme le nécessaire pour mesurer le temps
pris par le tri (utilisez System.nanoTime()).
Exercice 2 - Plaque d'immatriculation
On veut modéliser des numéros de plaques d'immatriculation en séparant
le code du département des autres informations.
- Écrire une classe Immatriculation contenant 2 champs
codeDepartement et serie représentant
respectivement le code du département (penser aux codes 2A et 2B
pour la Corse) et la séquence de chiffres et de lettres qui le
précède.
- Écrire le constructeur prenant en paramètres les valeurs des
champs précédents, ainsi que les méthodes toString(),
getSerie() et getCodeDepartement().
- Écrire un autre constructeur prenant en paramètres une chaîne
de caractères contenant l'immatriculation entière, et qui en extrait
le code du département et le numéro de série pour initialiser les
champs de l'objet. On supposera que le numéro de département est
toujours composé des deux derniers caractères de l'immatriculation
entière.
Exercice 3 - La classe Voiture
On souhaite maintenant représenter des voitures. Les informations qui
nous intéressent sont le numéro d'immatriculation, la marque du
véhicule, le nombre de fenêtres de celui-ci, qui nous servira à
calculer le montant d'une taxe, et le niveau d'essence (contenu
courant du réservoir, en litres).
- Écrire une classe Voiture contenant un champ
plaque de type Immatriculation, un champ
reservoir de type double, ainsi que des champs
marque et nombreDeFenetres respectivement de type
String et int.
- Déclarez dans la
classe une constante que vous choisirez, et qui représente la
consommation de toutes les voitures en litres pour 100 km.
- Écrire les méthodes « getters »
de la classe puis une méthode toString() affichant les
caractéristiques de la voiture : la marque, l'immatriculation et le
niveau d'essence.
- Écrire la méthode getMontantTaxe() qui calcule le
montant de la taxe Alif selon la formule
1000*nombreDeFenetres.
- Écrire une méthode roule qui prend en paramètres le
nombre de kilomètres que doit rouler la voiture et qui consomme la
quantité d'essence correspondant. Que faire si la quantité
d'essence est insuffisante ?
Exercice 3 - La classe Garage
On veut
maintenant écrire une classe Garage qui sert à stocker des
voitures. Les voitures seront stationnées sur des places numérotées
en partant de 0. Le nombre de places est fixé une fois pour toutes à
la construction du garage. Dans les questions suivantes une méthode
qui prend en paramètre un indice de place de garage qui n'existe pas
devra lever une exception de type
IndexOutOfBoundsException.
- Écrire le constructeur de la classe Garage.
- Écrire une méthode garer qui prend en paramètres une
voiture, un numéro de place, qui gare la voiture à la place donnée
si elle est libre, lève une exception de type
java.lang.IllegalStateException si la place est
occupée.
- Écrire une méthode recuperer qui prend en paramètre un
numéro de place et qui retire du garage la voiture à cette place. La
méthode retourne l'objet Voiture récupéré. Elle lève une
exception de type java.lang.IllegalStateException si la
place est vide.
- Écrire une méthode recuperer qui prend en paramètre un
numéro d'immatriculation et qui retire du garage la voiture
trouvée. La méthode retourne l'objet Voiture récupéré. Elle
lève une exception de type java.lang.IllegalStateException
si la voiture n'existe pas dans le garage.
- Écrire une méthode place qui prend en paramètre un
numéro d'immatriculation et qui retourne le numéro de place occupée
par la voiture ou -1 si elle n'existe pas. Effectuez les changements
de code qui s'imposent dans votre classe.
- Écrire une méthode toString() affichant l'état du
garage : pour chaque place, le numéro, ainsi que les
caractéristiques de la voiture qui l'occupe si elle existe.
Université de Marne-La-Vallée