Vous êtes sur la page 1sur 16

A p p l i c a t i o nd eg e s t i o n d e s t u d i a n t s d ul y c e

C O L EN A T I O N A L E D E S S C I E N C E S A P P L I Q U E S K E N I T R A

P R O J E TC + +

R a l i s p a r
A y o u bI c h i o u i T o u k J a d l i S a a dZ e r h o u n i

E n c a d r p a r
P r . H a b i b a C h a o u i
C O N T A C T: z e r . s a a d @g ma i l . c o m | i c h i o u i @g ma i l . c o m | t o u k . j a d l i @g ma i l . c o m

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Sommaire
Remerciements .............................................................................................. 2 Introduction .................................................................................................... 3 La problmatique ......................................................................................... 3 Partie Conception........................................................................................... 4 Cest quoi Le besoin trait par le projet ? ......................................................5 Le Modle Fonctionnel .................................................................................5 Les Rgles de Gestion ................................................................................. 6 Le modle conceptuel des donnes .............................................................. 7 Modle Logique de Donne ......................................................................... 7 Les diffrents fonctionnalits du projet ....................................................... 8 Partie Technique ............................................................................................ 9 Les Outils utilis ......................................................................................... 10 Application des rgles de Gestion ............................................................... 11 La fentre sur Qt-Creator ........................................................................... 11 Envoie de requtes ..................................................................................... 12 Les requtes du Projet................................................................................ 12 Ladministration ......................................................................................... 13 Le Rsultat Final......................................................................................... 14 Conclusion .................................................................................................... 15

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Remerciements
On tient tout dabord remercier notre encadrant Mme le professeur Habiba CHAOUI pour avoir bien voulu encadrer ce travail ainsi que pour sa riche contribution et ses prcieux conseils. Lexpression de notre haute reconnaissance ladministration de lcole qui na pargn aucun effort pour mettre notre disposition la documentation ncessaire au niveau de la bibliothque et davoir accord lorganisation de ces projets trs enrichissants. Enfin on tient remercier lensemble du corps enseignant de lENSA Kenitra

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Introduction
La ralisation dun projet permet de bien maitris les techniques tudies, apprendre des nouvelles techniques, se situ dans un cadre professionnel de travail et le point le plus important cest dapprendre les mthodes pour grer un projet entre quipe. Notre Projet est bas sur une problmatique bien connue qui est :

LA GESTION DES ETUDIANTS DUN LYCEE


La problmatique
La gestion des donnes est un critre 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 dun lyce qui aura besoin de grer lensemble de ces tudiants travers une interface simple et pratique. Cette gestion sera bien sr traite travers une base de donnes stocke sur le local ou sur un serveur priv de ltablissement. Le problme se posent au niveau de ladministration, surtout lorsque le nombre des tudiants, des professeurs et des matires augment et a devient de plus en plus dlicat de trait tous ces donnes manuellement, et stock par la suite dans larchive de lcole. Cest ici que linformatisation des donnes devient un lment ncessaire, et le traitement automatique amliore normment le rendement de ltablissement que a soit au niveau du gain du temps ou au niveau des ressources humaines choisi pour effectuer les tches.

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Partie Conception

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Avant de se mettre coder des lignes et des lignes de code, il faut tout dabord limiter et tracer un cadre de dveloppement qui donnera la vue gnrale du projet et les objectifs souhait par ce dernier. Cest pour cela que la partie primordiale du projet est sa conception car une conception idale donne automatiquement un projet russi. Afin davoir une conception Optimale on se pose de diffrentes questions que notre projet doit absolument y rpondre.

Cest quoi Le besoin trait par le projet ?


Le besoin trait est plus ou moins la problmatique quon a dj cit prcdemment, mais aussi il y a le besoin Personnel du dveloppeur dans notre cas ce besoin personnel se constitue dans lenrichissement de nos connaissances en orient objet et surtout travers une interface graphique. Dans dautre cas diffrents le dveloppeur de projet peut avoir des besoins diffrents derrire la ralisation dun tel projet, tel que : La ralisation dun produit qui sera offert aux clients afin de ra liser des revenues financires. Se pos dans un cadre professionnel de dveloppement informatique.

Une fois les besoins derrire la ralisation de lapplication sont connus, on peut donc entamer la partie la plus importante de la conception de lapplication, qui est la ralisation du Modle fonctionnel et les rgles de gestion de cette application.

Le Modle Fonctionnel
Le modle fonctionnel rpond au besoin de gestion de la base de donnes. il permet de dfinir la structure principale de cette dernire et de mettre les rgles de gestion en claire. Pour notre projet on se place dans un cas dune application qui a comme but principale lapprentissage et lenrichissement de notre culture informatique, cest pour cela que le modle de lapplication sera modeste mais en mme temps qui rpond beaucoup de critre de gestion. On aura donc grer les tudiants, les professeurs et les matires et finalement la gestion des droits de ladministrateur. Dans la gestion des tudiants on traitera : La liste des tudiants du lyce La gestion des absences La note dun tudiant dans une matire

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Dans la gestion des professeurs on traitera : La liste des professeurs du lyce La matire enseigne par chaque professeur

Les Rgles de Gestion


Les donnes quon aura stock dans la base de donne seront obligatoirement dfinie par quelque rgles de gestion. Les rgles quon va suivre pour ce projet sont : Un tudiant est dfinie par : Nom Prnom CNE CIN Date de Naissance Numro de tlphone Adresse

Un Professeur est dfinie par : Nom Prnom

Une matire est dfinie par : Libelle Coefficient

Pour une absence on enregistrera : La matire Ltudiant qui sest absent La date de labsence

Pour la note on enregistrera : Ltudiant La note La matire

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Le modle conceptuel des donnes


A partir des rgles poses dans ltape prcdente on peut tablir le modle conceptuel de donne

Modle Logique de Donne


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 dun lyce

ENSA-Kenitra 2012-2013

Les diffrents fonctionnalits du projet


Lapplication quon souhaite ralis aura plusieurs mthodes pour traiter les donnes stock sur la base de donne, on aura donc besoin de dfinir tous les mthodes quon souhaitera dvelopper pour chaque entit de la base de donne. Pour toutes les entits on aura quatre mthodes principales : Ajouter un lment Modifier un lment Supprimer un lment Afficher la liste de tous les lments

Pour des raisons de scurit on ajoutera une table dadministrateurspour que seuls les personnels ayant le droit de se connecter puissent accder linterface et faire les changements cit dessus sur la base de donnes. Un administrateur peut aussi modifier les paramtres daccs (login et mot de passe)

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Partie Technique

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Les Outils utilis


Pour ce projet on a essay dutiliser des technologies diverses de dveloppement dapplication professionnel, tout dabord on travaillera avec la programmation Orient Objet et comme environnement de dveloppement on a choisi le langage C++. Lenvironnement de dveloppement ncessite aussi une interface graphique qui sera prsent sur le FrontOffice, on a choisi pour la ralisation de cette interface le Framework de Nokia-Digia le Qt Une petite prsentation de Qt partir de Wikipdia : Qt est un Framework orient objet et dvelopp en C++ par QtDevelopmentFrameworks, filiale de Digia. Il offre des composants d'interface graphique (widgets), d'accs aux donnes, de connexions rseaux, de gestion des fils d'excution, 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 mcanismes 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 supports sont les Unix (dont Linux) qui utilisent le systme graphique X Window System ou Wayland, Windows, Mac OS X et galement Tizen. Le fait d'tre une bibliothque 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 bibliothque sur laquelle repose l'environnement graphique KDE, l'un des environnements de bureau les plus utiliss dans le monde Linux.

10

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Pour le systme de gestion de base de donnes (SGBD) on a utilis MySQL pour la simple raison quon a dj trait ce systme au cours de notre formation. La relation entre C++ et le SGBD

Ainsi, Qt offre une connexion rapide est simple la base de donne 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 rgles de Gestion
phpMyAdmin sera notre interface qui va nous permettre de crer les diffrentes tables de la base de donnes en respectant la structure quon a dj pos lors de la ralisation du MCD.

La fentre sur Qt-Creator


La ralisation des fentres sur Qt peut tre faite par deux mthodes : A travers Qt-Designer A travers Qt-Creator

La diffrence entre eux cest que Qt designer offre une interface de design graphique trs simple raliser et partir de laquelle on ralise plusieurs fentres de notre application. Alors que sur Qt-Creator on aura besoin de tout cod ce qui nous offre une flexibilit et un contrle totale de lapplication. Pour ce projet on opte lutilisation de Qt-Creator pour bnficier du contrle offert par ce dernier. La ralisation dune fentre sur Qt-Creator se fait de la manire suivante : On ralise le Layout gnral de lapplication On dfinit les sous-Layouts 11

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

On remplit chaque sous-Layout par les buttons ou zone texte ncessaire

Envoie de requtes
La communication avec la base de donnes se fait travers des requtes SQL, Qt-creator une mthode trs simple pour grer ces requtes. Aprs avoir tablie la connexion la base de donne on peut donc lancer des requtes et cela travers les deux fonctions hrit de la class QSqlQuery : Query.prepare() Query.exec()

Et on peut rcuprer les rsultats de sortie de la requte laide de la fonction de la mme class : Query.next()

Les requtes du Projet


Daprs ce quon a vu prcdemment, on aura besoin effectuer quatre fonctions principales sur les diffrentes tables de la base de donnes. Requte dajout dun lment :

La requte responsable de lajout dun attribut dans la base de donne est INSERT INTO linterprtation de cette requte sur Qt se fait par la requte suivante : INSERTINTO`table_en_question `(`valeur1`,`valeur2`)VALUES(:val1,:val2) Puis on indique que :val1 et :val2 sont les variables donnes par lutilisateur et cela se fait par la fonction bindValue() qui est une fonction hrit de la class des requtes QSqlQuery. Requte de modification dlment :

UPDATE`table_en_question` SET`attribut1`=:val1,`attribut2`=:val2 WHERE id=:id_element_a_modifie Requte de suppression dun lment :

DELETE FROM `table_en_question` WHERE `id`=:id_element_a_supprimer Requte daffichage de lensemble des lments :

Pour laffichage la requte est une SELECT mais le principe dafficher tousles lments sous forme dun tableau qui est un peu spcial, car on aura dfinir cela au niveau du code est non pas le SQL. 12

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

On sait que le SQL renvoi plusieurs valeurs sous forme dun tableau, et on sait davance les dimensions du tableau quon souhaite avoir comme sortie, donc on aura besoin de dfinir ce tableau sur Qt avec la class QTableWidget puis on remplit en boucle chaque lment de ce tableau par les lments renvoys par la requte.

Ladministration
Pour garder la scurit et avoir un contrle sur les droits daccs cette application on aura besoin dune interface dadministration, partir de laquelle on doit se connect avant de pouvoir accder au contenue de lapplication. Pour cela on a ajout une autre table dadministrateurs qui aura les attributs suivants : Nom dadministrateur Prnom dadministrateur Login Mot de passe

Et pour garder une scurit avanc au niveau de la base de donne on utilise un cryptage MD5 du mot de passe afin quil soit illisible mme si on accde la base de donne

A propos du cryptage MD5 :

Cest un Algorithme Open Source de Hashage qui permet de crypter des chaines de caractre sans avoir la possibilit de la dcrypt. Exemple : MD5(mot de passe) = d72e513b7eca61b2dbb7e2e768f5969a

13

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Le Rsultat Final
Presque la totalit du trajet est dj effectu, il ne reste donc qu mettre pour chaque entit de la base de donne les quatre fonctions quon a dfinie. Puis on obtient le projet Final suivant :

14

Projet c++ - Gestion des tudiants dun lyce

ENSA-Kenitra 2012-2013

Conclusion
Le projet dapplication de gestion dtudiant, avait pour but de crer une application qui permet de grer lensemble des tudiants dun lyce. Pour atteindre notre objectif on a opt pour une solution : base de donne gre par une application externe (Remote Control) , ce qui nous a permis dappliqu et de dvelopp nos connaissance du concept orient objet ainsi que les langage SGBD et plus prcisment le MYSQL. Ce projet nous a t bnfique dun point de vue conception et design, puisque cest notre toute premire application avec interface graphique, dveloppant ainsi notre ct artistique et cratifs. Lors de la ralisation, on a t confront a plusieurs obstacles, surtout le problme dintgration du MYSQL avec le QT. Bien que le travail effectuer est assez important, mais vu les contraintes du temps, il reste extensible. Voila quelques ides proposes pour l'amlioration : ajouter la gestion des niveaux et des classes. Ajouter une interface spar pour les professeurs, permettant la saisi des notes. Ajouter loption de rdaction et impression automatique des bulletins de chaque tudiant. Elargir notre application afin de grer un tablissement du niveau suprieur tel que notre cole.

15