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:12]
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 ...". 
 + 
 + 
 +Pouvez-vous étendre votre application pour donner la vitesse moyenne entre deux points donnés d'un parcours? ​
  
 ==== Questions ​ ==== ==== 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".+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 82: Line 87:
 {{ :​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?
 +    * 
 +
 +== Obtenir le moment présent ==
 +
 +<code java>
 +import java.util.Date;​
 +................
 + //​obtenir la date courante
 + Date date = new Date();
 +</​code>​
  
 === Gestion du temps === === Gestion du temps ===
Line 103: Line 120:
  
 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>​
  
  
2015_2016/s2/td/td_classes-code-avancees.txt · Last modified: 2016/03/11 17:09 by bain