S8: Prog. des interfaces graphiques en C++ (PIG)
Auteurs
- Emmanuel Dellandréa & Stephane Derrode, Département Mathématiques et Informatique, Centrale Lyon
Objectifs
Développer vos compétences dans le domaine de la programmation objet, par le biais de la programmation en C++ et le développement d’interfaces graphiques avec la librairie QT.
Table des matières
Prog. des interfaces graphiques en C++ (PIG)¶
Lien vers le déroulé des séances.
Pour programmer en C++, nous utiliserons le logiciel QT dans sa license Educational. Merci de l’installer en suivant ce tuto.
L’examen, sur papier, portera sur les connaissances acquises en programmation C++, et non sur l’usage de QT. Le savoir-faire et les compétences seront évaluées sur la base d’un projet en binôme.
Pdfs des cours et tutos specifiques¶
- Emmanuel Dellandréa, Cours: Initiation à la programmation en C.
- Stéphane Derrode, Cours: Programmation en C++.
- Tutoriel #1: Comment faire communiquer Qml et C++ ?
- Tutoriel #2: Versioning avec Git. La dernière section de cette page donne quelques informations supplémentaires.
- Tutoriel #3: Comment créer son propre composant QML et l’intégrer dans une interface graphique ?
TD et BE¶
- Commencez par le tuto Comment créer un projet C++ avec QT Creator ?, et réalisez les exercices du BE #1: Démarrer la prog. en C++.
- BE #2: Séance 2. Corrigé Séance BE #2.
- BE #3: Séance 3. Corrigé Séance #3 : opérateurs, classe générique.
- BE #4: Séance 4. Exceptions #1, Exceptions #2, Exceptions #3.
Projets en binome¶
Vos projets seront évalués sur la base de la dernière version publiée sur votre gitlab le samedi 05/04/2025 à 9h00.
Consignes
- Le projet sera développé en binôme, sur un repository gitlab de l’école (cf. tutoriels ci-dessous), pour faciliter le travail de développement et d’intégration entre les deux étudiants.
- Le binôme doit appartenir au même groupe de TP (soit le groupe de Mr Dellandréa, soit le groupe de Mr Derrode).
- Chaque binôme renseigne, au début du projet, ce fichier partagé 2025 : dépôt des noms, des pseudos et de l’adresse du projet. ATTENTION Choisissez le bon onglet du fichier (et donc le bon groupe), en sélectionnant le nom de votre encadrant!
-
Votre repo Gitlab doit être privé, mais veillez à donner le statut de reporter à votre encadrant. Cela lui permettra de suivre à distance l’évolution de votre travail :
- pour Stéphane Derrode : pseudo ‘sderrode’, stephane.derrode@ec-lyon.fr
- pour Emmanuel Dellandréa : pseudo ‘edelland’, emmanuel.dellandrea@ec-lyon.fr
-
Le projet devra être développé en utilisant les bonnes pratiques de développement présentées durant les cours (clarté du code, gestion propre de la mémoire allouée dynamiquement, gestion des exceptions…).
-
Le dépôt git doit contenir
- un fichier readme.md contenant a minima le nom des concepteurs, et quelques explications (usage, pb recontrés, état de finalisation du projet, captures d’écran du jeu…)
- un fichier .gitignore permettant de ne suivre que les fichiers sources et non les fichiers compilés (des .gitignore spécialisés dans les projets C++ existent sur le net, pas besoin de l’inventer !).
Projets à choisir
Vous devez choisir l’un des trois sujets suivants :
- Projet: le jeu du 2048.
- Projet: Motus.
- Projet: le Sudoku.
Quelques trucs pour utiliser git¶
- Tutoriel INF-TC2: git/Gitlab/Github Desktop, avec une vidéo du tuto.
Remarque : Le tuto ci-dessus est destiné à un projet Python. Pour un projet C/C++, vous devez adapter le fichier .gitignore, pour qu’il exclus tous les fichiers de compilation (qui n’ont pas à être suivi par git): voici un lien vers le .gitignore typique d’un projet C++. - github-git-cheat-sheet !