Cours:DevoirMaisonPOO1 : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Sujet 2)
 
(11 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
 
Dans ce DM vous devrez :
 
Dans ce DM vous devrez :
 
*analyser un cahier des charges et produire :
 
*analyser un cahier des charges et produire :
 
**un diagramme de classe
 
**un diagramme de classe
 
**un diagramme d'objets
 
**un diagramme d'objets
*utiliser des classes existantes étudiées pendant les TPs
+
**le code correspondant
 +
**{{Rouge|Vous veillerez à la cohérence entre diagrammes et code}} : nom de classe, méthodes ...
 +
*Pour pourrez utiliser les classes étudiées pendant les TPs
 
**Lampe
 
**Lampe
 
**Bouton
 
**Bouton
Ligne 9 : Ligne 12 :
 
*créer une classe
 
*créer une classe
  
 +
=Consignes=
  
=Sujet 1=
+
* En binômes libres (mix AII et ESE possible) en s'inscrivant au secrétariat
 
+
* Le DM sera à rendre selon les modalités suivantes :
*vous avez à disposition 4 boutons et 2 leds
+
** Date limite : lundi 29/09 à 23h59
*l'état de chaque led est contrôlé par 2 boutons
+
** Par mail à B. Jacquot ET F. Morain-Nicolier
*la led doit clignoter en permanence (clignotement visible -> fréquence < 10Hz)
+
** En incluant une archive zip contenant :
*un appui sur l'un des boutons augment la fréquence de clignotement de la led
+
***les fichiers du projet
*un appui sur l'autre bouton diminue la fréquence de clignotement de la led
+
***le diagramme de classe réalisé sur QT creator
*on veillera à rester dans la plage 0,1Hz-10Hz
+
***le diagramme d'objet sous forme pdf ( par exemple à l'aide de draw.io )
*en plus pourra éventuellement à l'aide de l'interface graphique :
+
** Code généré par ChatGPT ou ses cousins  : 0/20
**arrêter/activer le clignotement de chaque led individuellement
+
** Code en commun entre deux binômes : 0/20 pour les deux binômes
**arrêter le clignotement sur toutes les leds simultanément
 
 
 
  
=Sujet 2=
+
=Cahier des charges=
  
*vous avez à disposition 2 boutons et 4 leds
+
Votre cahier des charges sera défini par les choix suivants, selon votre numéro de binôme (voir la table) :
*chaque bouton modifie l'état de 2 leds
+
*l'un des types de led :
*à chaque appui sur le bouton, on change de led allumée
+
**a) 4 leds sur GPIO
*depuis l'interface graphique on pourra :
+
**b) carte barregraphe
**stopper le fonctionnement et éteindre toutes les leds (le bouton n'a plus d'effet)
+
**c) carte mcp23008
**remettre en route le fonctionnement
+
*un type d'affichage
 +
**1) bargraphe ( le nombre de leds allumées varie )
 +
**2) chenillard (1 seule led allumée qui se déplace)
 +
*une fréquence de changement
 +
**x) 1Hz
 +
**y) 3Hz
 +
*un bouton de commande ON/OFF du clignotement (à la fréquence indiquée ci dessus)
 +
**i) 1 bouton physique sur GPIO
 +
**j) un bouton Qt
  
 +
En plus, pour tout le monde, vous devrez avoir :
 +
* 1 bouton pour quitter l'application
 +
* un moyen d'afficher sur l'écran tactile l'état du système
  
=Sujet 3=
+
=Tableau de contraintes=
  
*vous avez à disposition 2 boutons et 4 leds
+
{| class="wikitable"
*le nombre de leds allumées dépend des boutons :
+
|-
**l'appui sur l'un des boutons allume une led supplémentaire
+
! Numero binôme !! a/b/c !! 1/2 !! x/y !! i/j
**l'appui sur l'autre bouton éteint la dernière led allumée
+
|-
**rque, il s'agit du fonctionnement typique d'un bargraphe
+
| 1  || a || 1 || x || i
*depuis l'interface graphique on pourra :
+
|-
**éteindre toutes les leds
+
| 2 || a || 1 || x || j
**allumer toutes les leds
+
|-
 +
| 3  || a || 1 || y || i
 +
|-
 +
| 4 || a || 1 || y || j
 +
|-
 +
| 5  || a || 2 || x || i
 +
|-
 +
| 6  || a || 2 || x || j
 +
|-
 +
| 7  || a || 2 || y || i
 +
|-
 +
| 8  || a || 2 || y || j
 +
|-
 +
| 9  || b || 1 || x || i
 +
|-
 +
| 10 || b || 1 || x || j
 +
|-
 +
| 11 || b || 1 || y || i
 +
|-
 +
| 12 || b || 1 || y || j
 +
|-
 +
| 13 || b || 2 || x || i
 +
|-
 +
| 14 || b || 2 || x || j
 +
|-
 +
| 15 || b || 2 || y || i
 +
|-
 +
| 16 || b || 2 || y || j
 +
|-
 +
| 17 || c || 1 || x || i
 +
|-
 +
| 18 || c || 1 || x || j
 +
|-
 +
| 19 || c || 1 || y || i
 +
|-
 +
| 20 || c || 1 || y || j
 +
|-
 +
| 21 || c || 2 || x || i
 +
|-
 +
| 22 || c || 2 || x || j
 +
|-
 +
| 23 || c || 2 || y || i
 +
|-
 +
| 24 || c || 2 || y || j
 +
|}

Version actuelle datée du 22 septembre 2025 à 14:42

Dans ce DM vous devrez :

  • analyser un cahier des charges et produire :
    • un diagramme de classe
    • un diagramme d'objets
    • le code correspondant
    • Vous veillerez à la cohérence entre diagrammes et code : nom de classe, méthodes ...
  • Pour pourrez utiliser les classes étudiées pendant les TPs
    • Lampe
    • Bouton
  • utiliser des widgets/classes QT
  • créer une classe

Consignes

  • En binômes libres (mix AII et ESE possible) en s'inscrivant au secrétariat
  • Le DM sera à rendre selon les modalités suivantes :
    • Date limite : lundi 29/09 à 23h59
    • Par mail à B. Jacquot ET F. Morain-Nicolier
    • En incluant une archive zip contenant :
      • les fichiers du projet
      • le diagramme de classe réalisé sur QT creator
      • le diagramme d'objet sous forme pdf ( par exemple à l'aide de draw.io )
    • Code généré par ChatGPT ou ses cousins  : 0/20
    • Code en commun entre deux binômes : 0/20 pour les deux binômes

Cahier des charges

Votre cahier des charges sera défini par les choix suivants, selon votre numéro de binôme (voir la table) :

  • l'un des types de led :
    • a) 4 leds sur GPIO
    • b) carte barregraphe
    • c) carte mcp23008
  • un type d'affichage
    • 1) bargraphe ( le nombre de leds allumées varie )
    • 2) chenillard (1 seule led allumée qui se déplace)
  • une fréquence de changement
    • x) 1Hz
    • y) 3Hz
  • un bouton de commande ON/OFF du clignotement (à la fréquence indiquée ci dessus)
    • i) 1 bouton physique sur GPIO
    • j) un bouton Qt

En plus, pour tout le monde, vous devrez avoir :

  • 1 bouton pour quitter l'application
  • un moyen d'afficher sur l'écran tactile l'état du système

Tableau de contraintes

Numero binôme a/b/c 1/2 x/y i/j
1 a 1 x i
2 a 1 x j
3 a 1 y i
4 a 1 y j
5 a 2 x i
6 a 2 x j
7 a 2 y i
8 a 2 y j
9 b 1 x i
10 b 1 x j
11 b 1 y i
12 b 1 y j
13 b 2 x i
14 b 2 x j
15 b 2 y i
16 b 2 y j
17 c 1 x i
18 c 1 x j
19 c 1 y i
20 c 1 y j
21 c 2 x i
22 c 2 x j
23 c 2 y i
24 c 2 y j