Extensions du cas voiture
Une voiture est conduite par un conducteur qui a un nom. Lors d'un long trajet, le conducteur reproduit plusieurs fois le même cycle:
Mais chaque conducteur effectue ce cycle en fonction de son biorythme, ainsi la voiture roule toujours à la même vitesse et le nombre de minutes écoulées avant de refaire le plein est toujours le même; par exemple la voiture d'un conducteur roule toujours à 120 km/h et cela pendant 300 minutes.
Question 1. Proposer un diagramme des classes Voiture et Conducteur.
Question 2. Dans la fonction main de la classe AppVoiture, on écrit:
Voiture v = new Voiture("122RTY93");
Conducteur c = new Conducteur("toto",120,300);
c.setLaVoiture(v);
c.cycle();
Définir la classe Conducteur en conséquence, écrire ses méthodes. Tester.
Question 3. Modification du biorythme du conducteur.
A la fin de chaque cycle, le conducteur peut être ammené à modifier son biorythme; c'est le cas notamment où la voiture tombe en panne d'essence; dans ce cas, le conducteur diminue de 10% son temps de trajet (tempsBioRythme). Proposer une solution en modifiant le diagramme de classe éventuellement et en imaginant un scénario d'utilisation sous forme littérale.
Modifier le code, tester en faisant acomplir plusieurs cycles au conducteur.
Evolution. Le rallye.
Un rallye virtuel est organisé. Il concerne plusieurs conducteurs et se déroule sur une longue distance. Lorsque le départ du rallye est donné, les conducteurs démarrent et effectuent leurs cycles jusqu'à la fin du trajet prévu par le rallye. Comme chaque cycle ne peut être interrompu, les voitures doivent parcourir au moins la distance prévue pour le rallye.
Question 4. Proposer un diagramme de classes.
Question 5.
Comment faire le lien entre le Rallye et les courreurs?
La classe AppVoiture a la responsabilité de créer les voitures, créer les conducteurs et leur affecter une voiture; c'est la classe Rallye qui va lancer la course pour tous ses coureurs, Ceci s'écriera dans une méthode course(), l'algorithme en langage naturel est:
Pour tous les courreurs, tant que la distance parcourue par chaque voiture est inférieure à la distance du rallye, chaque conducteur effectue des cycles.
Le Rallye affiche le vainqueur.
Proposer une implémentation en Java.