rapport projet c++ | gestion etudiant

Upload: saad-zerhouni

Post on 02-Mar-2016

79 views

Category:

Documents


4 download

DESCRIPTION

rapport d'une application de gestion des étudiants basique , qui utilise une interface graphique de Qt, Mini-Projet réalisé à l'ENSA Kenitra

TRANSCRIPT

  • CONTACT : [email protected] | [email protected] | [email protected]

    PROJET C++Application de gestiondes tudiants du lyce

    COLE NATIONALE DES SCIENCES APPLIQUES

    KENITRA

    Ralis par

    Pr. Habiba Chaoui

    Encadr par

    Ayoub Ichioui Touk Jadli Saad Zerhouni

  • Projet c++ - Gestion des tudiants dun lyce ENSA-Kenitra 2012-2013

    1

    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

    2

    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

    3

    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

    4

    Partie Conception

  • Projet c++ - Gestion des tudiants dun lyce ENSA-Kenitra 2012-2013

    5

    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 raliser 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

    6

    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

    7

    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

    8

    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

    9

    Partie Technique

  • Projet c++ - Gestion des tudiants dun lyce ENSA-Kenitra 2012-2013

    10

    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.

  • Projet c++ - Gestion des tudiants dun lyce ENSA-Kenitra 2012-2013

    11

    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

  • Projet c++ - Gestion des tudiants dun lyce ENSA-Kenitra 2012-2013

    12

    - 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.

  • Projet c++ - Gestion des tudiants dun lyce ENSA-Kenitra 2012-2013

    13

    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

  • Projet c++ - Gestion des tudiants dun lyce ENSA-Kenitra 2012-2013

    14

    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 :

  • Projet c++ - Gestion des tudiants dun lyce ENSA-Kenitra 2012-2013

    15

    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.

    afficheProjet cpp