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 21:06]
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 53: Line 54:
        * 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; Les coordonnées sont des coordonnées sur une sphère et pas des coordonnées cartésiennes,​ cependant dans le cadre de ce TD, travaillez "​simplement"​ avec des coordonnées cartésiennes;​+                - 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ésiennes,​ cependant dans le cadre de ce TD, travaillez "​simplement"​ avec des coordonnées cartésiennes;​
                 - le membre signale la fin du parcours qui est automatiquement enregistré dans sa 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,​ ... 
Line 59: Line 60:
        * 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 comme bon vous semble. 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 116: 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;
  }  }
 +
 + 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>​ </​code>​
  
  
2015_2016/s2/td/td_classes-code-avancees.txt · Last modified: 2016/03/11 17:09 by bain