2018_2019:s3:concprogobjet:td:td3
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
2018_2019:s3:concprogobjet:td:td3 [2018/09/29 15:48] – [RETOUR SUR LES RENDUS] blay | 2018_2019:s3:concprogobjet:td:td3 [2018/10/30 12:19] – [RETOURS SUR LES RENDUS de l'an dernier] blay | ||
---|---|---|---|
Line 2: | Line 2: | ||
Basé sur TP3 de l' | Basé sur TP3 de l' | ||
- | < | + | < |
- | Vous rendrez ce que vous avez fait à la fin des 2 heures.</ | + | Vous rendrez ce que vous avez fait à la fin des 2 heures. |
+ | </ | ||
- | ===== Enoncé | + | ===== Enoncé ===== |
Une entreprise de Patagonie développe un moteur à huile de rutabaga, et dote plusieurs véhicules de ce moteur. | Une entreprise de Patagonie développe un moteur à huile de rutabaga, et dote plusieurs véhicules de ce moteur. | ||
Avant d' | Avant d' | ||
Le problème que l'on veut résoudre dans un premier temps est celui du calcul de la vitesse maximum pouvant être atteinte par un véhicule. | Le problème que l'on veut résoudre dans un premier temps est celui du calcul de la vitesse maximum pouvant être atteinte par un véhicule. | ||
- | Tout véhicule possède une immatriculation | + | |
- | + | * Le poids à vide d'un véhicule est connu à la construction du véhicule et ne peut plus être modifié. | |
- | Les différents types de véhicules dotés du fameux moteur sont les suivants : les petits bus, les camions citernes, et les camions bâchés. | + | * Les véhicules utilitaires |
+ | * La charge maximale d'un véhicule utilitaire est connue à la construction du véhicule et ne peut plus être modifiée. | ||
+ | | ||
* Un petit bus a un poids à vide de 4 tonnes, et peut atteindre une vitesse maximale de 150 km/h. Il ne possède pas de chargement (le poids des passagers est considéré comme négligeable par rapport au poids à vide). | * Un petit bus a un poids à vide de 4 tonnes, et peut atteindre une vitesse maximale de 150 km/h. Il ne possède pas de chargement (le poids des passagers est considéré comme négligeable par rapport au poids à vide). | ||
* Un camion citerne a un poids à vide de 3 tonnes et une charge maximale de 10 tonnes. Sa vitesse maximale dépend de sa charge : | * Un camion citerne a un poids à vide de 3 tonnes et une charge maximale de 10 tonnes. Sa vitesse maximale dépend de sa charge : | ||
Line 33: | Line 36: | ||
- | ==== Question 1 : Modéliser le système | + | ==== Question 1 : Modéliser le système |
+ | * La modélisation peut se faire sur papier si vous êtes sûr de vous. Pensez dans ce cas à en faire une photo à intégrer dans le rendu final. | ||
+ | |||
+ | ==== Question 2 : Implémenter tout ce qui concerne les véhicules avec les tests associés (20mn) ==== | ||
+ | * {{: | ||
+ | * Mettez en commentaires les tests pour lesquels les codes ne sont pas encore implémentés, | ||
+ | * Adaptez-le (ou votre code) pour tester vos codes. | ||
+ | ==== Question 3 : Implémenter la notion de convoi (20mn max) ==== | ||
+ | * Quelle est la couverture de tests? | ||
+ | * Améliorez les tests pour avoir une plus grande couverture. | ||
+ | |||
+ | ==== Question 4 : Extension facile (10mn max) ==== | ||
- | ==== Question 2 : Implémenter tout ce qui concerne les véhicules avec les tests associés ==== | + | Un nouveau type de véhicule est apparu, les " |
+ | * Mettez à jour votre modèle | ||
+ | * Savez-vous calculer la vitesse maximale d'un convoi | ||
- | ==== Question | + | ==== Question |
+ | Les ingénieurs de l' | ||
+ | <code java> | ||
- | ==== Question 4 : Extension facile ==== | ||
- | |||
- | Un nouveau type de véhicule est apparu, les " | ||
- | |||
- | ==== Question 5 : Extension un peu moins facile ==== | ||
- | Les ingénieurs de l' | ||
- | <code java> | ||
public class Simulator { | public class Simulator { | ||
+ | public static final int MAX_WEIGHT = 10000; | ||
+ | public static final int MIN_WEIGHT = 425; | ||
+ | |||
+ | private Simulator() {} | ||
+ | |||
public static double consumption (Machine machine, int speed) { | public static double consumption (Machine machine, int speed) { | ||
- | return speed* | + | double normalizedWeight = (double) |
+ | return (1 + normalizedWeight) * machine.getHourlyFuelConsumption() * speed /20; | ||
} | } | ||
} | } | ||
Line 57: | Line 74: | ||
<code java> | <code java> | ||
public interface Machine { | public interface Machine { | ||
- | int getWeight(); | + | public |
- | int getHorsePower(); | + | public double getHourlyFuelConsumption(); |
- | + | ||
} | } | ||
</ | </ | ||
- | On veut pouvoir savoir la consommation totale d'un convoi allant à sa vitesse maximale (c' | ||
- | Au niveau du code, on considère que tous les véhicules dans notre entreprise ont la même puissance. | + | |
+ | * **Vous n'avez pas le droit de modifier** l' | ||
+ | * On considère que le poids d'un véhicule est son poids à vide plus sa charge s'il en a une. | ||
+ | * Au niveau du code, on considère que tous les véhicules dans notre entreprise ont la consommation horaire de 1.9 l/h | ||
==== Questions | ==== Questions | ||
Que feriez-vous si l'on vous disait que l'on veut pouvoir créer des véhicules à partir de leur poids à vide, charge maximale, etc... ? | Que feriez-vous si l'on vous disait que l'on veut pouvoir créer des véhicules à partir de leur poids à vide, charge maximale, etc... ? | ||
- | |||
==== RENDU ==== | ==== RENDU ==== | ||
- | A la fin du TD, en l' | + | **A la fin du TD, en l' |
+ | - un document contenant | ||
+ | | ||
+ | | ||
+ | - une copie d' | ||
+ | - les codes et tests associés. | ||
- | Dépôt sur [[http:// | + | Dépôt sur [[http:// |
- | ==== RETOUR | + | ==== RETOURS |
- | ON évite ou on ne fait pas : | + | <note warning> |
- | | + | |
- | | + | |
+ | - la //duplication de code// par exemple des setCharge | ||
+ | | ||
* Définir une classe abstraite et implementer toutes ses méthodes de manière absurde : on ne sait même pas ce qui doit être redéfini (eg. vitesseMax à 0)! | * Définir une classe abstraite et implementer toutes ses méthodes de manière absurde : on ne sait même pas ce qui doit être redéfini (eg. vitesseMax à 0)! | ||
- | * Des tests sous forme de toString | + | * Des tests sous forme de toString |
- | * aVOIR UNE CHARGE MAX ET NE PAS EN TENIR COMPTE en chargeant le véhicule | + | * AVOIR UNE CHARGE MAX ET NE PAS EN TENIR COMPTE en chargeant le véhicule |
- | * passer | + | * Passer |
- | * recopier | + | * Recopier |
- | * prévoir | + | * Prévoir |
- | * Pas de S à la fin du nom d'une classe comme Vehicule. | + | * Mettre unS à la fin du nom d'une classe comme Vehicule. |
- | * ne pas savoir calculer le min d'un ensemble et ne pas faire de tests! | + | * Ne pas savoir calculer le min d'un ensemble et ne pas faire de tests! |
- | * BANIR LES toString dans vos assert.. imaginez le coût d' | + | * Mettre un attribut à la place d' |
- | * Ne mettez | + | * Utilisez une valeur |
- | * N' | + | |
- | * aTTENTION AU CHOIX ARBITRAIRE D4UNE valeur | + | |
- | * cOMMENT FAIRE POur qu'un véhicule soit un engin???? Il faut répondre à cette question en TD. | + | |
- | * Mettez le toString en facteur surtout quand vous le recopiez partout! | + | |
- | * Prévoir en dure le calcul de la vitesse max et autoriser la modification de la charge !! | + | |
* Ne définissez pas toutes vos variables en public ou même protected, simplement parce que vous ne savez pas utiliser des cascades de constructeurs ou des accesseurs! Et réfléchissez à la cohérence de votre code même sur un exemple aussi simple ! | * Ne définissez pas toutes vos variables en public ou même protected, simplement parce que vous ne savez pas utiliser des cascades de constructeurs ou des accesseurs! Et réfléchissez à la cohérence de votre code même sur un exemple aussi simple ! | ||
* Sur PAPIER, POUR NOTER QU'UNE CLASSE EST abstraite, vous pouvez simplement écrire < | * Sur PAPIER, POUR NOTER QU'UNE CLASSE EST abstraite, vous pouvez simplement écrire < | ||
Line 126: | Line 146: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | </ |
2018_2019/s3/concprogobjet/td/td3.txt · Last modified: 2018/11/02 07:02 by blay