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
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
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
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 :
ENSA-Kenitra 2012-2013
Partie Conception
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.
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
ENSA-Kenitra 2012-2013
Dans la gestion des professeurs on traitera : La liste des professeurs du lyce La matire enseigne par chaque professeur
Pour une absence on enregistrera : La matire Ltudiant qui sest absent La date de labsence
ENSA-Kenitra 2012-2013
ENSA-Kenitra 2012-2013
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)
ENSA-Kenitra 2012-2013
Partie Technique
ENSA-Kenitra 2012-2013
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
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 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
ENSA-Kenitra 2012-2013
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()
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 :
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
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
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
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
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