Mini Projet : Gestion de magasin ENIT
[1]
Yassine Elaroui
Mini Projet C
Ecole Nationale d’Ingénieurs De Tunis
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.
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
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.
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
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
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é
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
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
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.
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
Mini Projet : Gestion de magasin ENIT
[12]
 Modifier un article
 Supprimer un article
Figure 9 Supprimer
Figure 8 Changer_article
Mini Projet : Gestion de magasin ENIT
[13]
 Ajouter une vente
Figure 10 ajout_vente
 Chiffre d’affaire du magasin
Figure 11 Chiffre_affaire
Mini Projet : Gestion de magasin ENIT
[14]
 Recherche d’article par type
 Afficher un article
Figure 13 afficher_article
Figure 12 Rechercher_article
Mini Projet : Gestion de magasin ENIT
[15]
 Télécharger
Figure 14 Télécharger
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.

Mini Projet

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