[UMLV]

Les premiers pas.

Dans tous les exercices vous testerez vos réponses au fur et à mesure.

Exercice 1 - Premier exercice

  1. É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 !).
  2. 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).
  3. Le compilateur indique des messages d'alerte (« warning» ). Expliquez pourquoi et faites en sorte de le rassurer.
  4. Modifier le programme pour qu'il affiche les mots saisis par ordre lexicographique.
  5. 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.

  1. É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.
  2. Écrire le constructeur prenant en paramètres les valeurs des champs précédents, ainsi que les méthodes toString(), getSerie() et getCodeDepartement().
  3. É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).

  1. É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.
  2. 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.
  3. É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.
  4. Écrire la méthode getMontantTaxe() qui calcule le montant de la taxe Alif selon la formule 1000*nombreDeFenetres.
  5. É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.

  1. Écrire le constructeur de la classe Garage.
  2. É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.
  3. É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.
  4. É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.
  5. É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.
  6. É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.