SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
CONTACT: zer.saad@gmail.com | ichioui@gmail.com | toufik.jadli@gmail.com
PROJETC++
Applicationdegestion
desétudiantsdulycée
ÉCOLENATIONALE
DESSCIENCESAPPLIQUÉES
KENITRA
Réalisépar
Pr.HabibaChaoui
Encadrépar
AyoubIchioui
ToufikJadli
SaadZerhouni
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
1
Sommaire
Remerciements.............................................................................................. 2
Introduction ....................................................................................................3
La problématique.........................................................................................3
Partie Conception........................................................................................... 4
C’est quoi Le besoin traité par le projet ? ......................................................5
Le Modèle Fonctionnel.................................................................................5
Les Règles de Gestion ................................................................................. 6
Le modèle conceptuel des données..............................................................7
Modèle Logique de Donnée .........................................................................7
Les différents fonctionnalités du projet ....................................................... 8
Partie Technique ............................................................................................ 9
Les Outils utilisé.........................................................................................10
Application des règles de Gestion...............................................................11
La fenêtre sur Qt-Creator...........................................................................11
Envoie de requêtes.....................................................................................12
Les requêtes du Projet................................................................................12
L’administration.........................................................................................13
Le Résultat Final.........................................................................................14
Conclusion ....................................................................................................15
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
2
Remerciements
On tient tout d’abord à remercier notre encadrant Mme le professeur Habiba
CHAOUI pour avoir bien voulu encadrer ce travail ainsi que pour sa riche contribution et ses
précieux conseils.
L’expression de notre haute reconnaissance à l’administration de l’école qui n’a
épargné aucun effort pour mettre à notre disposition la documentation nécessaire au niveau
de la bibliothèque et d’avoir accordé l’organisation de ces projets très enrichissants.
Enfin on tient à remercier l’ensemble du corps enseignant de l’ENSA Kenitra
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
3
Introduction
La réalisation d’un projet permet de bien maitrisé les techniques étudiées, apprendre
des nouvelles techniques, se situé dans un cadre professionnel de travail et le point le plus
important c’est d’apprendre les méthodes pour gérer un projet entre équipe. Notre Projet
est basé sur une problématique bien connue qui est :
LA GESTION DES ETUDIANTS D’UN LYCEE
La problématique
La gestion des données est un critère essentiel pour toute entreprise ou
établissement il se peut que ça soit une gestion de stock, gestion des ressources humaines…
Pour ce projet on a opté pour le cas d’un lycée qui aura besoin de gérer l’ensemble de ces
étudiants à travers une interface simple et pratique. Cette gestion sera bien sûr traitée à
travers une base de données stockée sur le local ou sur un serveur privé de l’établissement.
Le problème se posent au niveau de l’administration, surtout lorsque le nombre des
étudiants, des professeurs et des matières augment et ça devient de plus en plus délicat de
traité tous ces données manuellement, et stocké par la suite dans l’archive de l’école. C’est
ici que l’informatisation des données devient un élément nécessaire, et le traitement
automatique améliore énormément le rendement de l’établissement que ça soit au niveau
du gain du temps ou au niveau des ressources humaines choisi pour effectuer les tâches.
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
4
Partie Conception
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
5
Avant de se mettre à coder des lignes et des lignes de code, il faut tout d’abord
limiter et tracer un cadre de développement qui donnera la vue générale du projet et les
objectifs souhaité par ce dernier. C’est pour cela que la partie primordiale du projet est sa
conception car une conception idéale donne automatiquement un projet réussi.
Afin d’avoir une conception Optimale on se pose de différentes questions que notre
projet doit absolument y répondre.
C’est quoi Le besoin traité par le projet ?
Le besoin traité est plus ou moins la problématique qu’on a déjà cité précédemment,
mais aussi il y a le besoin Personnel du développeur dans notre cas ce besoin personnel se
constitue dans l’enrichissement de nos connaissances en orienté objet et surtout à travers
une interface graphique. Dans d’autre cas différents le développeur de projet peut avoir des
besoins différents derrière la réalisation d’un tel projet, tel que :
- La réalisation d’un produit qui sera offert aux clients afin de réaliser des revenues
financières.
- Se posé dans un cadre professionnel de développement informatique.
- …
Une fois les besoins derrière la réalisation de l’application sont connus, on peut donc
entamer la partie la plus importante de la conception de l’application, qui est la réalisation
du Modèle fonctionnel et les règles de gestion de cette application.
Le Modèle Fonctionnel
Le modèle fonctionnel répond au besoin de gestion de la base de données. il permet
de définir la structure principale de cette dernière et de mettre les règles de gestion en
claire. Pour notre projet on se place dans un cas d’une application qui a comme but
principale l’apprentissage et l’enrichissement de notre culture informatique, c’est pour cela
que le modèle de l’application sera modeste mais en même temps qui répond à beaucoup
de critère de gestion.
On aura donc à gérer les étudiants, les professeurs et les matières et finalement la
gestion des droits de l’administrateur.
Dans la gestion des étudiants on traitera :
- La liste des étudiants du lycée
- La gestion des absences
- La note d’un étudiant dans une matière
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
6
Dans la gestion des professeurs on traitera :
- La liste des professeurs du lycée
- La matière enseignée par chaque professeur
Les Règles de Gestion
Les données qu’on aura à stocké dans la base de donnée seront obligatoirement
définie par quelque règles de gestion. Les règles qu’on va suivre pour ce projet sont :
Un étudiant est définie par :
- Nom
- Prénom
- CNE
- CIN
- Date de Naissance
- Numéro de téléphone
- Adresse
Un Professeur est définie par :
- Nom
- Prénom
Une matière est définie par :
- Libelle
- Coefficient
Pour une absence on enregistrera :
- La matière
- L’étudiant qui s’est absenté
- La date de l’absence
Pour la note on enregistrera :
- L’étudiant
- La note
- La matière
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
7
Le modèle conceptuel des données
A partir des règles posées dans l’étape précédente on peut établir le modèle
conceptuel de donnée
Modèle Logique de Donnée
Etudiant(numapp,cne,cin,nom,prenom,adresse,date_naissance)
Matiere(id_matiere,libelle,coefficient,#id_prof)
Professeur(id_prof,nom,prenom)
Abscence(#numapp,#id_matiere,date_abscence)
Evaluation(#numapp,#id_matiere,note)
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
8
Les différents fonctionnalités du projet
L’application qu’on souhaite réalisé aura plusieurs méthodes pour traiter les données
stocké sur la base de donnée, on aura donc besoin de définir tous les méthodes qu’on
souhaitera développer pour chaque entité de la base de donnée.
Pour toutes les entités on aura quatre méthodes principales :
- Ajouter un élément
- Modifier un élément
- Supprimer un élément
- Afficher la liste de tous les éléments
Pour des raisons de sécurité on ajoutera une table d’administrateurspour que seuls les
personnels ayant le droit de se connecter puissent accéder à l’interface et faire les
changements cité dessus sur la base de données.
Un administrateur peut aussi modifier les paramètres d’accès (login et mot de passe)
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
9
Partie Technique
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
10
Les Outils utilisé
Pour ce projet on a essayé d’utiliser des technologies diverses de développement
d’application professionnel, tout d’abord on travaillera avec la programmation Orienté
Objet et comme environnement de développement on a choisi le langage C++.
L’environnement de développement nécessite aussi une interface graphique qui sera
présenté sur le FrontOffice, on a choisi pour la réalisation de cette interface le Framework
de Nokia-Digia« le Qt »
Une petite présentation de Qt à partir de Wikipédia :
Qt est un Framework orienté objet et développé en C++ par
QtDevelopmentFrameworks, filiale de Digia. Il offre des composants d'interface graphique
(widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution,
d'analyse XML, etc. Qt est par certains aspects un framework lorsqu'on l'utilise pour concevoir
des interfaces graphiques ou que l'on architecture son
application en utilisant les mécanismes des signaux et
slots par exemple.
Qt permet la portabilité des applications qui
n'utilisent que ses composants par simple recompilation
du code source. Les environnements supportés sont les
Unix (dont Linux) qui utilisent le système graphique X
Window System ou Wayland, Windows, Mac OS X et
également Tizen. Le fait d'être une bibliothèque
logicielle multiplate-forme attire un grand nombre de
personnes qui ont donc l'occasion de diffuser leurs
programmes sur les principaux OS existants.
Qt est notamment connu pour être la bibliothèque sur laquelle repose l'environnement
graphique KDE, l'un des environnements de bureau les plus utilisés dans le monde Linux.
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
11
Pour le système de gestion de base de données (SGBD) on a utilisé MySQL pour la simple
raison qu’on a déjà traité ce système au cours de notre formation.
- La relation entre C++ et le SGBD
Ainsi, Qt offre une connexion rapide est simple à la base de donnée cela à travers les
lignes de code suivantes :
QSqlDatabase admindb =QSqlDatabase::addDatabase("QMYSQL");
admindb.setHostName("localhost");
admindb.setUserName("root");
admindb.setPassword("");
admindb.setDatabaseName("gestionnaire");
Application des règles de Gestion
phpMyAdmin sera notre interface qui va nous permettre de créer les différentes
tables de la base de données en respectant la structure qu’on a déjà posé lors de la
réalisation du MCD.
La fenêtre sur Qt-Creator
La réalisation des fenêtres sur Qt peut être faite par deux méthodes :
- A travers Qt-Designer
- A travers Qt-Creator
La différence entre eux c’est que Qt designer offre une interface de design graphique très
simple à réaliser et à partir de laquelle on réalise plusieurs fenêtres de notre application.
Alors que sur Qt-Creator on aura besoin de tout codé ce qui nous offre une flexibilité et un
contrôle totale de l’application.
Pour ce projet on opte à l’utilisation de Qt-Creator pour bénéficier du contrôle offert par ce
dernier.
La réalisation d’une fenêtre sur Qt-Creator se fait de la manière suivante :
- On réalise le Layout général de l’application
- On définit les sous-Layouts
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
12
- On remplit chaque sous-Layout par les buttons ou zone texte nécessaire
Envoie de requêtes
La communication avec la base de données se fait à travers des requêtes SQL, Qt-creator à
une méthode très simple pour gérer ces requêtes. Après avoir établie la connexion à la base
de donnée on peut donc lancer des requêtes et cela à travers les deux fonctions hérité de la
class QSqlQuery :
- Query.prepare()
- Query.exec()
Et on peut récupérer les résultats de sortie de la requête à l’aide de la fonction de la même
class :
- Query.next()
Les requêtes du Projet
D’après ce qu’on a vu précédemment, on aura besoin à effectuer quatre fonctions
principales sur les différentes tables de la base de données.
- Requête d’ajout d’un élément :
La requête responsable de l’ajout d’un attribut dans la base de donnée est « INSERT
INTO » l’interprétation de cette requête sur Qt se fait par la requête suivante :
INSERTINTO`table_en_question `(`valeur1`,`valeur2`)VALUES(:val1,:val2)
Puis on indique que :val1 et :val2 sont les variables données par l’utilisateur et cela se
fait par la fonction « bindValue() » qui est une fonction hérité de la class des requêtes
QSqlQuery.
- Requête de modification d’élément :
UPDATE`table_en_question`
SET`attribut1`=:val1,`attribut2`=:val2
WHERE id=:id_element_a_modifie
- Requête de suppression d’un élément :
DELETE FROM `table_en_question` WHERE `id`=:id_element_a_supprimer
- Requête d’affichage de l’ensemble des éléments :
Pour l’affichage la requête est une « SELECT » mais le principe d’afficher tousles
éléments sous forme d’un tableau qui est un peu spécial, car on aura à définir cela au niveau
du code est non pas le SQL.
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
13
On sait que le SQL renvoi plusieurs valeurs sous forme d’un tableau, et on sait
d’avance les dimensions du tableau qu’on souhaite avoir comme sortie, donc on aura besoin
de définir ce tableau sur Qt avec la class QTableWidget puis on remplit en boucle chaque
élément de ce tableau par les éléments renvoyés par la requête.
L’administration
Pour garder la sécurité et avoir un contrôle sur les droits d’accès à cette application
on aura besoin d’une interface d’administration, à partir de laquelle on doit se connecté
avant de pouvoir accéder au contenue de l’application.
Pour cela on a ajouté une autre table d’administrateurs qui aura les attributs
suivants :
- Nom d’administrateur
- Prénom d’administrateur
- Login
- Mot de passe
Et pour garder une sécurité avancé au niveau de la base de donnée on utilise un
cryptage MD5 du mot de passe afin qu’il soit illisible même si on accède à la base de donnée
- A propos du cryptage MD5 :
C’est un Algorithme Open Source de Hashage qui permet de crypter des chaines de
caractère sans avoir la possibilité de la décrypté. Exemple :
MD5(‘mot de passe’) = d72e513b7eca61b2dbb7e2e768f5969a
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
14
Le Résultat Final
Presque la totalité du trajet est déjà effectué, il ne reste donc qu’à mettre pour
chaque entité de la base de donnée les quatre fonctions qu’on a définie. Puis on obtient le
projet Final suivant :
Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013
15
Conclusion
Le projet d’application de gestion d’étudiant, avait pour but de créer une application
qui permet de gérer l’ensemble des étudiants d’un lycée.
Pour atteindre notre objectif on a opté pour une solution : base de donnée gérée par
une application externe (Remote Control) , ce qui nous a permis d’appliqué et de développé
nos connaissance du concept orienté objet ainsi que les langage SGBD et plus précisément
le MYSQL.
Ce projet nous a été bénéfique d’un point de vue conception et design, puisque c’est
notre toute première application avec interface graphique, développant ainsi notre côté
artistique et créatifs.
Lors de la réalisation, on a été confronté a plusieurs obstacles, surtout le problème
d’intégration du MYSQL avec le QT.
Bien que le travail effectuer est assez important, mais vu les contraintes du temps, il
reste extensible.
Voila quelques idées proposées pour l'amélioration :
 ajouter la gestion des niveaux et des classes.
 Ajouter une interface séparé pour les professeurs, permettant la saisi des notes.
 Ajouter l’option de rédaction et impression automatique des bulletins de chaque
étudiant.
 Elargir notre application afin de gérer un établissement du niveau supérieur tel
que notre école.

Más contenido relacionado

La actualidad más candente

TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-CorrectionLilia Sfaxi
 
Rapport gestion projet
Rapport gestion projetRapport gestion projet
Rapport gestion projetRabeb Boumaiza
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...MOHAMMED MOURADI
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Georges Amichia
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Ramzi Noumairi
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...Madjid Meddah
 
Plateforme e-learning PHP
Plateforme e-learning PHP Plateforme e-learning PHP
Plateforme e-learning PHP Saâd Zerhouni
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementNassim Bahri
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Addi Ait-Mlouk
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsLilia Sfaxi
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Anas Riahi
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Conception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerceConception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerceAHMEDBELGHITH4
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Ayed CHOKRI
 

La actualidad más candente (20)

TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
Rapport gestion projet
Rapport gestion projetRapport gestion projet
Rapport gestion projet
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
 
Plateforme e-learning PHP
Plateforme e-learning PHP Plateforme e-learning PHP
Plateforme e-learning PHP
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Conception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerceConception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerce
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats
 

Destacado

Rapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilelRapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilelBelwafi Bilel
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
Rapport de stage Comptabilité + Sujet: Les compétences et les actions nécessa...
Rapport de stage Comptabilité + Sujet: Les compétences et les actions nécessa...Rapport de stage Comptabilité + Sujet: Les compétences et les actions nécessa...
Rapport de stage Comptabilité + Sujet: Les compétences et les actions nécessa...Fadhel El Fahem
 
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08bouzidi26
 

Destacado (8)

Rapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilelRapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilel
 
PROJET JAVA BD MySQL
PROJET JAVA BD MySQLPROJET JAVA BD MySQL
PROJET JAVA BD MySQL
 
Eclipse
EclipseEclipse
Eclipse
 
Eclipse Vs Netbeans
Eclipse Vs NetbeansEclipse Vs Netbeans
Eclipse Vs Netbeans
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Rapport de stage Comptabilité + Sujet: Les compétences et les actions nécessa...
Rapport de stage Comptabilité + Sujet: Les compétences et les actions nécessa...Rapport de stage Comptabilité + Sujet: Les compétences et les actions nécessa...
Rapport de stage Comptabilité + Sujet: Les compétences et les actions nécessa...
 
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
Realisation d une application de gestion d-un -tablissement priv-e 26-04_08
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 

Similar a Rapport Projet Gestion des Etudiants avec C++

Présentation carrière leo propre
Présentation carrière leo proprePrésentation carrière leo propre
Présentation carrière leo propreleo-francois17
 
Rapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfRapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfsaraachkaou
 
Projet carrière - IS
Projet carrière - ISProjet carrière - IS
Projet carrière - ISdangauvin13
 
Refonte de site web : cas pratique - site du master INI
Refonte de site web  : cas pratique - site du master INIRefonte de site web  : cas pratique - site du master INI
Refonte de site web : cas pratique - site du master INICédric Mouats
 
CERTIFICATION EN DIGITAL MARKETING MANAGEMENT
CERTIFICATION EN DIGITAL MARKETING MANAGEMENTCERTIFICATION EN DIGITAL MARKETING MANAGEMENT
CERTIFICATION EN DIGITAL MARKETING MANAGEMENTWilliam ENOCH
 
Cyproj06 formation-projets-et-methodologies-si
Cyproj06 formation-projets-et-methodologies-siCyproj06 formation-projets-et-methodologies-si
Cyproj06 formation-projets-et-methodologies-siCERTyou Formation
 
Démarche compétence - LO - SI pédagogique. Morgan Saveuse. 9R
Démarche compétence - LO - SI pédagogique. Morgan Saveuse. 9RDémarche compétence - LO - SI pédagogique. Morgan Saveuse. 9R
Démarche compétence - LO - SI pédagogique. Morgan Saveuse. 9RFFFOD
 
Resume theorique-m106-partie1-1401-620cd8a160396 (1)
Resume theorique-m106-partie1-1401-620cd8a160396 (1)Resume theorique-m106-partie1-1401-620cd8a160396 (1)
Resume theorique-m106-partie1-1401-620cd8a160396 (1)MounirAlaoui4
 
Projet carrières-Aissata.Bâ
Projet carrières-Aissata.BâProjet carrières-Aissata.Bâ
Projet carrières-Aissata.Bâaissataba
 
Architecture du système d'information
Architecture du système d'informationArchitecture du système d'information
Architecture du système d'informationAnwar Youssef
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilahMoez Moezm
 
Présentation info
Présentation infoPrésentation info
Présentation infoQuinaThomas
 
meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022Frederic Leger
 
Is carrieres
Is carrieres Is carrieres
Is carrieres megpal
 

Similar a Rapport Projet Gestion des Etudiants avec C++ (20)

Présentation carrière leo propre
Présentation carrière leo proprePrésentation carrière leo propre
Présentation carrière leo propre
 
Rapport stage
Rapport stageRapport stage
Rapport stage
 
Rapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfRapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdf
 
Projet carrière - IS
Projet carrière - ISProjet carrière - IS
Projet carrière - IS
 
Refonte de site web : cas pratique - site du master INI
Refonte de site web  : cas pratique - site du master INIRefonte de site web  : cas pratique - site du master INI
Refonte de site web : cas pratique - site du master INI
 
CERTIFICATION EN DIGITAL MARKETING MANAGEMENT
CERTIFICATION EN DIGITAL MARKETING MANAGEMENTCERTIFICATION EN DIGITAL MARKETING MANAGEMENT
CERTIFICATION EN DIGITAL MARKETING MANAGEMENT
 
Cyproj06 formation-projets-et-methodologies-si
Cyproj06 formation-projets-et-methodologies-siCyproj06 formation-projets-et-methodologies-si
Cyproj06 formation-projets-et-methodologies-si
 
Démarche compétence - LO - SI pédagogique. Morgan Saveuse. 9R
Démarche compétence - LO - SI pédagogique. Morgan Saveuse. 9RDémarche compétence - LO - SI pédagogique. Morgan Saveuse. 9R
Démarche compétence - LO - SI pédagogique. Morgan Saveuse. 9R
 
Resume theorique-m106-partie1-1401-620cd8a160396 (1)
Resume theorique-m106-partie1-1401-620cd8a160396 (1)Resume theorique-m106-partie1-1401-620cd8a160396 (1)
Resume theorique-m106-partie1-1401-620cd8a160396 (1)
 
Projet carrières-Aissata.Bâ
Projet carrières-Aissata.BâProjet carrières-Aissata.Bâ
Projet carrières-Aissata.Bâ
 
Rapport de stage
Rapport de stageRapport de stage
Rapport de stage
 
V.j
V.jV.j
V.j
 
Architecture du système d'information
Architecture du système d'informationArchitecture du système d'information
Architecture du système d'information
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilah
 
Présentation info
Présentation infoPrésentation info
Présentation info
 
CV Octobre 2015 FR
CV Octobre 2015 FRCV Octobre 2015 FR
CV Octobre 2015 FR
 
meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022
 
Is carrieres
Is carrieres Is carrieres
Is carrieres
 
Gp finale
Gp finaleGp finale
Gp finale
 
PFE Book Abshore
PFE Book AbshorePFE Book Abshore
PFE Book Abshore
 

Rapport Projet Gestion des Etudiants avec C++

  • 1. CONTACT: zer.saad@gmail.com | ichioui@gmail.com | toufik.jadli@gmail.com PROJETC++ Applicationdegestion desétudiantsdulycée ÉCOLENATIONALE DESSCIENCESAPPLIQUÉES KENITRA Réalisépar Pr.HabibaChaoui Encadrépar AyoubIchioui ToufikJadli SaadZerhouni
  • 2. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 1 Sommaire Remerciements.............................................................................................. 2 Introduction ....................................................................................................3 La problématique.........................................................................................3 Partie Conception........................................................................................... 4 C’est quoi Le besoin traité par le projet ? ......................................................5 Le Modèle Fonctionnel.................................................................................5 Les Règles de Gestion ................................................................................. 6 Le modèle conceptuel des données..............................................................7 Modèle Logique de Donnée .........................................................................7 Les différents fonctionnalités du projet ....................................................... 8 Partie Technique ............................................................................................ 9 Les Outils utilisé.........................................................................................10 Application des règles de Gestion...............................................................11 La fenêtre sur Qt-Creator...........................................................................11 Envoie de requêtes.....................................................................................12 Les requêtes du Projet................................................................................12 L’administration.........................................................................................13 Le Résultat Final.........................................................................................14 Conclusion ....................................................................................................15
  • 3. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 2 Remerciements On tient tout d’abord à remercier notre encadrant Mme le professeur Habiba CHAOUI pour avoir bien voulu encadrer ce travail ainsi que pour sa riche contribution et ses précieux conseils. L’expression de notre haute reconnaissance à l’administration de l’école qui n’a épargné aucun effort pour mettre à notre disposition la documentation nécessaire au niveau de la bibliothèque et d’avoir accordé l’organisation de ces projets très enrichissants. Enfin on tient à remercier l’ensemble du corps enseignant de l’ENSA Kenitra
  • 4. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 3 Introduction La réalisation d’un projet permet de bien maitrisé les techniques étudiées, apprendre des nouvelles techniques, se situé dans un cadre professionnel de travail et le point le plus important c’est d’apprendre les méthodes pour gérer un projet entre équipe. Notre Projet est basé sur une problématique bien connue qui est : LA GESTION DES ETUDIANTS D’UN LYCEE La problématique La gestion des données est un critère essentiel pour toute entreprise ou établissement il se peut que ça soit une gestion de stock, gestion des ressources humaines… Pour ce projet on a opté pour le cas d’un lycée qui aura besoin de gérer l’ensemble de ces étudiants à travers une interface simple et pratique. Cette gestion sera bien sûr traitée à travers une base de données stockée sur le local ou sur un serveur privé de l’établissement. Le problème se posent au niveau de l’administration, surtout lorsque le nombre des étudiants, des professeurs et des matières augment et ça devient de plus en plus délicat de traité tous ces données manuellement, et stocké par la suite dans l’archive de l’école. C’est ici que l’informatisation des données devient un élément nécessaire, et le traitement automatique améliore énormément le rendement de l’établissement que ça soit au niveau du gain du temps ou au niveau des ressources humaines choisi pour effectuer les tâches.
  • 5. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 4 Partie Conception
  • 6. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 5 Avant de se mettre à coder des lignes et des lignes de code, il faut tout d’abord limiter et tracer un cadre de développement qui donnera la vue générale du projet et les objectifs souhaité par ce dernier. C’est pour cela que la partie primordiale du projet est sa conception car une conception idéale donne automatiquement un projet réussi. Afin d’avoir une conception Optimale on se pose de différentes questions que notre projet doit absolument y répondre. C’est quoi Le besoin traité par le projet ? Le besoin traité est plus ou moins la problématique qu’on a déjà cité précédemment, mais aussi il y a le besoin Personnel du développeur dans notre cas ce besoin personnel se constitue dans l’enrichissement de nos connaissances en orienté objet et surtout à travers une interface graphique. Dans d’autre cas différents le développeur de projet peut avoir des besoins différents derrière la réalisation d’un tel projet, tel que : - La réalisation d’un produit qui sera offert aux clients afin de réaliser des revenues financières. - Se posé dans un cadre professionnel de développement informatique. - … Une fois les besoins derrière la réalisation de l’application sont connus, on peut donc entamer la partie la plus importante de la conception de l’application, qui est la réalisation du Modèle fonctionnel et les règles de gestion de cette application. Le Modèle Fonctionnel Le modèle fonctionnel répond au besoin de gestion de la base de données. il permet de définir la structure principale de cette dernière et de mettre les règles de gestion en claire. Pour notre projet on se place dans un cas d’une application qui a comme but principale l’apprentissage et l’enrichissement de notre culture informatique, c’est pour cela que le modèle de l’application sera modeste mais en même temps qui répond à beaucoup de critère de gestion. On aura donc à gérer les étudiants, les professeurs et les matières et finalement la gestion des droits de l’administrateur. Dans la gestion des étudiants on traitera : - La liste des étudiants du lycée - La gestion des absences - La note d’un étudiant dans une matière
  • 7. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 6 Dans la gestion des professeurs on traitera : - La liste des professeurs du lycée - La matière enseignée par chaque professeur Les Règles de Gestion Les données qu’on aura à stocké dans la base de donnée seront obligatoirement définie par quelque règles de gestion. Les règles qu’on va suivre pour ce projet sont : Un étudiant est définie par : - Nom - Prénom - CNE - CIN - Date de Naissance - Numéro de téléphone - Adresse Un Professeur est définie par : - Nom - Prénom Une matière est définie par : - Libelle - Coefficient Pour une absence on enregistrera : - La matière - L’étudiant qui s’est absenté - La date de l’absence Pour la note on enregistrera : - L’étudiant - La note - La matière
  • 8. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 7 Le modèle conceptuel des données A partir des règles posées dans l’étape précédente on peut établir le modèle conceptuel de donnée Modèle Logique de Donnée Etudiant(numapp,cne,cin,nom,prenom,adresse,date_naissance) Matiere(id_matiere,libelle,coefficient,#id_prof) Professeur(id_prof,nom,prenom) Abscence(#numapp,#id_matiere,date_abscence) Evaluation(#numapp,#id_matiere,note)
  • 9. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 8 Les différents fonctionnalités du projet L’application qu’on souhaite réalisé aura plusieurs méthodes pour traiter les données stocké sur la base de donnée, on aura donc besoin de définir tous les méthodes qu’on souhaitera développer pour chaque entité de la base de donnée. Pour toutes les entités on aura quatre méthodes principales : - Ajouter un élément - Modifier un élément - Supprimer un élément - Afficher la liste de tous les éléments Pour des raisons de sécurité on ajoutera une table d’administrateurspour que seuls les personnels ayant le droit de se connecter puissent accéder à l’interface et faire les changements cité dessus sur la base de données. Un administrateur peut aussi modifier les paramètres d’accès (login et mot de passe)
  • 10. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 9 Partie Technique
  • 11. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 10 Les Outils utilisé Pour ce projet on a essayé d’utiliser des technologies diverses de développement d’application professionnel, tout d’abord on travaillera avec la programmation Orienté Objet et comme environnement de développement on a choisi le langage C++. L’environnement de développement nécessite aussi une interface graphique qui sera présenté sur le FrontOffice, on a choisi pour la réalisation de cette interface le Framework de Nokia-Digia« le Qt » Une petite présentation de Qt à partir de Wikipédia : Qt est un Framework orienté objet et développé en C++ par QtDevelopmentFrameworks, filiale de Digia. Il offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Qt est par certains aspects un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des signaux et slots par exemple. Qt permet la portabilité des applications qui n'utilisent que ses composants par simple recompilation du code source. Les environnements supportés sont les Unix (dont Linux) qui utilisent le système graphique X Window System ou Wayland, Windows, Mac OS X et également Tizen. Le fait d'être une bibliothèque logicielle multiplate-forme attire un grand nombre de personnes qui ont donc l'occasion de diffuser leurs programmes sur les principaux OS existants. Qt est notamment connu pour être la bibliothèque sur laquelle repose l'environnement graphique KDE, l'un des environnements de bureau les plus utilisés dans le monde Linux.
  • 12. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 11 Pour le système de gestion de base de données (SGBD) on a utilisé MySQL pour la simple raison qu’on a déjà traité ce système au cours de notre formation. - La relation entre C++ et le SGBD Ainsi, Qt offre une connexion rapide est simple à la base de donnée cela à travers les lignes de code suivantes : QSqlDatabase admindb =QSqlDatabase::addDatabase("QMYSQL"); admindb.setHostName("localhost"); admindb.setUserName("root"); admindb.setPassword(""); admindb.setDatabaseName("gestionnaire"); Application des règles de Gestion phpMyAdmin sera notre interface qui va nous permettre de créer les différentes tables de la base de données en respectant la structure qu’on a déjà posé lors de la réalisation du MCD. La fenêtre sur Qt-Creator La réalisation des fenêtres sur Qt peut être faite par deux méthodes : - A travers Qt-Designer - A travers Qt-Creator La différence entre eux c’est que Qt designer offre une interface de design graphique très simple à réaliser et à partir de laquelle on réalise plusieurs fenêtres de notre application. Alors que sur Qt-Creator on aura besoin de tout codé ce qui nous offre une flexibilité et un contrôle totale de l’application. Pour ce projet on opte à l’utilisation de Qt-Creator pour bénéficier du contrôle offert par ce dernier. La réalisation d’une fenêtre sur Qt-Creator se fait de la manière suivante : - On réalise le Layout général de l’application - On définit les sous-Layouts
  • 13. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 12 - On remplit chaque sous-Layout par les buttons ou zone texte nécessaire Envoie de requêtes La communication avec la base de données se fait à travers des requêtes SQL, Qt-creator à une méthode très simple pour gérer ces requêtes. Après avoir établie la connexion à la base de donnée on peut donc lancer des requêtes et cela à travers les deux fonctions hérité de la class QSqlQuery : - Query.prepare() - Query.exec() Et on peut récupérer les résultats de sortie de la requête à l’aide de la fonction de la même class : - Query.next() Les requêtes du Projet D’après ce qu’on a vu précédemment, on aura besoin à effectuer quatre fonctions principales sur les différentes tables de la base de données. - Requête d’ajout d’un élément : La requête responsable de l’ajout d’un attribut dans la base de donnée est « INSERT INTO » l’interprétation de cette requête sur Qt se fait par la requête suivante : INSERTINTO`table_en_question `(`valeur1`,`valeur2`)VALUES(:val1,:val2) Puis on indique que :val1 et :val2 sont les variables données par l’utilisateur et cela se fait par la fonction « bindValue() » qui est une fonction hérité de la class des requêtes QSqlQuery. - Requête de modification d’élément : UPDATE`table_en_question` SET`attribut1`=:val1,`attribut2`=:val2 WHERE id=:id_element_a_modifie - Requête de suppression d’un élément : DELETE FROM `table_en_question` WHERE `id`=:id_element_a_supprimer - Requête d’affichage de l’ensemble des éléments : Pour l’affichage la requête est une « SELECT » mais le principe d’afficher tousles éléments sous forme d’un tableau qui est un peu spécial, car on aura à définir cela au niveau du code est non pas le SQL.
  • 14. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 13 On sait que le SQL renvoi plusieurs valeurs sous forme d’un tableau, et on sait d’avance les dimensions du tableau qu’on souhaite avoir comme sortie, donc on aura besoin de définir ce tableau sur Qt avec la class QTableWidget puis on remplit en boucle chaque élément de ce tableau par les éléments renvoyés par la requête. L’administration Pour garder la sécurité et avoir un contrôle sur les droits d’accès à cette application on aura besoin d’une interface d’administration, à partir de laquelle on doit se connecté avant de pouvoir accéder au contenue de l’application. Pour cela on a ajouté une autre table d’administrateurs qui aura les attributs suivants : - Nom d’administrateur - Prénom d’administrateur - Login - Mot de passe Et pour garder une sécurité avancé au niveau de la base de donnée on utilise un cryptage MD5 du mot de passe afin qu’il soit illisible même si on accède à la base de donnée - A propos du cryptage MD5 : C’est un Algorithme Open Source de Hashage qui permet de crypter des chaines de caractère sans avoir la possibilité de la décrypté. Exemple : MD5(‘mot de passe’) = d72e513b7eca61b2dbb7e2e768f5969a
  • 15. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 14 Le Résultat Final Presque la totalité du trajet est déjà effectué, il ne reste donc qu’à mettre pour chaque entité de la base de donnée les quatre fonctions qu’on a définie. Puis on obtient le projet Final suivant :
  • 16. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-2013 15 Conclusion Le projet d’application de gestion d’étudiant, avait pour but de créer une application qui permet de gérer l’ensemble des étudiants d’un lycée. Pour atteindre notre objectif on a opté pour une solution : base de donnée gérée par une application externe (Remote Control) , ce qui nous a permis d’appliqué et de développé nos connaissance du concept orienté objet ainsi que les langage SGBD et plus précisément le MYSQL. Ce projet nous a été bénéfique d’un point de vue conception et design, puisque c’est notre toute première application avec interface graphique, développant ainsi notre côté artistique et créatifs. Lors de la réalisation, on a été confronté a plusieurs obstacles, surtout le problème d’intégration du MYSQL avec le QT. Bien que le travail effectuer est assez important, mais vu les contraintes du temps, il reste extensible. Voila quelques idées proposées pour l'amélioration :  ajouter la gestion des niveaux et des classes.  Ajouter une interface séparé pour les professeurs, permettant la saisi des notes.  Ajouter l’option de rédaction et impression automatique des bulletins de chaque étudiant.  Elargir notre application afin de gérer un établissement du niveau supérieur tel que notre école.