User Tools

Site Tools


2015_2016:s2:td:td_classes-code-avancees

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
Last revision Both sides next revision
2015_2016:s2:td:td_classes-code-avancees [2016/03/05 19:10]
blay [Votre application : SpyMe]
2015_2016:s2:td:td_classes-code-avancees [2016/03/07 15:24]
blay [Votre application : SpyMe]
Line 22: Line 22:
    - Codez-les.    - Codez-les.
  
 +<note warning>​Comme vu en cours ce matin, conclusion du cours, IL N'Y A PAS D'​ATTRIBUTS ''​DEPART''​ et ''​ARRIVEE''​ dans le modèle de la classe CHEMIN</​note>​
 <note important>​Dans cet exercice, faîtes particulièrement attention aux rôles et à la navigation dans les associations. <note important>​Dans cet exercice, faîtes particulièrement attention aux rôles et à la navigation dans les associations.
 </​note>​ </​note>​
Line 52: Line 53:
        * Un internaute peut s'​inscrire ​ à l'​application en utilisant son compte facebook ou twitter ou un formulaire dédié.        * Un internaute peut s'​inscrire ​ à l'​application en utilisant son compte facebook ou twitter ou un formulaire dédié.
        * Un membre peut enregistrer son parcours :         * Un membre peut enregistrer son parcours : 
-                - il déclare sur son téléphone qu'il commence à enregistrer un parcours, +                - il déclare sur son téléphone qu'il commence à enregistrer un parcours; 
-                -  toutes les 10 secondes, un nouveau point est automatiquement créé en demandant au GPS du téléphone ​la position ​avec l'​heure ​associée, ​le point est ajouté au parcours en cours, +                - toutes les 10 secondes, un nouveau point est automatiquement créé en demandant au GPS du téléphone ​sa position ​et l'​heure ​actuelle; ​le point est ajouté au parcours en cours; Les coordonnées GPS sont des coordonnées sur une sphère et pas des coordonnées cartésiennescependant dans le cadre de ce TD, travaillez "​simplement"​ avec des coordonnées cartésiennes;​ 
-                - il signale la fin du parcours qui est automatiquement enregistré dans notre base de parcours. +                - le membre ​signale la fin du parcours qui est automatiquement enregistré dans sa base de parcours. 
-       ​* ​un membre peut visualiser les parcours passés : par la distance parcourue, la durée, la vitesse moyenne, la date (jour et heure), le type d'​entrainement,​ ...+       ​* ​Un membre peut visualiser les parcours passés : par la distance parcourue, la durée, la vitesse moyenne, la date (jour et heure), le type d'​entrainement,​ ...  
 +       * En sélectionnant un parcours, un membre peut visualiser un parcours en utilisant googleMAP.
        * Un membre peut préciser qu'il veut enregistrer un parcours d'​entrainement;​ dans ce cas, avant le départ, il précise le mode d'​entrainement. Pour chaque mode, un temps de relevé des points différent est prévu : marche rapide (2mn), course à pied (10s), vélos (5s), foot (10s), ...        * Un membre peut préciser qu'il veut enregistrer un parcours d'​entrainement;​ dans ce cas, avant le départ, il précise le mode d'​entrainement. Pour chaque mode, un temps de relevé des points différent est prévu : marche rapide (2mn), course à pied (10s), vélos (5s), foot (10s), ...
        * Un membre peut créer son propre mode d'​entrainement en précisant les temps de consultation etc.        * Un membre peut créer son propre mode d'​entrainement en précisant les temps de consultation etc.
-       * Un membre qui a précisé son compte twitter, peut demander en début de parcours, que chaque relevé de point soit automatiquement ​twitter ​avec le message "Je suis en position ...".+       * Un membre qui a précisé son compte twitter, peut demander en début de parcours, que chaque relevé de point soit automatiquement ​"​tweetté" ​avec le message "Je suis en position ...".
  
-=== Questions ​ === + 
-Evidemment vous commencez par identifier les cas d'​utilisation de haut niveau. Mais ensuite vous pouvez travailler ​sur tous les points en "même temps".+Pouvez-vous étendre votre application pour donner la vitesse moyenne entre deux points donnés d'un parcours?  
 + 
 +==== Questions  ​==== 
 +Evidemment vous commencez par identifier les cas d'​utilisation de haut niveau. Mais ensuite vous pouvez travailler ​comme bon vous semble.
   * Définir le diagramme de cas d'​utilisation   * Définir le diagramme de cas d'​utilisation
-  * "​Prévoyez"​ les tests correspondant aux scénarii suivants (soit dans l'​outil,​ soit sur papier ​en +  * "​Prévoyez"​ les tests correspondant aux scénarii suivants (soit dans l'​outil,​ soit sur papier
       -  "​Bipbip"​ s'​inscrit en utilisant son compte "​Facebook";​       -  "​Bipbip"​ s'​inscrit en utilisant son compte "​Facebook";​
       -  "​Xavier-Bertrand"​ s'​inscrit en saisissant son nom  et déclare son compte twitter;       -  "​Xavier-Bertrand"​ s'​inscrit en saisissant son nom  et déclare son compte twitter;
Line 76: Line 81:
  
  
-=== Pour vous aider  ===+==== Pour vous aider  ​====
  
-== Si vous avez du mal à identifier les "​objets"​ de l'​application ... ==+=== Si vous avez du mal à identifier les "​objets"​ de l'​application ... ===
  
 {{ :​2015_2016:​s2:​td:​courseapiedpk.scenariopointdevuepartiel.jpg?​direct&​200 |}} {{ :​2015_2016:​s2:​td:​courseapiedpk.scenariopointdevuepartiel.jpg?​direct&​200 |}}
  
 +    * Avez-vous besoin d'​information supplémentaires sur la notion de Point? Comment faire? ​
 +    * De quelles informations avez-vous besoin pour construire un Parcours?
 +    * 
  
-== Gestion du temps ==+== Obtenir le moment présent == 
 + 
 +<code java> 
 +import java.util.Date;​ 
 +................ 
 + //​obtenir la date courante 
 + Date date = new Date(); 
 +</​code>​ 
 + 
 +=== Gestion du temps ===
  
 Si vous voulez représenter la gestion du temps (mais vous pouvez vous en passer), voici une approche très simple :  Si vous voulez représenter la gestion du temps (mais vous pouvez vous en passer), voici une approche très simple : 
Line 90: Line 107:
 </​code>​ </​code>​
  
-== Saisir des entiers ou des boolean au clavier ==+=== Saisir des entiers ou des boolean au clavier ​===
 <code java> <code java>
 import java.util.Scanner;​ import java.util.Scanner;​
Line 100: Line 117:
 </​code>​ </​code>​
  
-== Vision Globale ​ ==+=== Vision Globale  ​===
  
 Attention, votre code ne correspond probablement pas à cela !! Attention, votre code ne correspond probablement pas à cela !!
 +
 <code java> <code java>
-public Parcours creerParcours() throws InterruptedException{ +public Parcours creerParcours(Membre m) throws InterruptedException{  
- Scanner sc = new Scanner(System.in); + System.out.println("​Creation de parcours "); 
- PointDate pCourant = null+ ... 
- Parcours parcours = new Parcours(); + .... 
- System.out.println("​On commence ? (true or false)"​); +                ​PointDate pCourant = saisirPointDate();​
- boolean encore = sc.nextBoolean();;​ + Parcours parcours = new Parcours(pCourant); 
- int x = 0; + boolean encore = true;
- int y = 0;+
  while (encore){  while (encore){
- System.out.println("​ X "); + pCourant = saisirPointDate();
- x = sc.nextInt();​ +
- System.out.println("​ Y "); +
- y = sc.nextInt();​ +
-     //obtenir la date courante +
-     Date date = new Date(); +
- pCourant = new PointDate(x,y,date); +
  parcours.addPoint(pCourant);​  parcours.addPoint(pCourant);​
 + System.out.println("​Distance parcourue : " + parcours.distance());​
 + System.out.println("​Durée depuis le départ : " + parcours.duree() + " soit :" + parcours.duree()/​1000 + " secondes"​ );
 + ....
  System.out.println("​On continue ? (true or false)"​);​  System.out.println("​On continue ? (true or false)"​);​
  encore = sc.nextBoolean();​  encore = sc.nextBoolean();​
- Thread.sleep(10000);  //1000 milliseconds is one second.+ Thread.sleep(intervalle);  //1000 milliseconds is one second.
  }  }
  return parcours;   return parcours;
  }  }
-</code>+  
 + private PointDate saisirPointDate() { 
 + PointDate pCourant; 
 + int x; 
 + int y; 
 + System.out.println("​ X "); 
 + x = sc.nextInt();​ 
 + System.out.println("​ Y "); 
 + y = sc.nextInt();​ 
 + //obtenir la date courante 
 + Date date = new Date(); 
 + pCourant = new PointDate(x,​y,​date);​ 
 + return pCourant; 
 + }
  
 +</​code>​
  
-<​html>​ 
-<!-- 
-==== Faîtes tout seul! ==== 
-  
-* Vous commencerez par modéliser puis vous vous intéresserez aux codes : 
-      * Nous avons besoin de manipuler des triangles. Un triangle c'est un polygone, évidemment. ​ 
-      * On veut pouvoir créer un triangle en donnant ses trois sommets : new Triangle (p1, p2, p3) 
-      * On veut pouvoir savoir si un triangle est équilatérale. ​ 
-      * Pour cela vous aurez besoin de calculer la distance d'un point relativement à un autre. 
-      * On ne peut pas ajouter un point à un triangle. 
  
---!> 
-</​html>​ 
2015_2016/s2/td/td_classes-code-avancees.txt · Last modified: 2016/03/11 17:09 by bain