Vous êtes sur la page 1sur 19

République Tunisienne

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique


Université de Tunis El Manar
École Nationale d’Ingénieurs de Tunis

Département Génie Electrique

Mini projet C++

Sujet 7 : Application de gestion de réservation du


vol

Réalisé par :
Sarra JEBALI
Mariem LOUSSIF
Classe : 2AGE2

Encadré par :
Amira KALLEL ET Latifa GUESMI

Année universitaire 2020/2021


Table des matières

Table des figures 2

Introduction générale 1

1 Généralités et Étude préliminaire du projet 2


1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Présentation du logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 Qt creator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 SQLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3 DB Browser for SQLite . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Étude préliminaire du projet . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 Énoncé du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2 Étude et planification du projet . . . . . . . . . . . . . . . . . . . 3
1.3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Développement de l’application 5
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Réalisation de l’interface graphique d’accueil : MainWindow . . . . . . . . 5
2.3 Réalisation de l’interface administrateur . . . . . . . . . . . . . . . . . . . 8
2.4 Réalisation de l’interface utilisateur . . . . . . . . . . . . . . . . . . . . . 15
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Conclusion générale 16

1
Table des figures

1.1 Logo du logiciel Qt creator . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1 Les objets de conception ajoutés à la fenêtre MainWindow . . . . . . . . . 5


2.2 Message d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Message de confirmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 la fenêtre MainWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 Code de MainWindow.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6 Code de MainWindow.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.7 Bienvenue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.8 Admin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.9 A propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.10 Schéma relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.11 Table Vol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.12 Table voyageur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.13 Table réservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.14 Les objets de conception ajoutés à la table réservation . . . . . . . . . . . . 13
2.15 Conception de l’onglet réservation . . . . . . . . . . . . . . . . . . . . . . . 13
2.16 Conception de l’onglet vol . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.17 Conception de l’onglet voyageur . . . . . . . . . . . . . . . . . . . . . . . . 14
2.18 Les objets de conception ajoutés à la fenêtre utilisateur . . . . . . . . . . . 15
2.19 Conception de la fenêtre utilisateur . . . . . . . . . . . . . . . . . . . . . . 15

2
Introduction générale

Sans une interface utilisateur graphique, la révolution numérique serait impensable.

L’interface graphique permet même aux utilisateurs inexpérimentés de se familiariser ra-

pidement avec le programme. Les icônes sont faciles à comprendre et le texte est explicatif

afin de garantir une grande convivialité.

Dans le cadre de notre mini-projet on va développer une application graphique en utilisant

les fichiers textes et les bases de données.

Le travail sur ce projet consiste, tout d’abord à bien étudier le cahier de charge puis à faire

une étude théorique. Ensuite, on passera à l’étape suivante qui est le développement du

code de notre interface graphique et pour finir, on validera notre application c’est-à-dire

la vérification du bon fonctionnement de ses différentes parties.

Le rapport comporte deux chapitres.

— Le premier chapitre sera consacré à la présentation générale du projet.

— Aux cours du deuxième chapitre on réalisera une analyse détaillée du projet .

1
Chapitre 1

Généralités et Étude préliminaire du


projet

1.1 Introduction
Dans ce chapitre on va présenter le logiciel utilisé pour réaliser ce mini-projet et on va
faire une étude préliminaire de ce dernier.

1.2 Présentation du logiciel


1.2.1 Qt creator
Qt Creator est un environnement de développement intégré multiplateforme, Fait par-
tie du framework Qt, il est donc orienté vers la programmation C ++. Il intègre directe-
ment le débogueur dans l’interface. Le débogueur est un outil utilisé pour créer l’interface
Graphiques, outils de publication de code sur Git et Mercurial, et Documentation Qt.
L’éditeur de texte intégré permet l’auto-complétion ainsi que Mise en évidence de la syn-
taxe. Qt Creator utilise le compilateur gcc sous Linux. il peut Utilisez le compilateur
MinGW ou Visual Studio sous Windows.

Figure 1.1 – Logo du logiciel Qt creator

2
1.2.2 SQLite
Nous avons également utilisé SQLite dans ce mini projet, qui est une bibliothèque
écrite en langage C et fournit un moteur de base de données relationnelle accessible via
le langage SQL.
SQLite a la particularité d’utiliser sa bibliothèque logicielle pour s’intégrer directement
dans des programmes et des applications, tandis que ses concurrents (comme MySQL)
répliquent la solution client-serveur classique. Avec SQLite, la base de données est entiè-
rement stockée dans des fichiers qui ne sont pas liés au logiciel.

1.2.3 DB Browser for SQLite


DB Browser pour SQLite est un outil de visualisation et open source de haute qualité
pour créer, concevoir et éditer des fichiers de base de données compatibles avec SQLite. Il
convient aux utilisateurs et aux développeurs qui souhaitent créer des bases de données,
rechercher et modifier des données. Il utilise une interface de type feuille de calcul, vous
n’avez donc pas besoin d’apprendre des commandes SQL complexes.

1.3 Étude préliminaire du projet


1.3.1 Énoncé du projet
L’objectif de notre projet est de développer une application graphique avec QT Creator,
en utilisant les fichiers textes et les bases de données sur SQL-Lite permettant de gérer les
réservations des vols au niveau d’une agence de voyage. L’utilisateur de cette application
peut :
— Ajouter un vol (numéro vol, date et heure départ, date et heure d’arrivée, Aéroport
départ,aéroport d’arrivée, numéro avion).
— Rechercher et consulter des vols existant par date départ, destination ..., etc.
— Ajouter un voyageur et lui réserver un vol.
— Il peut aussi modifier ou annuler un vol.

1.3.2 Étude et planification du projet


Cette gestion sera réalisée à partir d’une interface d’accueil qui permet de distinguer
la personne qui va utiliser l’application :
S’il s’agit d’un administrateur, il aura le droit de gérer :
— La liste des utilisateurs et des administrateurs (ajout, suppression, modification...).
— La liste des voyageurs (ajout, suppression, modification...).
— La liste des réservations.

3
S’il s’agit d’un utilisateur :
— Lorsqu’il saisit le numéro de passeport, il peut connaı̂tre ses informations et sa
réservation.
Après avoir distingué les utilisateurs de l’application, une nouvelle fenêtre Sera affichée,
qui contient :
s’il s’agit d’un administrateur, trois onglets :
— Un onglet d’accueil.
— Un onglet qui explique l’application.
— Un onglet pour faire entrer les administrateurs et les utilisateurs.
Ensuite lorsqu’on clique sur le bouton agence de voyages on trouve trois anglets :
— Un onglet de gestion des vols.
— Un onglet de gestion des réservations.
— Un onglet pour entrer les informations des clients.
S’il s’agit d’un utilisateur, une fenêtre :
— Permettre à l’utilisateur de consulter ses informations et sa réservation.

1.3.3 Conclusion
Ce chapitre nous permet de nous placer dans le cadre du projet et de comprendre les
tables et les interfaces graphiques à développer.
Dans le chapitre suivant, nous présenterons en détail notre solution proposée.

4
Chapitre 2

Développement de l’application

2.1 Introduction
Dans ce chapitre, nous vous proposons la solution que nous avons conçue, Mettre en
œuvre pour répondre aux spécifications.

2.2 Réalisation de l’interface graphique d’accueil : Main-


Window
Le but de cette étape est de créer une interface graphique d’accueil.
Elle contient :
— Deux champs de texte (Nom et mot de passe).
— Deux « radio boutons » pour identifier le rôle de la personne qui utilise l’application
(Administrateur ou Utilisateur).
— Un bouton poussoir (Login).
Nous ajoutons d’abord les icônes requises dans MainWindow.ui, comme indiqué ci-dessous
La figure suivante.

Figure 2.1 – Les objets de conception ajoutés à la fenêtre MainWindow


5
Ensuite, on passe à la configuration de ces boutons et au code correspondant dans main-
window.cpp et mainwindow.h. Le bouton de connexion est programmé pour permettre
l’accès aux fenêtre suivantes Uniquement aux utilisateurs enregistrés dans le fichier .txt
nommé ”Admin.txt” dans notre projet.
Lorsque L’entrée n’est pas enregistrée dans le fichier .txt, appuyez sur le bouton Login
générer l’apparence d’un message indiquant l’existence d’une erreur.

Figure 2.2 – Message d’erreur

Si les informations saisies correspondent à l’administrateur ou à l’utilisateur dans le fichier


.txt, l’appui sur le bouton Login provoque l’apparition d’un message de confirmation.

Figure 2.3 – Message de confirmation

La figure suivante montre la fenêtre MainWindow obtenue.

6
Figure 2.4 – la fenêtre MainWindow

Maintenant, nous allons introduire le code développé dans MainWindow.ccp.

Figure 2.5 – Code de MainWindow.cpp

7
Figure 2.6 – Code de MainWindow.cpp

2.3 Réalisation de l’interface administrateur


Tout d’abord, nous allons créer une fenêtre avec trois anglets :
— Le premier onglet « Bienvenue » : Il contient une image de bienvenue.

Figure 2.7 – Bienvenue


8
— Le deuxième onglet « Admin » : cet anglet qui permet de sauvegarder les utilisateurs
et les administrateurs dans le fichier .txt.

Figure 2.8 – Admin

— Le troisième onglet « à propos » : Il contient des informations de l’application.

Figure 2.9 – A propos

9
Lorsqu’on clique sur le bouton agence de voyage on trouve trois anglets.
Un anglet pour gérer les vols, un anglet pour gérer les réservations et un anglet pour saisir
les informations des clients.
Afin d’implémenter cette fenêtre, nous devons utiliser le logiciel DB Browser for SQLITE
pour créer trois tables.
pour mieux comprendre les relations entre nos tables on va représenter un schéma rela-
tionnel.

Figure 2.10 – Schéma relationnel

La table « Vol » : elle contient tous les informations nécessaires d’un vol :
— Numéro du vol.
— Date et heure de départ.
— Date e heure d’arrivé.
— Aéroport départ.
— Aéroport d’arrivé.

10
Figure 2.11 – Table Vol

La table « Voyageur » : cette table représente les informations d’un voyageur concernant
son , nom, numéro de passeport , date de naissance , numéro de téléphone , mail et CIN.

Figure 2.12 – Table voyageur

11
La table « Réservation » : représente les informations de réservations d’un client il se
caractérise par son numéro de réservation et son prix, cette table représente une association
entre la table Vol et la table voyageur.

Figure 2.13 – Table réservation

Nous allons maintenant créer une interface contenant ”tabWidget” Contient 3 anglets
”widgets” : ”vols”, ”réservations” et ”clients”.
L’onglet «Réservation» contient la table «Réservation», qui peut être téléchargée dans un
« tableView » grâce à la bouton « Charger ».
L’onglet contient également deux zones de liste roulante ”combobox” L’un choisit le nu-
méro de vol et l’autre le numéro de passeport. Il contient également le bouton ”Enregis-
trer” ci-dessous, ”Modifier” et ”Supprimer”.
Tout d’abord, ajoutez les icônes requises dans admin.ui, comme indiqué dans la figure
ci-dessous.

12
Figure 2.14 – Les objets de conception ajoutés à la table réservation

Enfin, nous obtenons l’onglet ”Réservation” comme indiqué ci-dessous.

Figure 2.15 – Conception de l’onglet réservation

13
De même pour l’anglet ”vol ”et ”client”.

Figure 2.16 – Conception de l’onglet vol

Figure 2.17 – Conception de l’onglet voyageur

14
2.4 Réalisation de l’interface utilisateur
Comme nous l’avons déjà dit, les utilisateurs ont le droit de consulter leurs informations
et réservations en entrant leur numéro de passeport, ainsi la fenêtre contiendra deux
”TableView” , un ”LineEdit” et deux ”PushButton”.

Figure 2.18 – Les objets de conception ajoutés à la fenêtre utilisateur

On obtient finalement :

Figure 2.19 – Conception de la fenêtre utilisateur

2.5 Conclusion
Dans ce chapitre, nous avons étudié la visibilité et la convivialité de notre application.
Notre solution assure également la sécurité car les utilisateurs ne peuvent accéder qu’à
leurs informations et réservations, sans avoir à accéder ou modifier d’autres informations.
Il ne peuvent pas également voir les autres listes d’utilisateurs.
15
Conclusion générale

Réaliser une application pareille par le biais du QT Creator nous a permis de bien

illustrer nos compétences en c++ ainsi de nous introduire les notions de bases en ce qui

concernent la manipulation des bases de données et celle des fichiers . Arrivant à la fin de

ces séances des travaux pratiques de ce mini projet ,nous avons élaboré une application

destinée aux agences de voyages et qui a pour but de gérer les réservations des vols .Ainsi

elle rend service non seulement aux employeurs mais également aux voyageurs .

16

Vous aimerez peut-être aussi