Cours:InfoS3 POO : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Évaluations)
(Pour aller plus loin)
 
(84 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 3 : Ligne 3 :
 
* Pour installer QT Creator (ainsi que C++ et Qt) sous de nombreux OS : suivre ce tutoriel  
 
* Pour installer QT Creator (ainsi que C++ et Qt) sous de nombreux OS : suivre ce tutoriel  
 
  https://guillaumebelz.github.io/qtinstall/
 
  https://guillaumebelz.github.io/qtinstall/
 +
 +
* Guide d'installation de Qt par Geoffrey Lecoq (merci à lui) : [[Fichier:GuideQT_Lecoq.pdf]]
  
 
= Évaluations =  
 
= Évaluations =  
  
''à venir''
+
*[[Cours:DevoirPOOcpp2|Évaluation n°1]]
<!-- *[[Cours:DevoirPOO1cpp|Évaluation n°1]]-->
+
 
 +
<!--*[[Cours:DevoirPOO1|Évaluation n°1]]-->
 +
*[[Cours:DevoirPOO2Ressources|Évaluation n°2 ressources]]
 +
*[[Cours:DevoirPOO2|Évaluation n°2 sujet]]
 +
 
 +
*[[Cours:DevoirMaisonPOO1|Devoir maison n°1]]
  
<!-- *[[Cours:DevoirPOO1|Évaluation n°1]]
+
= Cours magistral =
*[[Cours:DevoirRPI|Évaluation n°2]]
+
 
-->
+
== Diapositives et support de cours ==
  
= Cours magistral=
+
* Diapositives de la partie Introduction : [[Media:POOintro.pdf]]
 +
* Diapositives de la partie Notions : [[Media:POOnotions.pdf]]
 +
* Diapositives de la partie Approfondissements : [[Media:POOapprofondissements.pdf]]
 +
* Support de cours imprimable : [[Media:POOsupport.pdf]]
  
'''CM #1''' : Lire et comprendre les trois premières parties du cours de POO d'openclassrooms :
+
== Projets de démonstration de CM ==
  
1. [https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c/1897113-decouvrez-la-notion-de-programmation-orientee-objet-poo Découvrez La notion de programmation orientée objet (POO)]
+
* Projet <code>minimal</code> : [[Media:minimal.zip]]
 +
* Projet <code>simpleNonOOCar</code> : [[Media:simpleNonOOCar.zip]]
 +
* Projet <code>simpleOOCar</code> : [[Media:simpleOOCar.zip]]
 +
* Projet <code>twoOOCars</code> : [[Media:twoOOCars.zip]]
 +
* Projet <code>formes_start</code> : [[Media:formes_start.zip]]
 +
* Projet <code>formes</code> : [[Media:formes.zip]]
 +
* Projet <code>formes_nonpolymorphes</code> [[Media:formes_nonpolymorphes.zip]]
 +
* Projet <code>formes_polymorphes</code> [[Media:formes_polymorphes.zip]]
  
2. [https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c/1897344-creez-les-classes-partie-1-2 Créez les classes (Partie 1/2)]
+
== Lecture externes potentiellement utiles ==
  
3. [https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c/1897606-creez-les-classes-partie-2-2 Créez les classes (Partie 2/2)]
+
'''Cours de POO d'openclassrooms''' :
  
'''CM #2''' : Lire et comprendre la partie du cours de POO d'openclassrooms sur l'héritage :
+
1. [https://openclassrooms.com/fr/courses/7137751-programmez-en-oriente-objet-avec-c/7673331-decouvrez-la-notion-de-poo Découvrez La notion de programmation orientée objet (POO)]
  
[https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c/1898475-decouvrez-lheritage Découvrez l'héritage]
+
2. [https://openclassrooms.com/fr/courses/7137751-programmez-en-oriente-objet-avec-c Programmez en orienté objet avec C++]
  
'''CM #3''' : Les pointeurs et leur utilisation avec des objets :
+
'''Les pointeurs et leur utilisation avec des objets''' :
  
1. [https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c/1896772-declarez-les-pointeurs Déclarez les pointeurs]
+
1. [https://openclassrooms.com/fr/courses/1894236-apprenez-a-programmer-en-c/7534366-declarez-les-pointeurs Déclarez les pointeurs]
  
2. [https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c/1898260-associez-les-classes-et-les-pointeurs Associez les classes et les pointeurs] (lire jusqu'à « Le pointeur this » inclu)
+
2. [https://openclassrooms.com/fr/courses/7137751-programmez-en-oriente-objet-avec-c/7531356-associez-les-classes-et-les-pointeurs Associez les classes et les pointeurs]  
  
 
<!-- [[media:POO-Support.pdf|Support de cours en pdf (à télécharger)]]
 
<!-- [[media:POO-Support.pdf|Support de cours en pdf (à télécharger)]]
 
-->
 
-->
  
=Tds : C++ sous QT Creator=
+
= Séances : C++ sous QT Creator =
  
==[[Cours:pooTD1_qtcreator|TD 1 : découverte du C++ et de QT Creator]]==
+
*[[Cours:pooTD1_qtcreator|séance 1 (1,5h) : découverte du C++ et de QT Creator]]
 +
*[[Cours:pooTD2_classes|séance 2 (3h) : création de classes et manipulation d'objets]]
 +
*{{Rouge|Evaluation (1,5h)}}
 +
*[[Cours:interfaceQT|séance 3 (1,5h) : 1ère interface graphique]]
 +
*[[Cours:signalSlotQT|séance 4 (1,5h)  : classe avec slot et émission de signal]]
 +
*[[Cours:TPgpioQT|séance 5 (3h) : GPIO (pi4) ]]
 +
*[[Cours:TPheritageIO|séance 6 (4,5h): on hérite ! (pi4)]]
 +
*[[Cours:HeritageWidgetQT|séance 7 (1,5h) : spécialisation de Widgets]]
 +
*[[Cours:TPqtFNS|séance 8 (3h) : Machine à état fini ("pi4") ]]
 +
*[[Cours:pointeursCpp|séance 9 (1,5h) : manipulation de pointeurs/références]]
 +
*[[Cours:qtTCP|séance 10 (1,5h) : Révisions ou communication entre 2 cartes par TCP]]
  
==[[Cours:pooTD2_classes|TD 2 : création de classes et manipulation d'objets]]==
 
  
==[[Cours:pooTD3_pointeurs|TD 3 : pointeurs et objets]]==
+
*{{Rouge|Evaluation (3h) (pi4)}}
  
==[[Cours:pooTD4_heritage|TD 4 : héritage]]==
+
=Pour aller plus loin=
 +
*[[Cours:diyWidgetQT|Créer son widget]]
 +
*[[Cours:TPgpioControleur|Tp 2 : contrôleur de lampes]]
 +
*[[Cours:gitQtCreator|Utilisation de git avec qt creator]]
  
<!--
+
=Ressources=
==[[Cours:pooProcessing1|Td1 : découverte de la poo avec processing]]==
+
*https://www.kdab.com/wp-content/uploads/stories/slides/DD13/dd13_signalsslots.pdf
  
==[[Cours:pooProcessing2|Td2 : création d'une classe - Balle avec rebonds]]==
+
=Logiciel=
 +
==Vm Qt Creator==
  
==[[Cours:pooProcessing3|Td3 : création d'une hiérarchie de classes avec héritage]]==
+
Vous pouvez utiliser l'image VirtualBox suivante sur laquelle QtCreator est installé
  
-->
+
https://drive.google.com/file/d/1BdVNnAtpYM14ztf215gBVx5b2P8iAAix/view?usp=sharing
  
=Tds : partie QT=
 
  
==[[Cours:interfaceQT|Td  : 1ère interface graphique]]==
+
Le mot de passe est geii
  
==[[Cours:signalSlotQT|Td  : classe avec slot et émission de signal]]==
+
==Simulation de gpio==
  
==[[Cours:compositionQT|Td  : classe dans une classe]]==
+
*simulateur leds/bp/interrupteur
 +
**dans la machine virtuelle VirtualBox
 +
**au besoin supprimer le fichier GpioSimulateur.zip dans le répertoire "Téléchargements"
 +
**télécharger [[Media:GpioSimulateur.zip]] dans le répertoire "Téléchargements"
 +
**lancer un "émulateur de Terminal", taper les commandes :
 +
<source lang=bash>
 +
cd ~/Téléchargements/
 +
rm gpioSimulateur
 +
unzip GpioSimulateur.zip
 +
chmod +x gpioSimulateur
 +
./gpioSimulateur
 +
</source>
  
==[[Cours:gpioQT|Td  : GPIO]]==
+
=Vrac=
  
==[[Cours:qtTCP|Td : communication entre 2 cartes par TCP]]==
+
==[[Cours:POONomenclature|Nomenclature diagramme objet]]==
  
==[[Cours:heritageWidgetQT|Td  : spécialisation de Widgets]]==
+
==Autres pages wiki utiles==
 
+
*[[Cours:modulesGrove]]
=Vrac=
 
 
*[[Cours:rpi]]
 
*[[Cours:rpi]]
 
*[[Cours:pooQT]]
 
*[[Cours:pooQT]]
 
*[[Cours:QT]]
 
*[[Cours:QT]]
 +
*[[Cours:infoS3_POO_archives]]
 +
 +
=Cas particuliers=
 +
 +
==surcharge et signaux/slots==
 +
 +
Il faudra indiquer au compilateur le type des paramètres pour faire le choix du bon signal et/ou slot :
 +
 +
<source lang=cpp>
 +
    connect(ui->doubleSpinBox,QOverload<double>::of(&QDoubleSpinBox::valueChanged),
 +
            this,&MainWindow::afficheDouble);
 +
    connect(ui->doubleSpinBox,QOverload<double>::of(&QDoubleSpinBox::valueChanged),
 +
            this,QOverload<double>::of(&MainWindow::affiche));
 +
    connect(ui->doubleSpinBox,QOverload<const QString &>::of(&QDoubleSpinBox::valueChanged),
 +
            this,QOverload<const QString &>::of(&MainWindow::affiche));
 +
</source>

Version actuelle datée du 13 octobre 2024 à 16:15

Pratique

  • Pour installer QT Creator (ainsi que C++ et Qt) sous de nombreux OS : suivre ce tutoriel
https://guillaumebelz.github.io/qtinstall/

Évaluations

Cours magistral

Diapositives et support de cours

Projets de démonstration de CM

Lecture externes potentiellement utiles

Cours de POO d'openclassrooms :

1. Découvrez La notion de programmation orientée objet (POO)

2. Programmez en orienté objet avec C++

Les pointeurs et leur utilisation avec des objets :

1. Déclarez les pointeurs

2. Associez les classes et les pointeurs


Séances : C++ sous QT Creator


  • Evaluation (3h) (pi4)

Pour aller plus loin

Ressources

Logiciel

Vm Qt Creator

Vous pouvez utiliser l'image VirtualBox suivante sur laquelle QtCreator est installé

https://drive.google.com/file/d/1BdVNnAtpYM14ztf215gBVx5b2P8iAAix/view?usp=sharing


Le mot de passe est geii

Simulation de gpio

  • simulateur leds/bp/interrupteur
    • dans la machine virtuelle VirtualBox
    • au besoin supprimer le fichier GpioSimulateur.zip dans le répertoire "Téléchargements"
    • télécharger Media:GpioSimulateur.zip dans le répertoire "Téléchargements"
    • lancer un "émulateur de Terminal", taper les commandes :
cd ~/Téléchargements/
rm gpioSimulateur
unzip GpioSimulateur.zip
chmod +x gpioSimulateur
./gpioSimulateur

Vrac

Nomenclature diagramme objet

Autres pages wiki utiles

Cas particuliers

surcharge et signaux/slots

Il faudra indiquer au compilateur le type des paramètres pour faire le choix du bon signal et/ou slot :
    connect(ui->doubleSpinBox,QOverload<double>::of(&QDoubleSpinBox::valueChanged),
            this,&MainWindow::afficheDouble);
    connect(ui->doubleSpinBox,QOverload<double>::of(&QDoubleSpinBox::valueChanged),
            this,QOverload<double>::of(&MainWindow::affiche));
    connect(ui->doubleSpinBox,QOverload<const QString &>::of(&QDoubleSpinBox::valueChanged),
            this,QOverload<const QString &>::of(&MainWindow::affiche));