User Tools

Site Tools


2015_2016:s2:td:td_domaine_partie_2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 10:32]
blay [Un robot facteur]
2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 14:33] (current)
blay [Un robot facteur]
Line 204: Line 204:
  
 Il transporte des courriers. ​ Il transporte des courriers. ​
 +
 +Suivez l'​énoncé pas à pas. Il est écrit ainsi pour vous aider.
 +Des exemples de tests sont donnés pour vous aider, en particulier à définir les méthodes associées à vos classes.
 +
 +
 +
  
  
 === Courrier === === Courrier ===
 +
 Un courrier est défini par une adresse et un contenu. Un courrier est défini par une adresse et un contenu.
 Pour des raisons de confidentialité,​ une fois créé, si on demande l'​adresse ou le contenu du courrier, on obtient un texte illisible : il est crypté en utilisant un encrypteur donné plus bas et une clef donnée à la construction du courrier. Pour des raisons de confidentialité,​ une fois créé, si on demande l'​adresse ou le contenu du courrier, on obtient un texte illisible : il est crypté en utilisant un encrypteur donné plus bas et une clef donnée à la construction du courrier.
 +
 +Voici le modèle correspondant à la classe "​Encryptor"​
 +
 +{{ :​2015_2016:​s2:​td:​capture_d_e_cran_2016-02-20_a_14.22.00.png?​direct&​200 |}}
 +
 **Le courrier ne contient pas le texte initial, ni la clef de cryptage. Elles sont seulement connues à la création du courrier.** On ne peut pas modifier l'​adresse ou le contenu d'un courrier. **Le courrier ne contient pas le texte initial, ni la clef de cryptage. Elles sont seulement connues à la création du courrier.** On ne peut pas modifier l'​adresse ou le contenu d'un courrier.
  
-Exemple de test et de trace : +Exemple de tests et de trace : 
 <​code>​ <​code>​
- Courrier c = new Courrier("​Avenue Fabron, Nice","​Bravo ", 3); +Courrier c = new Courrier("​Avenue Fabron, Nice","​Bravo ", 3); 
- System.out.println("​Courrier adresse illisible " + c.getAdresse());​ +System.out.println("​Courrier adresse illisible " + c.getAdresse());​ 
- System.out.println("​Courrier contenu illisible " + c.getContenu());​ +System.out.println("​Courrier contenu illisible " + c.getContenu());​
 </​code>​ </​code>​
 <​code>​ <​code>​
   ===================TESTS Courrier ===================   ===================TESTS Courrier ===================
- COurrier ​adresse illisible rEV]FVuRQA\]}ZPV + Courrier ​adresse illisible rEV]FVuRQA\]}ZPV 
- COurrier ​contenu illisible qARE\+ Courrier ​contenu illisible qARE\
 </​code>​ </​code>​
 +
 +
 +**QUESTIONS**
 +  - Commencer par créer la classe ''​Encriptor''​ en recopiant "​simplement"​ le code donné plus bas.
 +  - Dans l'​ordre que vous voulez, répondez à ces deux questions, et tester votre code.
 +      - Quel est le modèle de la classe ''​Courrier''? ​
 +      - Quel est son code ?
 +
  
 === Decrypteur === === Decrypteur ===
 Pour lire le courrier il faut utiliser un décrypteur,​ c'est un outil électrique. Pour lire le courrier il faut utiliser un décrypteur,​ c'est un outil électrique.
 Quand il est allumé, si on lui présente un courrier, et on lui donne la clef, il nous donne l'​adresse en claire, sinon il renvoie l'​adresse telle que. Quand il est allumé, si on lui présente un courrier, et on lui donne la clef, il nous donne l'​adresse en claire, sinon il renvoie l'​adresse telle que.
 +Donc à chaque lecture, un ''​Encryptor''​ est créé avec la clef en paramètre.
  
 +Exemple de tests et de trace : 
 +<​code>​
 +Decrypteur decrypteur = new Decrypteur();​
 +System.out.println("​pas de lecture si non demarre " + decrypteur.read(c,​3));​
 +decrypteur.switchOn();​
 +System.out.println("​lecture efficiente : " +  decrypteur.read(c,​3) + " : " +decrypteur.read(c,​3).equals(origine) );
 +</​code>​
 +
 +<​code>​
 +===================TESTS Decrypteur ===================
 +pas de lecture si non demarre rEV]FVuRQA\]}ZPV
 +lecture efficiente : Avenue Fabron, Nice : true
 +</​code>​
 +
 +**QUESTIONS**
 +  - Quelles sont les méthodes de la classe ''​Decrypteur''​ ?
 +  - Implémenter la classe ''​Decrypteur''​.
  
 === Facteur === === Facteur ===
-Notre robot facteur peut  avoir un véhicule pour se déplacer et un décrypteur.+Notre robot facteur peut  avoir un véhicule pour se déplacer et un décrypteur ​pour lire le courrier. Quand on lui remet un courrier, on lui donne la clef pour lire le courrier.
  
  
 +Exemple de tests et de trace : 
 +<​code>​
 +System.out.println("​===================TESTS Facteur ==================="​);​
 +Courrier c2 = new Courrier("​Petit Prince Planete","​Je veux etre ton ami ",2);
 +Courrier c3 = new Courrier("​Pere Noel","​Je voudrais un robot voyageur ",5);
 +
 +Facteur facteur = new Facteur("​Hermes"​);​
 +facteur.distribue(c,​3);​
 +facteur.distribue(c2,​2);​
 +facteur.distribue(c3,​2);​
 +
 +String adresse = facteur.lire();​
 +System.out.println("​Je dois aller à " + adresse);
 +facteur.setVehicule(charriot);​
 +facteur.deplacer("​XXYYY"​);​
 +Courrier courrier = facteur.depose();​
 +System.out.println("​Courrier deposé à l'​adresse : " + adresse );
 +System.out.println("​Je suis en  [20,30]: " + charriot.getPosition());​
 +
 +adresse = facteur.lire();​
 +System.out.println("​Je dois aller à :" + adresse);
 +System.out.println("​Je prends ma fusee"​);​
 +facteur.setVehicule(fusee);​
 +facteur.deplacer("​XYXYXYXYXYXYXY"​);​
 +courrier = facteur.depose();​
 +System.out.println("​Courrier depose à l'​adresse " + adresse);
 +System.out.println("​Je suis en [700,700] : " + fusee.getPosition());​
 +
 +adresse = facteur.lire();​
 +System.out.println("​Je dois aller à : " + adresse);
 +System.out.println("​Je ne comprends pas, même pas capable de me donner la bonne clef!"​);​
 +facteur.depose();​
 +System.out.println("​Courrier perdu ");
 +System.out.println("​Je suis toujours en [700,700] : " + fusee.getPosition());​
 +
 +adresse = facteur.lire();​
 +System.out.println("​J'​ai fini :  " + adresse);
 +</​code>​
 +<​code>​
 +===================TESTS Facteur ===================
 +Je dois aller à Avenue Fabron, Nice
 +Courrier deposé à l'​adresse : Avenue Fabron, Nice
 +Je suis en  [20,30]: [20,30]
 +Je dois aller à : Petit Prince Planete
 +Je prends ma fusee
 +Courrier depose à l'​adresse Petit Prince Planete
 +Je suis en [700,700] : [700,700]
 +Je dois aller à :​Wbub'​Ihbk
 +Je ne comprends pas, même pas capable de me donner la bonne clef!
 +Courrier perdu 
 +Je suis toujours en [700,700] : [700,700]
 +J'ai fini :  Rentre chez toi
 +</​code>​
 +
 +**QUESTIONS**
 +  - Quel est le modèle de la classe ''​Facteur''?​ Qu'ont en commun un ''​Facteur''​ et un ''​Jardinier''?​
 +  - Quelles sont les méthodes que doit avoir un Facteur?
 +  - Implémenter la classe ''​Facteur''​
  
 === Encrypteur === === Encrypteur ===
Line 273: Line 369:
 </​code>​ </​code>​
  
-Exemple de tests de l'​encryptor+Exemple de tests de l'​encryptor ​:  
                 Encryptor d = new Encryptor(2);​                 Encryptor d = new Encryptor(2);​
  String origine = "​Avenue Fabron, Nice";  String origine = "​Avenue Fabron, Nice";
2015_2016/s2/td/td_domaine_partie_2.1455960769.txt.gz · Last modified: 2016/02/20 10:32 by blay