Académique Documents
Professionnel Documents
Culture Documents
Réalisé par :
Amal Jellali
Radhi Beldi
Classe : 2AGE2
Encadré par :
Mme Amira Kallel
Mme Latifa Guessmi
Année universitaire 2020/2021
Remerciements
Nous tenons à témoigner toute notre gratitude à Mme Amira KALLEL &
Mme Latifa Guessmi nos encadrantes à l’ENIT, pour leurs conseils, leur dis-
ponibilités et pour le temps qu’elles ont consacré à nous apporter les outils
méthodologiques indispensables à la conduite de cette gestion d’application.
Table des matières
Introduction générale 1
Conclusion générale 29
iii
Table des figures
v
Liste des tableaux
vi
Introduction générale
1
Chapitre 1
1.1 Introduction
Puisqu’il s’agit d’un nouvel outil de programmation C ++, il est nécessaire
de commencer par des recherches préliminaires sur les logiciels utilisés dans la
réalisation de notre mini-projet.
2
Figure 1.1 – Logo du logiciel Qt Creator
1.2.2 SQL-Lite
SQLite est un système de base de données ou une bibliothèque proposant un
moteur de base de données relationnelles. Il repose sur une écriture en C, un
langage de programmation impératif, et sur une accessibilité via le langage SQL
(Structured Query Language). SQLite présente la particularité d’être directe-
ment intégré aux programmes et dans l’application utilisant sa bibliothèque
logicielle.
Avec SQLite, la base de données est intégralement stockée dans un fichier in-
dépendant du logiciel.
1.3 QCustomPlot
QCustomPlotest un widget Qt C ++ pour le traçage et la visualisation des
données. Il n’a plus de dépendances et est bien documenté. Cette bibliothèque
de traçage se concentre sur la création de tracés 2D, de graphiques et de gra-
phiques de bonne qualité de publication, ainsi que sur des performances élevées
pour les applications de visualisation en temps réel. Jetez un oeil aux didacti-
ciels de configuration et de traçage de base pour commencer.
4
1.4 Etude préliminaire du projet
Le but de cette application est de développer une interfaces graphique per-
mettant de gérer (ajout, suppression , modification. . .) des Produit «appareils
électriques et électroniques».
Cette application doit permettre le suivie des Ventes de chaque produit déjà
dans le stock, et d’établir des statistiques de vente suite à une collecte des don-
nées liées à ce contexte.
Deux tables sont traitées dans ce chapitre. La première table «Produits » définit
par ses champs (Référence, Nom, Stock, Prix) et la deuxième table « Ventes »
définit par ses champs (Numéro, Référence, Date, Quantité, Prix de Ventes)
Par exemple : les relations Produits et Ventes sont connectées puisque l’ob-
jectif de la base de données est de gérer la vente de produits.
Ces liens existants entre les informations sont stockés dans les champs (attri-
buts) des enregistrements sous forme de clés.
Pour une relation donnée, une clé est un groupe d’attributs permettant
d’identifier un unique enregistrement de la relation.
• clé primaire : c’est l’une des clés candidates de la relation, choisie pour être
utilisée comme clé étrangère dans une autre relation
• clé étrangère : attribut d’une relation dont les valeurs sont des références
à une clé primaire d’une autre relation.
Pour préserver l’intégrité d’une base de données, le SGBD se charge de vérifier
que toutes les valeurs d’une clef étrangère d’une relation correspondent bien à
des valeurs présentes dans la clef primaire de l’autre relation.
6
Figure 1.5 – Relation et clés pour les tables Produit Ventes
7
Figure 1.6 – Schéma Relationel
9
1.7.2.2 Table Ventes
1.8 Conclusion
Dans ce chapitre préliminaire, on a étudié les différentes relations entre les
deux tables nécessaires pour gérer convenablement notre application. Cepen-
dant, dans le deuxième chapitre nous allons traiter la connection entre les tables
crées sur le Db Browser et et le code saisie sur le QtCreator et de gérer par la
suite les statistiques des ventes via QCustomPlot.
10
Chapitre 2
2.1 Introduction
Dans ce chapitre nous vous proposons la solution que nous avons conçue et
implémentée pour répondre aux exigences du cahier des charges.
Comme montré dans la figure 2-1, notre interface se compose d’un « groupBox
» qui contient les deux « radioButton » Utilisateur et Administrateur, les deux
« labels » pour la saisie de Username et Password et d’un « pushButton » qui
12
désigne la bouton LogIn. L’interface contient aussi un espace image « Label pic
» à droite du « groupBox ».
En cas des entrées non trouvées dans le fichier.txt, l’appui sur le bouton LogIn
engendre l’apparition d’un message qui indique la présence d’une erreur. Sinon,
si les informations entrées correspondent à un utilisateur dans le fichier.txt,
l’appui sur le bouton LogIn provoque l’apparition d’un message « hello user» si
le consultant est un utilistateur.
13
La figure 2.3 montre la fenêtre mainwindow obtenue.
On montre aussi les messages à l’appui sur bouton LOGIN dans la figure 2.4.
14
2.2.1 Configuration des boutons liés à l’interface MainWindow
2.2.1.1 bouton LogIn
15
Figure 2.6 – Configuration du bouton LogIn (2)
Pour connecter notre code sur Qt à la base de données Gestion des ventes crées
sur Db Browser, nous avons saisi le code suivant sur MainWindow.h :
16
2.3 Réalisation de l’interface graphique SecDialog
Le but de cette étape est de réaliser la fenêtre correspondante à l’administra-
teur et à l’utilisateur représentée par la figure 2.8.
17
Pour vérifier les données de connexions à l’application, on doit comparer les
données saisites à celles enregistrées dans le fichier « myfile.txt ». Pour cela, on
charge les données enegistrées dans un vecteur de type ”user” et un autre de
type ”administrateur”.
Avec le bouton ”write” on peut modifier la liste des personnes ayant l’accès et
avec le bouton ” read” on peut juste y consulter.
Comme montré dans la figure 2-7, notre interface se compose d’un « tabWid-
get» qui contient les 3 onglets « Widget» Bienvenu, Consulter accès et A propos.
18
L’onglet bienvenue contient une image et un label « Bienvenue » et deux
pushbButton pour accéder aux tables ; Produit et Ventes , l’onglet «à propos»
contient un texte qui décrit l’application alors que l’onglet «Consulter accès»
permet d’accéder aux données d’accès.
19
2.4 Réalisation de l’interface graphique Produit
Grâce à l’interface Produit, on peut gérer les fonctions Save, Update et
Delete qui permettent respectivement l’ajout, la modification et la supression
des appareils électriques et électroniques de notre table.
Comme montré dans la figure 2-14, notre interface se compose d’un «groupBox»
qui contient les «radioButton» lié aux attributs de la table Produit ainsi que
leurs «labels» associés pour la saisie.
On y trouve aussi les «pushButton» qui désigne les différentes fonctionnalités
qu’on peut gérer à travers la table Produit ;Save, Update, Delete, un pushBut-
ton Load table qui permet de télécharger les données sur Db Browser et les
afficher dans le TableView.
20
Figure 2.15 – Objects design ajoutés à la fenêtre Produit
Les fonctions associées aux boutons développées dans Produit.cpp, sont les sui-
vantes :
21
Figure 2.17 – Fonction Delete Produit
Une autre fonction est traitée de telle manière lorsque on appuie sur n’im-
porte quelle enregistrement, tout le champs correspondant à cette enregistre-
ment/ligne s’affiche.
22
Figure 2.19 – Importer un champs d’enregistrement
23
2.5 Réalisation de l’interface graphique Ventes
On aura pour intérêt à travers cette interaface de permettre aux utilisateurs
ainsi qu’aux administrateurs d’accéder à la table Ventes et de gérer les statis-
tiques de ventes.
L’interface se compose d’un « groupBox » qui contient les «radioButton » lié
aux attributs de la table Ventes ainsi que leurs « labels » associés pour la saisie.
Il existe également les boutons qui font référence aux différentes fonctionnalités
pouvant être gérées via la table des ventes telle que l’ajout, la modification et
la suppression d’un enregistrement sans oublier de charger les données sur Db
Browser et de les afficher dans la TableView.
Les différentes fonctions liés à la classe ventes sont traitées dans ventes.cpp.
25
Figure 2.24 – La fonction Delete Ventes
26
2.6 Fonctionnement et validation
2.6.1 Interface MainWindow
27
2.6.3 L’interface Produit
2.7 Conclusion
Dans ce chapitre, on a tout d’abord présenté à propos la manière d’utiliser
notre interface graphique des statistiques de ventes des appareils électriques et
électroniques et on s’est terminé par la validation de son bon fonctionnement.
28
Conclusion générale
29