2015_2016:s2:td:td_domaine_partie_2
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 08:44] – [Le robot conduit le véhicule] blay | 2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 13:33] (current) – [Un robot facteur] blay | ||
---|---|---|---|
Line 203: | Line 203: | ||
Nous décidons de construire un robot facteur. | Nous décidons de construire un robot facteur. | ||
- | Il transporte des courriers. Un courrier est défini par une adresse et un contenu. | + | Il transporte des courriers. |
- | Pour des raisons de confidentialité pour lire le courrier il faut utiliser un décrypteur. | + | |
- | Quand il est allumé, si on lui présente un courrier, il nous donne l' | + | |
- | Notre robot facteur peut avoir un véhicule | + | Suivez l' |
+ | Des exemples de tests sont donnés pour vous aider, en particulier à définir les méthodes associées à vos classes. | ||
+ | |||
+ | |||
+ | |||
+ | === Courrier === | ||
+ | |||
+ | Un courrier est défini par une adresse et un contenu. | ||
+ | Pour des raisons de confidentialité, | ||
+ | |||
+ | Voici le modèle correspondant à la classe " | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | **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' | ||
+ | |||
+ | Exemple de tests et de trace : | ||
+ | < | ||
+ | Courrier c = new Courrier(" | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | </ | ||
+ | < | ||
+ | ===================TESTS Courrier =================== | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | **QUESTIONS** | ||
+ | - Commencer par créer la classe '' | ||
+ | - Dans l' | ||
+ | - Quel est le modèle de la classe '' | ||
+ | - Quel est son code ? | ||
+ | |||
+ | |||
+ | === Decrypteur === | ||
+ | Pour lire le courrier il faut utiliser un décrypteur, | ||
+ | Quand il est allumé, si on lui présente un courrier, et on lui donne la clef, il nous donne l' | ||
+ | Donc à chaque lecture, un '' | ||
+ | |||
+ | Exemple de tests et de trace : | ||
+ | < | ||
+ | Decrypteur decrypteur = new Decrypteur(); | ||
+ | System.out.println(" | ||
+ | decrypteur.switchOn(); | ||
+ | System.out.println(" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | ===================TESTS Decrypteur =================== | ||
+ | pas de lecture si non demarre rEV]FVuRQA\]}ZPV | ||
+ | lecture efficiente : Avenue Fabron, Nice : true | ||
+ | </ | ||
+ | |||
+ | **QUESTIONS** | ||
+ | - Quelles sont les méthodes de la classe '' | ||
+ | - Implémenter la classe '' | ||
+ | |||
+ | === Facteur === | ||
+ | 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 : | ||
+ | < | ||
+ | System.out.println(" | ||
+ | Courrier c2 = new Courrier(" | ||
+ | Courrier c3 = new Courrier(" | ||
+ | |||
+ | Facteur facteur = new Facteur(" | ||
+ | facteur.distribue(c, | ||
+ | facteur.distribue(c2, | ||
+ | facteur.distribue(c3, | ||
+ | |||
+ | String adresse = facteur.lire(); | ||
+ | System.out.println(" | ||
+ | facteur.setVehicule(charriot); | ||
+ | facteur.deplacer(" | ||
+ | Courrier courrier = facteur.depose(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | |||
+ | adresse = facteur.lire(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | facteur.setVehicule(fusee); | ||
+ | facteur.deplacer(" | ||
+ | courrier = facteur.depose(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | |||
+ | adresse = facteur.lire(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | facteur.depose(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | |||
+ | adresse = facteur.lire(); | ||
+ | System.out.println(" | ||
+ | </ | ||
+ | < | ||
+ | ===================TESTS Facteur =================== | ||
+ | Je dois aller à Avenue Fabron, Nice | ||
+ | Courrier deposé à l' | ||
+ | Je suis en [20,30]: [20,30] | ||
+ | Je dois aller à : Petit Prince Planete | ||
+ | Je prends ma fusee | ||
+ | Courrier depose à l' | ||
+ | Je suis en [700,700] : [700,700] | ||
+ | Je dois aller à : | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | **QUESTIONS** | ||
+ | - Quel est le modèle de la classe '' | ||
+ | - Quelles sont les méthodes que doit avoir un Facteur? | ||
+ | - Implémenter la classe '' | ||
+ | |||
+ | === Encrypteur === | ||
+ | |||
+ | Voici le code pour crypter il est basé sur : [[http:// | ||
+ | |||
+ | |||
+ | |||
+ | <code java> | ||
+ | public class Encryptor { | ||
+ | |||
+ | private final int key; | ||
+ | | ||
+ | public Encryptor(int key) { | ||
+ | super(); | ||
+ | this.key = key; | ||
+ | } | ||
+ | |||
+ | |||
+ | public String encrypt(String password){ | ||
+ | String crypte=""; | ||
+ | for (int i=0; i< | ||
+ | int c=password.charAt(i)^(48 + key); | ||
+ | crypte=crypte+(char)c; | ||
+ | } | ||
+ | return crypte; | ||
+ | } | ||
+ | |||
+ | |||
+ | public String decrypt(String password){ | ||
+ | String aCrypter=""; | ||
+ | for (int i=0; i< | ||
+ | int c=password.charAt(i)^(48 + key); | ||
+ | aCrypter=aCrypter+(char)c; | ||
+ | } | ||
+ | return aCrypter; | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | Exemple de tests de l' | ||
+ | |||
+ | Encryptor d = new Encryptor(2); | ||
+ | String origine = " | ||
+ | String sCryptee = d.encrypt(origine); | ||
+ | System.out.println(" | ||
+ | String r = d.decrypt(sCryptee); | ||
+ | System.out.println(r |
2015_2016/s2/td/td_domaine_partie_2.1455957854.txt.gz · Last modified: 2016/02/20 08:44 by blay