Application de gestion
des étudiants du lycée
ÉCOLE NATIONALE
DES SCIENCES
APPLIQUÉES
KENITRA
Réalisé par
Ayoub Ichioui
Toufik Jadli
Saad
Zerhouni
Encadré par
Pr. Habiba Chaoui
CONTACT : zer.saad@gmail.com | ichioui@gmail.com | toufik.jadli@gmail.com
Projet c++ - Gestion des étudiants d’un ENSA-Kenitra 2012-2013
lycée
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
1
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
Introduction
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.
Partie
Conception
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.
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 :
- 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
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
- 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)
Partie Technique
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.
- 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 :
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()
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