Rapport Projet Gestion des Etudiants avec C++

16 623 vues

Publié le

Publié dans : Technologie
0 commentaire
7 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
16 623
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
1 373
Commentaires
0
J’aime
7
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Rapport Projet Gestion des Etudiants avec C++

  1. 1. CONTACT: zer.saad@gmail.com | ichioui@gmail.com | toufik.jadli@gmail.comPROJETC++ApplicationdegestiondesétudiantsdulycéeÉCOLENATIONALEDESSCIENCESAPPLIQUÉESKENITRARéaliséparPr.HabibaChaouiEncadréparAyoubIchiouiToufikJadliSaadZerhouni
  2. 2. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-20131SommaireRemerciements.............................................................................................. 2Introduction ....................................................................................................3La problématique.........................................................................................3Partie Conception........................................................................................... 4C’est quoi Le besoin traité par le projet ? ......................................................5Le Modèle Fonctionnel.................................................................................5Les Règles de Gestion ................................................................................. 6Le modèle conceptuel des données..............................................................7Modèle Logique de Donnée .........................................................................7Les différents fonctionnalités du projet ....................................................... 8Partie Technique ............................................................................................ 9Les Outils utilisé.........................................................................................10Application des règles de Gestion...............................................................11La fenêtre sur Qt-Creator...........................................................................11Envoie de requêtes.....................................................................................12Les requêtes du Projet................................................................................12L’administration.........................................................................................13Le Résultat Final.........................................................................................14Conclusion ....................................................................................................15
  3. 3. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-20132RemerciementsOn tient tout d’abord à remercier notre encadrant Mme le professeur HabibaCHAOUI pour avoir bien voulu encadrer ce travail ainsi que pour sa riche contribution et sespré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 niveaude 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. 4. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-20133IntroductionLa réalisation d’un projet permet de bien maitrisé les techniques étudiées, apprendredes nouvelles techniques, se situé dans un cadre professionnel de travail et le point le plusimportant c’est d’apprendre les méthodes pour gérer un projet entre équipe. Notre Projetest basé sur une problématique bien connue qui est :LA GESTION DES ETUDIANTS D’UN LYCEELa problématiqueLa 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 detraité tous ces données manuellement, et stocké par la suite dans l’archive de l’école. C’estici que l’informatisation des données devient un élément nécessaire, et le traitementautomatique améliore énormément le rendement de l’établissement que ça soit au niveaudu gain du temps ou au niveau des ressources humaines choisi pour effectuer les tâches.
  5. 5. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-20134Partie Conception
  6. 6. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-20135Avant de se mettre à coder des lignes et des lignes de code, il faut tout d’abordlimiter et tracer un cadre de développement qui donnera la vue générale du projet et lesobjectifs souhaité par ce dernier. C’est pour cela que la partie primordiale du projet est saconception 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 notreprojet 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 seconstitue dans l’enrichissement de nos connaissances en orienté objet et surtout à traversune interface graphique. Dans d’autre cas différents le développeur de projet peut avoir desbesoins 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 revenuesfinanciè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 doncentamer la partie la plus importante de la conception de l’application, qui est la réalisationdu Modèle fonctionnel et les règles de gestion de cette application.Le Modèle FonctionnelLe modèle fonctionnel répond au besoin de gestion de la base de données. il permetde définir la structure principale de cette dernière et de mettre les règles de gestion enclaire. Pour notre projet on se place dans un cas d’une application qui a comme butprincipale l’apprentissage et l’enrichissement de notre culture informatique, c’est pour celaque le modèle de l’application sera modeste mais en même temps qui répond à beaucoupde critère de gestion.On aura donc à gérer les étudiants, les professeurs et les matières et finalement lagestion 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. 7. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-20136Dans la gestion des professeurs on traitera :- La liste des professeurs du lycée- La matière enseignée par chaque professeurLes Règles de GestionLes données qu’on aura à stocké dans la base de donnée seront obligatoirementdé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- AdresseUn Professeur est définie par :- Nom- PrénomUne matière est définie par :- Libelle- CoefficientPour une absence on enregistrera :- La matière- L’étudiant qui s’est absenté- La date de l’absencePour la note on enregistrera :- L’étudiant- La note- La matière
  8. 8. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-20137Le modèle conceptuel des donnéesA partir des règles posées dans l’étape précédente on peut établir le modèleconceptuel de donnéeModèle Logique de DonnéeEtudiant(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. 9. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-20138Les différents fonctionnalités du projetL’application qu’on souhaite réalisé aura plusieurs méthodes pour traiter les donnéesstocké sur la base de donnée, on aura donc besoin de définir tous les méthodes qu’onsouhaitera 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émentsPour des raisons de sécurité on ajoutera une table d’administrateurspour que seuls lespersonnels ayant le droit de se connecter puissent accéder à l’interface et faire leschangements 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. 10. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-20139Partie Technique
  11. 11. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-201310Les Outils utiliséPour ce projet on a essayé d’utiliser des technologies diverses de développementd’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 seraprésenté sur le FrontOffice, on a choisi pour la réalisation de cette interface le Frameworkde 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++ parQtDevelopmentFrameworks, filiale de Digia. Il offre des composants dinterface graphique(widgets), daccès aux données, de connexions réseaux, de gestion des fils dexécution,danalyse XML, etc. Qt est par certains aspects un framework lorsquon lutilise pour concevoirdes interfaces graphiques ou que lon architecture sonapplication en utilisant les mécanismes des signaux etslots par exemple.Qt permet la portabilité des applications quinutilisent que ses composants par simple recompilationdu code source. Les environnements supportés sont lesUnix (dont Linux) qui utilisent le système graphique XWindow System ou Wayland, Windows, Mac OS X etégalement Tizen. Le fait dêtre une bibliothèquelogicielle multiplate-forme attire un grand nombre depersonnes qui ont donc loccasion de diffuser leursprogrammes sur les principaux OS existants.Qt est notamment connu pour être la bibliothèque sur laquelle repose lenvironnementgraphique KDE, lun des environnements de bureau les plus utilisés dans le monde Linux.
  12. 12. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-201311Pour le système de gestion de base de données (SGBD) on a utilisé MySQL pour la simpleraison qu’on a déjà traité ce système au cours de notre formation.- La relation entre C++ et le SGBDAinsi, Qt offre une connexion rapide est simple à la base de donnée cela à travers leslignes de code suivantes :QSqlDatabase admindb =QSqlDatabase::addDatabase("QMYSQL");admindb.setHostName("localhost");admindb.setUserName("root");admindb.setPassword("");admindb.setDatabaseName("gestionnaire");Application des règles de GestionphpMyAdmin sera notre interface qui va nous permettre de créer les différentestables de la base de données en respectant la structure qu’on a déjà posé lors de laréalisation du MCD.La fenêtre sur Qt-CreatorLa réalisation des fenêtres sur Qt peut être faite par deux méthodes :- A travers Qt-Designer- A travers Qt-CreatorLa différence entre eux c’est que Qt designer offre une interface de design graphique trèssimple à 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 uncontrôle totale de l’application.Pour ce projet on opte à l’utilisation de Qt-Creator pour bénéficier du contrôle offert par cedernier.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. 13. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-201312- On remplit chaque sous-Layout par les buttons ou zone texte nécessaireEnvoie de requêtesLa 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 basede donnée on peut donc lancer des requêtes et cela à travers les deux fonctions hérité de laclass 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êmeclass :- Query.next()Les requêtes du ProjetD’après ce qu’on a vu précédemment, on aura besoin à effectuer quatre fonctionsprincipales 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 « INSERTINTO » 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 sefait par la fonction « bindValue() » qui est une fonction hérité de la class des requêtesQSqlQuery.- Requête de modification d’élément :UPDATE`table_en_question`SET`attribut1`=:val1,`attribut2`=:val2WHERE 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 niveaudu code est non pas le SQL.
  14. 14. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-201313On sait que le SQL renvoi plusieurs valeurs sous forme d’un tableau, et on saitd’avance les dimensions du tableau qu’on souhaite avoir comme sortie, donc on aura besoinde 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’administrationPour garder la sécurité et avoir un contrôle sur les droits d’accès à cette applicationon 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 attributssuivants :- Nom d’administrateur- Prénom d’administrateur- Login- Mot de passeEt pour garder une sécurité avancé au niveau de la base de donnée on utilise uncryptage 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 decaractère sans avoir la possibilité de la décrypté. Exemple :MD5(‘mot de passe’) = d72e513b7eca61b2dbb7e2e768f5969a
  15. 15. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-201314Le Résultat FinalPresque la totalité du trajet est déjà effectué, il ne reste donc qu’à mettre pourchaque entité de la base de donnée les quatre fonctions qu’on a définie. Puis on obtient leprojet Final suivant :
  16. 16. Projet c++ - Gestion des étudiants d’un lycée ENSA-Kenitra 2012-201315ConclusionLe projet d’application de gestion d’étudiant, avait pour but de créer une applicationqui 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 parune 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émentle MYSQL.Ce projet nous a été bénéfique d’un point de vue conception et design, puisque c’estnotre 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èmed’intégration du MYSQL avec le QT.Bien que le travail effectuer est assez important, mais vu les contraintes du temps, ilreste extensible.Voila quelques idées proposées pour lamé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 telque notre école.

×