1. Mini Projet : Gestion de magasin ENIT
[1]
Yassine Elaroui
Mini Projet C
Ecole Nationale d’Ingénieurs De Tunis
2. Mini Projet : Gestion de magasin ENIT
[2]
Remerciements
Ce travail a été réalise avec l’aide et l’encadrement précieux
de Madame Amira Kallel et Monsieur Touil. Et c’est dans ce
cadre que je tiens à leurs remercier pour tous leurs efforts
fournis dans la réalisation de ce projet.
3. Mini Projet : Gestion de magasin ENIT
[3]
Sommaire
Introduction……………………………………………….4
Partie I : Elaboration du projet………………………...5
1.Description du projet…………………………….5
2.Idées de conception………………………………6
3.Difficultées de réalisation………………………8
4.Solutions apportées……………………………...9
Partie II : Réalisation……………………………………11
1.Structures…………………………………………11
2.Fonctions………………………………………….11
Conclusion………………………………………………...16
4. Mini Projet : Gestion de magasin ENIT
[4]
Introduction
La réalisation du mini projet qui s’introduit dans le module
de « Programmation C » au sein de l’Ecole Nationale
d’Ingénieurs de Tunis, cette expérience m’a permis de mieux
maitriser le LANGAGE C et le compilateur CODE BLOCKS
afin de réaliser une application facile à manipuler.
Le sujet gestion de magasin d’antiquité consiste à ajouter
un article qui est représenté par : ( code, époque, prix,
description, type,…) afin de gérer les articles du magasin on
a décidé d’ajouter des fonctionnalisées pour faciliter
l’utilisation de ce projet tels que ( l’ajout d’article, la
modification, la recherche, la suppression,…). Dans la suite
de ce rapport j’essayerai de détailler la réalisation du projet.
5. Mini Projet : Gestion de magasin ENIT
[5]
Elaboration du projet
1.Description du projet
« Vos clients les plus insatisfaits sont votre plus grande
source d’apprentissage ». Disait Bill Gates, et à force de
travailler sur cette application, j’ai constaté combien
l’interaction avec l’utilisateur est importante, il est en fin de
compte un humain n’est-ce pas ? alors les données saisis sont
les plus cruciales au bon fonctionnement de mon projet, par
GESTON DE MAGASIN
AJOUTER
MODIFIER
SUPPRIMERR
TELECHARGER
ENREGISTRER
AJOUT
D’UNE
VENTE
AFFICHER
CHIFFRE
D’AFFAIRE
6. Mini Projet : Gestion de magasin ENIT
[6]
conséquent j’ai décidé de demander à l’utilisateur dans la
plupart de mes fonctionnalités seulement que le code de
l’article qu’il souhaite manipuler.
2.Idées de conception
Deux versions ont été imposées pour ce projet une version
statique et une autre dynamique. En début, j’ai commencé
avec les fonctionnalités d’ajout et de modification qui
dépendent de l’utilisateur tout en essayant de minimiser les
erreurs de saisies en voici un exemple :
Figure 1 : Cas de gestion d'erreurs de saisie
7. Mini Projet : Gestion de magasin ENIT
[7]
Dès que l’utilisateur tente d’introduire une chaine de
caractères au lieu d’un entier, le programme lui demande de
rectifier sa saisie et pour cela j’ai fait appel aux fonctions :
1. strtod de la bibliothèque <stdlib.h> voici son entête
long double strtold(const char *nptr, char **endptr);
Cette fonction renvoi 0 si la conversion d’une chaine de
caractères vers un décimal ne s’effectue pas
correctement.
2. strtol de la bibliothèque <stdlib.h> voici son entête
long int strtol(const char *nptr, char **endptr, int base);
Figure 2 Exemple d'erreurs de saisie contrôlé
8. Mini Projet : Gestion de magasin ENIT
[8]
Cette fonction retourne elle aussi 0 si la conversion
d’une chaine de caractères vers un entier ne s’effectue
pas correctement.
Ensuite, j’ai enchainé avec les fonctions de
recherche et d’affichage qui étaient plus au moins
abordables et pour en finir avec la manipulation des
fichiers avec les fonctions télécharger et enregistrer.
3.Difficultées de réalisation
Parmi les difficultés que j’ai rencontré, c’est
l’utilisation du type enum dans ma structure meuble que je
définisse si dessous
Figure 3 Structure meuble
Struturemeuble
Dimension
Largeur
Hauteur
Code
Epoque
Vendu
Description
Type
Prix
9. Mini Projet : Gestion de magasin ENIT
[9]
1 : Le type enum ne m’a pas permis de stocker dans ma
structure le type saisi par l’utilisateur, alors j’ai développé
une petite astuce que je mentionnerai dans la suite.
2 : L’utilisation de « scanf » pour pouvoir écrire la
description lut par « printf », hélas, la fonction « scanf »
ne permet pas de lire une paragraphe puisqu’elle s’arrête au
premier n rencontrer.
4.Solutions apportées
1 : pour palier cette difficulté j’ai décidé d’associer à chaque
type un entier c.à.d.
(0:meuble,1:decor,2:tableau,3:instrument,4:couvert)
Et d’utiliser la structure conditionnelle switch ( case ).
Figure 4 Structure conditionnelle
10. Mini Projet : Gestion de magasin ENIT
[10]
2 : L’alternative initiale était d’enregistrer le contenu de la
description dans un fichier puis le manipuler, mais une solution plus
optimiser était gets()et qui permet de lire un texte.
11. Mini Projet : Gestion de magasin ENIT
[11]
Réalisation
1.Structures
Figure 6 Structure meuble
2.Fonctions
Ajouter un article
Figure 5 Structure Dimensions
Figure 7 Fonction ajout_article
12. Mini Projet : Gestion de magasin ENIT
[12]
Modifier un article
Supprimer un article
Figure 9 Supprimer
Figure 8 Changer_article
13. Mini Projet : Gestion de magasin ENIT
[13]
Ajouter une vente
Figure 10 ajout_vente
Chiffre d’affaire du magasin
Figure 11 Chiffre_affaire
14. Mini Projet : Gestion de magasin ENIT
[14]
Recherche d’article par type
Afficher un article
Figure 13 afficher_article
Figure 12 Rechercher_article
15. Mini Projet : Gestion de magasin ENIT
[15]
Télécharger
Figure 14 Télécharger
16. Mini Projet : Gestion de magasin ENIT
[16]
Conclusion
Ce projet m’a permis de m’évaluer dans un langage de
programmation plus que complexe dans son utilisation,
l’approche dynamique m’a introduit la notion d’optimisation
et s’avoir gérer la mémoire vive d’une machine. Certes, je
pense que cette application peut encore être améliorer par
l’utilisation d’une base de données tel que MySQL ou même
par un langage d’orienté objet tels que C# ou C++ qui
permettent de rajouter une interface graphique a cette
application.