0% ont trouvé ce document utile (0 vote)
21 vues34 pages

Projet Sur La Programmation C

Le projet se concentre sur la gestion de la facturation dans un grand magasin, permettant aux caissiers et aux responsables de gérer les ventes et les produits. Il utilise le langage de programmation C pour créer un programme efficace, bien que certaines limitations soient présentes. Les principaux objectifs incluent une gestion appropriée des ventes, la sécurité des informations et une interface conviviale.

Transféré par

ScribdTranslations
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
21 vues34 pages

Projet Sur La Programmation C

Le projet se concentre sur la gestion de la facturation dans un grand magasin, permettant aux caissiers et aux responsables de gérer les ventes et les produits. Il utilise le langage de programmation C pour créer un programme efficace, bien que certaines limitations soient présentes. Les principaux objectifs incluent une gestion appropriée des ventes, la sécurité des informations et une interface conviviale.

Transféré par

ScribdTranslations
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Reconnaissance

Toute tentative à n'importe quel niveau ne peut être réalisée de manière satisfaisante sans le soutien et les conseils.
des personnes instruits. Nous aimerions exprimer notre immense gratitude à tous les enseignants de KEC en informatique
programmation pour leur soutien constant et leur motivation qui nous a encouragés à concevoir cela
projet.

Nous remercions également tous nos collègues de la section électronique A qui ont rendu leur
soutien de tout cœur à tout moment pour l'achèvement réussi de ce projet.
Résumé

Le projet, comme son nom l'indique, est basé sur le système de gestion des magasins départementaux. A
Les grands magasins se composent de produits de consommation quotidienne, ils doivent donc être gérés de diverses manières.
manières. Ce projet se concentre sur la gestion de facturation d'un grand magasin et la gestion de
le bureau du responsable. Lorsqu'un client achète des marchandises, il/elle peut obtenir une facture instantanée en utilisant cela
programme.

À cette fin, nous avons commencé notre projet par les étapes de base de la programmation. Nous avons construit
des algorithmes et a élaboré des plans pour le programme. Pour le codage, le langage de programmation C a été utilisé.
Donc, pour le projet, notre principal outil était le langage de programmation C.

Le résultat que nous avons obtenu à l'issue du projet était un programme bien conçu et efficace pour le
gestion de la facturation dans un magasin de détail. Cependant, il y a certaines limitations, dans l'ensemble, le projet est
réussi pour ce qu'il vise à accomplir.
Table des matières

Titre Numéro de page

y Objectifs 1
y Introduction 2
y Algorithme 3
y Exigences 11
y Discussion de projet 12
y Code 14
y Caractéristiques du projet 28
y Limitations 29
y Conclusion 30
y Références 31
Objectifs

Les principaux objectifs de ce projet sont énumérés comme suit :

Gestion appropriée de la vente d'articles dans un magasin de détail.


Peut être utile à la fois pour le manager et le caissier.
Bonne sécurité des informations pour lesquelles des fonctionnalités de mot de passe sont fournies.
Providence maximale des options de modification et de recherche.
Messages conviviaux pour faciliter l'application du programme.
Introduction

Le projet est basé sur le processus de gestion et de facturation dans un magasin de détail. Ceci
le programme peut être simplement utilisé par un responsable de magasin départemental et un caissier. Le programme se concentre principalement

sur la manipulation de diverses fonctions par un caissier et un responsable sur la base des biens sélectionnés par le
client. Le gestionnaire peut ajouter des biens, changer les tarifs, voir le total des ventes de la journée, etc.
D'autre part, un caissier peut traiter les factures des marchandises selon le choix des clients.

Pour le processus de codage, le langage de programmation ANSI Standard C est utilisé. Les diverses efficaces
des aspects tels que les fonctions, les tableaux, les structures, les opérations sur les fichiers, etc. sont utilisés.
Algorithmes
Algorithme pour main() :
Étape 1 : Commencer.
Étape 3 : Afficher « Bienvenue dans le système de gestion de magasin départemental ».
Étape 4 : Appelez la fonction mainmenu().
Étape 5 : Arrêtez.

Algorithme pour menu principal() :


Étape 1 : Commencer.
Étape 2 : Afficher « MenuPrincipal ».
Étape 3 : Affichez 'Entrez les choix : (L) pour se connecter, (C) pour créer un Responsable/Caissier, (E) pour quitter'.
Étape 4 : Choix d'entrée1.
Étape 5
5.1 si choix1=76 ou choix1=108
Appeler la fonction Vérification().
sinon
si choix1=67 ou choix1=99
Entrez (M) pour créer ManagerID.
Entrez (C) pour créer un identifiant de caissier.
Entrez (R) pour revenir au menu principal :
5.2 Choix 2.
5.3 : si choix2=77 ou choix2=109
Appeler la fonction CréerManager().
sinon
si choix2=67 ou choix2=99
Appeler la fonction CreateCashier().
sinon
si choix2=82 ou choix2=114
Appeler la fonction mainmenu().
sinon
Sélection invalide ! Veuillez entrer à nouveau :
Allez à l'étape 5.2.
Étape 6 : si choix1=69 ou choix 1=101
sortie.
sinon
Sélection invalide ! Entrez à nouveau :
Allez à l'étape 4.
Étape 7 : Arrêtez.

Algorithme pour CréerGestionnaire() :


Étape 1 : Commencer.
Étape 2 : Déclarez le pointeur de fichier *f1.
Étape 3 : Déclarez les variables master, key, name, p, pas, i.
Étape 4 : Assignez c͞ reateme͟ au maître.
Étape 5 : Afficher "Entrez le mot de passe principal :"
Étape 6 : Initialiser i=0.
Étape 7 : Entrée pas.
7.1 : si (pas != \͚ n͛ )
Entrée pas.
7.2 : si (pas=13)
Allez à l'étape 10.
si(pas !=͚\b͛ )
Attribuer le passe à clé[i],
\b*
sinon
si (pas='\b')

\b
i=i-2.
Étape 8 : i=i+1.
Étape 9 : Allez à l'étape 7.1.
Étape 10 : Assignez '\0' à key[i].
Étape 11 : si le maître et la clé sont égaux
11.1 : Ouvrir le fichier ͞ authorize1.txt͟ en mode ͞ ab+͟ et l'assigner à f1.
si f1=NULL
Ouvrir le fichier a͞ uthorize1.txt͟ en mode w
͞ b+͟ et l'assigner à f1.
si f1=NULL
Impossible d'ouvrir le fichier.
Entrez le nom d'utilisateur :
Saisir b.admin_name.
Entrez le mot de passe :
11.5:Initialiser i=0.
11.6 : Entrée p.
11.7 : si (pas != \͚ n͛ )
Entrée p.
11.8 : si p=13
allez à l'étape 19.
si (p != ͚͛ )
Affecter p à b.admin_password[i],
*
sinon
si p='\b'
Affichez " "
\b
i=i-2.
11.9 : i=i+1.
11.10: Aller à l'étape 11.6.
11.11 : Assigner '' à b.admin_password[i].
11.12 : Écrire la structure b dans f1.
11.13 : Fermez le fichier f1.
Créé avec succès !
11.14: Aller à l'étape 13.
Étape 12 : Affichez "Mot de passe invalide ! Vous ne pouvez pas créer un ID de gestionnaire."
Étape 13 : Arrêtez.

Algorithme pour Vérification() :


Étape 1 : Commencer.
Étape 2 : Déclarer le pointeur de fichier *f1 et *f2.
Étape 3 : Déclarez les variables name1[50], password1[50], name2[50], password2[50], p1, p2, choice3,
choix4
Étape 4 : Assignez flag1=0.
Pour vous connecter en tant que responsable, appuyez sur (M).
Pour vous connecter en tant que caissier, appuyez sur (C)
Pour revenir au menu principal, appuyez sur (R) :
Étape 6 : Choix d'entrée 3.
Étape 7 : si (choix3=͚M͛ ) ou (choix3=͚m͛ )
7.1 : Ouvrir le fichier "authorize1.txt" en mode "rb+" et l'assigner à f1.
Entrez le nom d'utilisateur :
7.3 : Entrer le nom1.
7.4 : Lire le fichier f1.
7.5 : si (name1=b.admin_name)
si (flag1=0)
Entrez le mot de passe :
i=0.
Allez à l'étape 7.6.
sinon
Allez à l'étape 7.11.
7.6 : si (p1 = '\n')
si (p1='\b')
Afficher (" ")
Imprimer (" "),
i=i-2.
sinon
Entrée p1.
si (p1=13)
Allez à l'étape 7.9.
si (p1!='\b')
motdepasse1[i]=p1,
Imprime "\b*".

7.7 : i=i+1 ;
7.8 : Allez à l'étape 7.6.
7.9 : password1[i]='\0'.
7.10 : si (password1 = b.admin_password)
1
Bienvenue!͟
Appeler functionManagerMenu().
sinon
Mot de passe invalide !
Nom d'utilisateur non trouvé.
Allez à l'étape 7.2.
7.12 : fermer le fichier f1.
Étape 8 : si (choix3=͚C͛ ) ou (choix3=͚c͛ )
8.1 : Ouvrir le fichier "authorize2.txt" en mode "rb+" et l'assigner à f2.
Entrez le nom d'utilisateur :
8.3 : Saisir le nom2.
8.4 : Lire le fichier f12.
8.5 : si (name2 = b.user_name)
si (flag1=0)
Entrez le mot de passe :
i=0.
Allez à l'étape 8.6.
sinon
Allez à l'étape 8.11.
8.6 : si (p2 != '\n')
Entrée p2.
si (p2=13)
Allez à l'étape 7.8.
if (p2!='\b')
password2[i]=p2,
Imprimer "\b*".
sinon
si (p2='\b')
Afficher (" ")
Imprimer ("\b")
i=i-2.
8.7 : i = i + 1 ;
8.8: Allez à l'étape 8.6.
8.9: password2[i]='\0'.
8.10 : si (password2 = b.user_password
1
Bienvenue!
Appeler la fonction CashierMenu().
sinon
Mot de passe invalide !

8.11 : Afficher « Nom d'utilisateur non trouvé. »


Allez à l'étape 8.2.
8.12 : fermer le fichier f2.
Étape 9 : si (choix3=͚R͛ ) ou (choix3=͚r͛ )
Appeler la fonction mainmenu().
sinon
Sélection invalide ! Veuillez entrer à nouveau :
Allez à l'étape 4.
Étape 10 : Arrêtez.

Algorithme pour GoodsEntry() :


Étape 1 : Commencer.
Étape 2 : Déclarez le pointeur de fichier *f.
Étape 3 : Déclarez la variable ques.
Étape 4 : Ouvrez le fichier g͞ oods.txt͟ en mode ajout et assignez-le au pointeur f.
Étape 5 : Afficher « Entrez le code de l'article à ajouter : »
Étape 6 : Saisissez un.codearticle.
Étape 7 : Afficher « Entrez le nom de l'article : »
Entrez a.nomdelobjet.
Étape 9 : Afficher « Entrez le taux pour la quantité unitaire : »
Étape 10 : Saisissez a.taux.
Étape 11 : Écrire la structure a en f.
Étape 12 : Affichez 'Appuyez sur la touche 'esc' pour quitter ou sur une autre touche pour continuer :'
Étape 13 : Saisir la question.
Étape 14 : si (ques=27)
Allez à l'étape 15.
sinon
Allez à l'étape 5.
Étape 15 : Fermer le fichier f.
Étape 16 : Appeler la fonction functionManagerMenu().
Étape 17 : Arrêtez.

Algorithme pour AffichageListeBiens():


Étape 1 : Commencer.
Étape 2 : Déclarez le pointeur de fichier *f.
Étape 3 : Ouvrez le fichier g͞ oods.txt͟ en mode lecture et assignez-le à f.
Étape 4 : Afficher le code de l'article Nom de l'article Coût.
Étape 5 : Afficher -͞ ---------------------------------------------͞.
Étape 6 : Imprimer a.itemcode, a.itemname, a.rate.
Étape 7 : si (f=EOF)
Allez à l'étape 8.
sinon
Allez à l'étape 6.
Étape 8 : Fermer le fichier f.
Étape 9 : Appeler functionManagerMenu().

Algorithme pour ModifierProduits() :


Étape 1 : Commencer.
Étape 2 : Déclarez le pointeur de fichier *f.
Étape 3 : Déclarez la variable itemcode[50], taille.
Étape 4 : Ouvrez le fichier « goods.txt » en mode lecture et attribuez-le au pointeur de fichier f.
Étape 5 : Afficher « Entrez le code de l'article du produit : »
Étape 6 : Saisir le code de l'article.
Étape 7 : Lire f.
Étape 8 : si (f=EOF)
Allez à l'étape 11.
sinon
si (a.itemcode=itemcode)
Entrez le nouveau code d'article :
Entrer le code de l'article
Entrez le nom du nouvel élément :
nom de l'élément a
Entrez le tarif pour la quantité unitaire :
a.nomdelobjet
Étape 9 : fseek(f, -size, SEEK_CUR)
Étape 10 : Rédiger la structure a.
Étape 11 : Fermer f.
Étape 12 : Appeler la fonction functionManagerMenu().
Étape 13 : Arrêtez.

Algorithme pour SupprimerBiens():


Étape 1 : Commencer.
Étape 2 : Déclarez le pointeur de fichier *f, *temp.
Étape 3 : Déclarez la variable itemcode[50], taille.
Étape 4 : Ouvrez le fichier g͞ oods.txt͟ en mode lecture et assignez-le au pointeur de fichier f.
Étape 5 : Ouvrez le fichier t͞ empgoods.txt͟ en mode écriture et assignez-le au pointeur de fichier temp.
Étape 6 : Afficher « Entrez le code de l'article du produit à supprimer : »
Étape 7 : Saisissez le code de l'article.
Étape 8 : Lire f.
si (f=EOF)
Allez à l'étape 9.
sinon
si (codearticle=a.codearticle)
Allez à l'étape 8.
sinon
Écrire dans un temp.
Étape 9 : Supprimez le fichier g͞ oods.txt͟.
Étape 10 : Renommez t͞ empgoods.txt͟ en g͞ oods.txt͟.
Étape 11 : Fermez f.
Étape 12 : Fermer la température.
Étape 13 : Appeler la fonction functionManagerMenu().
Étape 14 : Arrêtez.

Algorithme de facturation() :
Étape 1 : Commencer.
Étape 2 : Déclarer la structure biens b[50] et les variables itemcode[50], i, j, sum, quantity[200], cost[200],
tendre, changer.
Étape 3 : Déclarer le pointeur de fichier *f, *f1.
Étape 4 : Ouvrir le fichier g͞ oods.txt͟ en mode lecture et assigner à f.
Étape 5 : Ouvrir le fichier k͞ eeprecords.dat͟ en mode ajout et l'assigner à f1.
Étape 6 : Initialiser i=0.
Étape 7 : Affichez « Entrez les codes des articles et appuyez sur une touche lorsque vous avez terminé. »
Étape 8 : Afficher « Entrez les codes des articles : »
Étape 9 : Saisissez le code de l'article.
Étape 10 : si (strlen(itemcode)=6)
Allez à l'étape 11.
sinon
Allez à l'étape 16.
Étape 11 : Lire f.
Étape 12 : si (a.itemcode=itemcode)
nom de l'article
b[i].itemcode=a.itemcode,
b[i].itemname=a.itemname,
b[i].taux=a.taux
Entrez la quantité :
Quantité d'entrée[i],
quantity[i] * b[i].rate
somme=somme+coût[i],
c.itemcode=b[i].itemcode,
c.nomArticle=b[i].nomArticle,
c.taux=b[i].taux,
c.quantity=quantité[i],
c.cost=cost[i].
Étape 13 : Écrivez c dans f1.
Étape 14 : i++,
Étape 15 : Retourner à l'étape 8.
Étape 16 : Fermez f et f1.
Nom de l'article
Étape 17 : Afficher le code de l'article Coût
Étape 18 : Afficher -͞ ------------------------------------------------͟.
Étape 19 : Initialiser j = 0.
Étape 20 : si (j<i)
Imprimez b[j].itemcode, b[j].itemname, b[j].rate, quantity[j], cost[j].
j=j+1,
Allez à l'étape 18.
Étape 21 : Imprimer la somme.
͞ ffre :͟
Étape 22 : Afficher O
Étape 23 : Soumission d'offre.
Étape 24 : changement=somme-tender.
Étape 25 : Imprimer le changement.
Étape 26 : Imprimer le nom du caissier.
Étape 27 : Appeler la fonction CashierMenu().

Algorithme pour TotalSalesDisplay() :


Étape 1 : Commencer.
Étape 2 : Déclarer le pointeur de fichier *f4.
Étape 3 : Ouvrir le fichier « keeprecords.dat » en mode lecture et l'assigner à f4.
Nom de l'article
Étape 4 : Afficher le code article Coût Quantité Montant.
Étape 5 : Afficher -͞ -----------------------------------------------------------------͟.
Étape 6 : Lire f4.
Étape 7 : si (f4=EOF)
Allez à l'étape 8.
sinon
Imprimer c.itemcode, c.itemname.
grandtotal=grandtotal+c.cost
Imprimer c.taux, c.quantité, c.coût.
Allez à l'étape 7.
Étape 8 : Imprimer le total général.
Étape 9 : Fermer f4.
Étape 10 : Appelez FunctionManagerMenu().
Algorithme pour ManagerMenu() :
Étape 1 : Commencer.
Étape 2 : Déclarez la variable choix4.
Étape 3 : Affichez « Entrez (A) pour ajouter à la liste des bons. »
Appuyez sur Entrée (E) pour modifier la liste des biens.
Appuyez sur (D) pour afficher la liste des biens.
Appuyez sur (S) pour voir le total des ventes.
Appuyez sur la barre d'espace pour supprimer de la liste des bonnes.
Appuyez sur (R) pour revenir au menu principal :
Étape 4 : Choix de l'option 4.
Étape 5 : si (choix4=͚A͛ ) ou (choix4=͚a͛ )
Appeler la fonction GoodsEntry().
sinon
si (choix4=͚E͛ ) ou (choix4=͚e͛ )
Appeler la fonction EditGoods().
sinon
si (choix4=͚D͛ ) ou (choix4=͚d͛ )
Appeler la fonction GoodsListDisplay().
sinon
si (choix4=͚ ͛ ) ou (choix4=͚ ͛ )
Appeler la fonction DeleteGoods().
sinon
si (choix4=͚S͛ ) ou (choix4=͚s͛ )
Appeler la fonction TotalSalesDisplay().
sinon
si (choix4=͚R͛ ) ou (choix4=͚r͛ )
Appeler la fonction mainmenu().
sinon
Sélection invalide ! Entrez à nouveau :
Allez à l'étape 4.
Étape 6 : Arrêter.

Algorithme pour MenuCaissier() :


Étape 1 : Commencer.
Étape 2 : Déclarez la variable ch.
Étape 3 : Afficher « La facturation est prête ! »
͞ ppuyez sur (E) pour quitter ou n'importe quelle autre touche pour continuer la facturation :͟
Étape 4 : Afficher A
Étape 5 : Saisir ch.
Étape 6 : si (ch=͚E͛ ) ou (ch=͚e͛ )
sortie.
sinon
Appeler la fonction Billing().
Étape 7 : Arrêtez.
Exigences

Les exigences pour que le programme fonctionne ou que le code prenne effet sont basiques et peuvent être
trouvé sur n'importe quel ordinateur simple. Cependant, certaines des exigences matérielles et logicielles essentielles sont
décrit comme suit :

Matériel :

Le matériel requis pour faire fonctionner le programme est le même que celui que l'on peut trouver sur
ordinateur personnel simple (bureau, portable, etc.). Il n'y a donc pas de besoin matériel spécial pour
la mise en œuvre de ce projet.

Logiciel

Comme le langage de programmation C est utilisé à des fins de codage, le logiciel principal requis est
également la même chose. L'installation de ce logiciel n'est pas très compliquée et elle ne prend pas beaucoup de place.
espace. Les exigences système pour que le programme fonctionne sont également basiques et faciles à trouver.

Plateforme

Le programme C prend en charge des plateformes telles que Windows 98, XP, 2000, etc. Cependant, il se peut qu'il ne prenne pas en charge

certains des derniers systèmes d'exploitation.


Discussion de projet

Comme nous le savons, le projet est basé sur le système de gestion départementale et se concentre
sur le système de facturation. Les fonctions utilisées dans le programme ou la fonction du programme ont également l'intention dans
direction parallèle. Les principaux composants du programme sont de commencer en tant que responsable ou caissier et
vérification, entrée et affichage des marchandises, affichage de la facture, affichage des ventes totales, etc. Ces composants sont
décrits comme suit avec leur processus de travail :

Commencez en tant que manager ou caissier et vérification :

Le programme prend en charge deux modes, à savoir le mode gestionnaire et le mode caissier. Au début
du programme, il est demandé de se connecter en tant qu'utilisateur existant ou nouvel utilisateur. Le nouvel utilisateur peut être en mode gestionnaire ou

en mode caissier. Pour que le nouvel utilisateur soit en mode gestionnaire, il doit entrer un mot de passe maître en tant que gestionnaire

j'ai des informations secrètes qui ne peuvent pas être divulguées aux autres membres. Chaque membre peut
ils ont également leurs propres mots de passe pour l'accès. Lorsque un utilisateur saisit un nom d'utilisateur et un mot de passe corrects, alors le

Le message de bienvenue est affiché, sinon l'utilisateur est de nouveau invité à entrer le nom d'utilisateur et le mot de passe.
correctement.

Mode manager :

Le gestionnaire est la personne principale qui gère l'achat et la vente de biens dans une
magasin départemental. Donc, un mode de gestion devrait avoir divers aspects tels que l'ajout à la liste de bons,
édition, et affichage de la bonne liste, pour voir le total des ventes d'une journée et supprimer un bon. Tous ces aspects
sont inclus dans le programme sous le mode gestionnaire.

Pour l'entrée de nouveaux biens, un gestionnaire doit sélectionner l'option « ajouter à la liste de biens ». Ensuite

on lui demande le code article du bien qui doit être ajouté. On lui demande aussi d'entrer le nom du
bon et le taux de la quantité unitaire. Si un manager souhaite voir la liste de tous ses biens, alors il peut
sélectionnez l'option « affichage de la liste des biens ». Cette option affiche tous les biens disponibles dans le format suivant :

Code de l'article Nom de l'article Coût

͙͙

Un manager peut modifier la liste des biens existante. Pour cela, il doit sélectionner l'option « modifier le »
bonne liste. Dans cette option, il peut donner un nouveau code d'article, un nom et un tarif pour l'article existant. Le code du
l'élément à éditer est demandé et le nouveau code, le nom et le tarif sont attribués à la place de l'existant
Un bon gestionnaire doit tenir un registre de toutes les ventes d'une journée, ce qui peut aider de nombreuses manières.
l'avenir du grand magasin. À cet effet, il peut choisir l'option « voir le total des ventes ».
l'option affiche le total des biens vendus par jour, leur code, coût, quantité et montant total. Le total des ventes
d'une journée est affiché dans le format suivant :

Code de l'articleNom de l'article Coût Quantité Montant

͙͙ .
Enfin, un responsable peut supprimer ou arrêter l'achat ou la vente des marchandises dans le département.
conformément à l'exigence. Pour cela, il peut sélectionner l'option « supprimer le bon ». Lorsque cette option est sélectionnée
ensuite, le code de l'objet à supprimer lui est demandé. Si le code d'un objet est saisi, alors le
l'élément respectif est supprimé de la liste.

Mode Caissier

Un caissier est une personne qui prend des commandes des clients ainsi que donne et reçoit
argent. Dans le cas d'un grand magasin, un caissier calcule le montant total des biens qu'un client souhaite.
pour acheter et imprimer la facture, également un caissier prend le montant du client.

Un caissier saisit le code des articles qu'un client souhaite acheter. Ensuite, l'article
codes, noms des articles, coût, quantité et montant total sont calculés. Enfin, la facture est traitée.
la facture traitée est affichée au format d'affichage des ventes totales du mode gestion. Cependant, le changement vers
être retourné au client et le nom de la caissière est également affiché à la fin de la facture.

Ainsi, voici les principaux composants de notre programme avec leurs fonctions et leur
processus de travail.
Code source

Ce programme aide à gérer un magasin de détail en aidant à définir les biens, à conserver ses dossiers, à faire
factures, tenir des registres des ventes

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include<dos.h>
menusprincipal();
voidCréerGestionnaire();
voidCreateCashier();
void Vérification();
voidManagerMenu();
voidMenuCaissier();
voidGoodsEntry();
voidGoodsListDisplay();
voidModifierBiens();
voidDeleteGoods();
void Facturation();
voidTotalSalesDisplay();
struct biens
{
charitemcode[50];
[50]
taux int;
}a;
struct autoriser
{
[50]
[50]
charuser_name[50];
charuser_motdepasse[50];
}b;
struct biens2
{
charitemcode[50];
charitemname[50];
taux d'intérêt;
int quantité;
int coût;
}c;
charNomCaissier[50];
intgrandtotal=0;
char choix1, choix2;
vide principal()
{
longinti,j;
printf ("Bienvenue dans le SYSTÈME DE GESTION DES MAGASINS DE DÉPARTEMENT ");
Chargement
pour (i=0;i<3;i++)
{
pour (j=0;j<=200000000;j++);
printf (".");
}
menuPrincipal();
}

vide menuprincipal()
{
MENU PRINCIPAL
Entrez les choix : (L) pour se connecter. (C) pour créer un Manager/Caissier. (E) pour quitter :
demanderchoix2
choix1=getche();
switch (choix1)
{
cas 76 :
cas 108 :
Vérification();break;
cas 67 :
cas 99 :
Entrez (M) pour créerManagerID.
printf ("Entrez (C) pour créer CashierID.\n");
printf ("Entrez (R) pour revenir au menu principal: ");
askchoice1
choix2=getche();
interrupteur(choix2)
{
cas 77 :
cas 109 :
CréerManager();break;
cas 67 :
cas 99 :
CréerCaissier();break;
cas 82 :
cas 114 :
menuprincipal();break;
par défaut
{
Sélection invalide ! Entrez à nouveau :
aller demanderchoix1;
}
}interrompre;
cas 69 :
cas 101 :
sortir(1);
default
{
Sélection invalide ! Entrez à nouveau :
aller à askchoice2;
}
}
}

voidCréerGestionnaire()
{
FICHIER *f1;
createme
int i;
Entrez le mot de passe maître :
i=0;
tandis que (pas!='\n')
{
pas=getche();
si (pas==13)
pause;
si (pas!='\b')
{
pas
printf("\b*");
}
sinon si (pas=='\b')
{
printf (" ");
printf ("\b");
i=i-2;
}
i=i+1;
}

'\0';
si (strcmp(master, clé) == 0)
{
si((f1=fopen("authorize1.dat","ab+"))==NULL)
{
si ((f1=fopen("authorize1.dat","wb+"))==NULL)
{
fprintf("Impossible d'ouvrir le fichier");
getch();
}
}
Entrez le nom d'utilisateur :
gets(b.admin_name);
Entrez le mot de passe :
i=0;
tant que (p!='\n')
{
p=getche();
si (p==13)
pause;
si (p!='\b')
{
p;
printf("\b*");
}
sinon si (p=='\b')
{
printf (" ");
printf ("\b");
i=i-2;
}
i=i+1;
}

'\0';
fwrite(&b,sizeof(b),1,f1);
fflush(stdin);
fclose(f1);
Créé avec succès !
}
sinon
printf ("Mot de passe invalide ! Vous ne pouvez pas créer un ID de gestionnaire.");
getch();
menuprincipal();
}

voidCréerCaissier()
{
FICHIER *f2;
p
int i;
si((f2=fopen("authorize2.dat","ab+"))==NULL)
{
si ((f2=fopen("authorize2.dat","wb+"))==NULL)
{
Impossible d'ouvrir.
}
}
Entrez le nom du caissier :
obtenir(b.user_name);
Entrez le mot de passe :
i=0;
tant que (p!='\n')
{
p=getche();
si (p==13)
pause;
si (p!='\b')
{
p
printf("\b*");
}
sinon si (p=='\b')
{
printf (" ");
printf ("\b");
i=i-2;
}
i=i+1;
}

b.user_password[i]='\0';
fwrite(&b,sizeof(b),1,f2);
fflush(stdin);
fermer(f2);
Créé avec succès !
menuprincipal();
}

void Vérification()
{
FICHIER *f1;
FICHIER *f2;
int i,flag1=0,len,j;
char nom1[50], motdepasse1[50], nom2[50], motdepasse2[50], p1, p2;
char choix3, choix4;
Pour vous connecter en tant que responsable, appuyez sur (M).
Pour vous connecter en tant que caissier, appuyez sur (C)
Pour retourner au menu principal, appuyez sur (R) :
la1
choice3=getche();
changer (choix3)
{
cas 77 :
cas 109 :
si((f1=fopen("authorize1.dat","rb+"))==NULL)
printf ("Impossible d'ouvrir");
demanderNom
Entrez le nom d'utilisateur :
obtient(nom1);
while(fread(&b,sizeof(b),1,f1)==1)
{
si (strcmp(name1, b.admin_name) == 0)
{
tant que (flag1==0)
{
Entrez le mot de passe :
i=0;
tant que (p1!='\n')
{
p1=getche();
si (p1==13)
pause;
si (p1!='\b')
{
motdepasse1[i]=p1;
printf("\b*");
}
sinon si (p1=='\b')
{
printf (" ");
printf ("\b");
i=i-2;
}
i=i+1;
}

password1[i]='\0';
si (strcmp(mot_de_passe1,b.mot_de_passe_admin)==0)
{
1;
printf ("Bienvenue!");
MenuDuGestionnaire();

}
sinon
{
Mot de passe invalide!
pour (j=0;j<45;j++)
password1[j]='\0';
getch();
}
}
pause;
}
sinon
{
Nom d'utilisateur non trouvé.
getch();
rembobiner(f1);
allerdemanderleNom;
}
fclose(f1);
}
pause;
cas 99 :
cas 67 :
f2=fopen("authorize2.dat","rb+");
demanderNom1
Entrez le nom d'utilisateur :
obtient(nom2);
while(fread(&b,sizeof(b),1,f2)==1)
{
si (strcmp(name2,b.user_name)==0)
{
tant que (flag1==0)
{
strcpy(NomCaissier,name2);
Entrez le mot de passe :
i=0;
tant que (p2!='\n')
{
p2=getche();
si (p2==13)
faire une pause;
si (p2!='\b')
{
motdepasse2[i]=p2;
printf("\b*");
}
sinon si (p2=='\b')
{
printf (" ");
printf (" ");
i=i-2;
}
i=i+1;
}

password2[i]='\0';
si (strcmp(password2,b.user_password)==0)
{
1;
printf ("Bienvenue!");
MenuCaissier();
pause;
}
sinon
{
Mot de passe invalide !
pour (j=0;j<45;j++)
password1[j]='\0';
}
}
pause;
}
sinon
{
Nom d'utilisateur non trouvé
obtenir();
rembobiner(f2);
aller demanderNom1;
}
}
fclose(f2);
pause;
cas 114 :
cas 82 :
menuPrincipal();break;
par défaut
Sélection invalide ! Entrez à nouveau :
aller à la1;
}
}

voidMenuCaissier()
{
longinti,j;charch;
Chargement
pour (i=0;i<3;i++)
{
pour (j=0;j<=200000000;j++);
printf(".");
}
La facturation est prête !
Appuyez sur (E) pour quitter. OU Toute autre touche pour continuer la facturation:
ch=getche();
switch (ch)
{
cas 69 :
cas 101 :
sortie(1);
default
Facturation();
}
}

voidManagerMenu()
{
char choix4;
longinti,j;
Chargement
pour (i=0;i<3;i++)
{
pour (j=0;j<=200000000;j++);
printf (".");
}
Entrez (A) pour ajouter à la liste des bonnes.
Entrez (E) pour modifier la liste des biens.
Entrez (D) pour afficher la liste des biens.
Entrez (S) pour voir le total des ventes.
Appuyez sur (barre d'espace) pour supprimer de la bonne liste.
Entrez (R) pour retourner au MenuPrincipal:

choix4=getche();
changer (choix4)
{
cas 65 :
cas 97 :
EntréeMarchandise();break;
cas 69 :
cas 101 :
ModifierLesBiens(); casser;
cas 68 :
cas 100 :
AfficherListeBiens();break;
cas 32 :
SupprimerMarchandises();break;
cas 115 :
cas 83 :
TotalVentesAffichage();break;
cas 82 :
cas 114 :
menuprincipal(); casser;
défaut
Sélection invalide ! Entrez à nouveau :
aller à la2;
}
}
voidGoodsEntry()
{
FICHIER *f;
charques
si ((f=fopen("goods.txt","ab+"))==NULL)
{
si ((f=fopen("goods.txt","wb+"))==NULL)
{
Impossible d'ouvrir le fichier
getch();
}
}
while(1)
{
Entrez le code de l'article à ajouter :
obtient (a.codearticle);
Entrez le nom de l'article :
obtient (a.nomdelarticle);
Entrez le taux pour la quantité unitaire :
scanf ("%d", &a.taux);
fwrite(&a,sizeof(a),1,f);
fflush(stdin);
Appuyez sur la touche 'esc' pour quitter ou sur une autre touche pour continuer :
ques=getche();
si(ques==27)
pause;
}
fclose(f);
MenuManager();
}

afficherListeBiensInexistants()
{
FICHIER *f;
inti,j;
Chargement
pour (i=0;i<4;i++)
{
pour (j=0;j<=100000000;j++);
printf (".");
}
printf (" ");
pour (i=0;i<3;i++)
{
pour (j=0;j<=100000000;j++);
printf (".");
}
printf ("\b\b\b");
si ((f=fopen("goods.txt","rb"))!=NULL)
{
Code de l'article Nom de l'article Coût (Rs.)\n
printf ("-------------------------------------------------------\n");
faire
{
printf("%s", a.itemcode);

printf("%s",a.itemname);
si ((strlen(a.itemname)>0) && (strlen(a.itemname)<=7))

si ((strlen(a.itemname)>7)&& (strlen(a.itemname)<13))

si ((strlen(a.itemname)>=13) && (strlen(a.itemname)<16))

%d
}tant que (fread(&a,sizeof(a),1,f)==1);
fermer(f);
getch();
}
MenuGestionnaire();
}
voidModifierProduits()
{
FICHIER *f;
[50]
int taille=sizeof(a);
si ((f=fopen("goods.txt","rb+"))!=NULL)
{
Entrez le code de l'article du produit :
obtient(itemcode);
fflush(stdin);
while (fread(&a,sizeof(a),1,f)==1)
{
si (strcmp(a.itemcode,itemcode)==0)
{
Entrez le nouveau code d'article :
obtient (a.itemcode);
Entrez le nom du nouvel article :
obtient (a.nomdelélément);
Entrez le tarif pour la quantité unitaire :
scanf ("%d", &a.rate);
fseek(f,-size,SEEK_CUR);
fwrite(&a,sizeof(a),1,f);
printf ("Fait. ");
getch();
pause;
}
}
fclose(f);
}
MenuGestionnaire();
}

voidSupprimerBiens()
{
FICHIER *f,*temp;
charitemcode[50];
int taille=sizeof(a);
f=fopen("goods.txt","rb");
temp=fopen("tempgoods.txt","wb");
Entrez le code de l'article du produit à supprimer :
obtient(itemcode);
tandis que (fread(&a,sizeof(a),1,f)==1)
{
si (strcmp(a.itemcode, itemcode) == 0)
continuer;
sinon
fwrite(&a,sizeof(a),1,temp);
}
renommer("tempgoods.txt", "goods.txt");
fermer(f);
fclose(temp);
Supprimé avec succès!
MenuResponsable();
}

void Facturation()
{
struct goods b[50];
FICHIER *f;
FICHIER *f1;charitemcode[50];int i=0,j,somme=0;
int quantity[200],cost[200],tender,change;
f=fopen("goods.txt","rb+");
f1=fopen("keeprecords.dat","ab+");
Entrez les codes des articles et appuyez sur n'importe quelle touche lorsque vous avez terminé.
faire
{
Entrez les codes des articles :
scanf("%s", &itemcode);
while(fread(&a,sizeof(a),1,f)==1)
{
si(strcmp(a.itemcode,itemcode)==0)
{
puts(a.nomdelarticle);
printf ("Rs.%d\n",a.rate);
strcpy(b[i].itemcode, a.itemcode);
strcpy (b[i].itemname,a.itemname);
b[i].taux=a.taux;
printf("Entrez la quantité :");
scanf ("%d", &quantity[i]);
coût[i] = quantité[i] * b[i].taux;
somme=somme+coût[i];
strcpy (c.itemcode,b[i].itemcode);
strcpy (c.itemname,b[i].itemname);
c.rate=b[i].taux;
c.quantité=quantité[i];
c.cost=coût[i];
fwrite(&c,sizeof(c),1,f1);
fflush(stdin);
i++;
pause;
}
}
rembobiner(f);
}tant que (strlen(codeArticle)==6);
fclose(f);
fclose(f1);
Code de l'article Nom de l'élément Coût
printf ("------------ ----------- ") --------- ---- ------
pour (j=0;j<i;j++)
{
printf("%s",b[j].itemcode);

printf("%s",b[j].itemname);
si ((strlen(b[j].itemname)>0)&& (strlen(b[j].itemname)<=7))

si ((strlen(b[j].itemname)>7)&& (strlen(b[j].itemname)<13))

si ((strlen(b[j].itemname)>=13) && (strlen(b[j].itemname)<16))

printf (" %d %d %d\n",b[j].rate,quantity[j],cost[j]);


}
Total: Rs.%d
Appel d'offres: Rs.
scanf ("%d", &tender);
montant d'appel d'offres
Changement: Rs.%d
Caissier :
puts(NomCaissier);
getch();
MenuCaissier();
}
voidTotalVentesAffichage()
{
FICHIER *f4;longint i=0,j,k;
Chargement
pour (k=0;k<3;k++)
{
pour (j=0;j<=200000000;j++);
printf (".");
}
si ((f4=fopen("keeprecords.dat","r+"))!=NULL)
{
Code de l'article Nom de l'article Coût Quantité Montant
printf ("------------------------------------------------------------------------- ");
faire
{
printf("%s", c.itemcode);

printf("%s", c.itemname);
grandtotal=grandtotal+c.cost;
si ((strlen(c.itemname)>0) && (strlen(c.itemname)<=7))

si ((strlen(c.itemname)>7)&& (strlen(c.itemname)<13))

si ((strlen(c.itemname)>=13) && (strlen(c.itemname)<16))

printf ("\t%d\t %d\t\t%d\n",c.rate,c.quantity,c.cost);


i=i+1;
}pendant que (fread(&c,sizeof(c),1,f4)==1);

Total des ventes=Rs. %d.00


fclose(f4);
getch();
}
MenuGestionnaire();
}
Caractéristiques du projet

Les caractéristiques de tout projet sont basées sur son fonctionnement et sur son impact sur le quotidien.
la vie quotidienne d'un être humain. Un grand magasin a une grande valeur dans la vie d'un homme ordinaire. Un homme
a besoin de ses besoins fondamentaux de nourriture, de vêtements qu'il peut se procurer dans un magasin de détail. Comme ce programme est

Axé sur la bonne gestion d'un magasin de détail, il présente donc un grand potentiel dans la société.
Quoi qu'il en soit, certaines des principales caractéristiques de ce projet sont décrites sous les rubriques suivantes :

Système à double mode :

Le projet dispose de deux modes et peut être utilisé par un manager et un caissier d'un.
magasin départemental. Un manager peut manipuler les achats et les ventes des biens dans le magasin
tandis qu'un caissier traite la facture en fonction des biens qu'un client souhaite acheter. Donc, le programme
est très bénéfique pour le magasin.

Gestion

Le projet se concentre principalement sur la gestion adéquate de la vente d'articles dans un département.
magasin. Diverses options de recherche et de modification sont fournies dans le programme. Ces options aident dans le
bonne gestion du magasin. Un gestionnaire a beaucoup plus d'options qu'un caissier. Cela rend
Le mode gestionnaire est plus vulnérable. Donc, le besoin de sécurité était notre effort principal.

Sécurité

Une autre caractéristique du programme est sa sécurité. Le système de mot de passe est implicite pour chaque
et chaque membre utilisant ce programme. Un gestionnaire détient un mot de passe maître, ce qui donne le
mode de gestion sécurité supplémentaire. Ainsi, tout programme sécurisé est beaucoup plus convivial et a un grand impact dans
société mise à disposition dans notre projet.

Messages conviviaux

Tout programme peut être populaire parmi les utilisateurs s'il est convivial. Le programme utilise
les messages conviviaux pour l'interface avec l'utilisateur. Cela aide à l'application facile du programme
parmi les utilisateurs. Les messages ne sont pas difficiles à comprendre et sont rédigés en anglais simple.

Par conséquent, voici les principales caractéristiques de notre projet. Ces caractéristiques sont incluses dans notre
le programme et chacune de ces fonctionnalités est le bijou de notre projet.
Limitations

Aucun projet n'est parfait. Chaque projet a ses limitations. Notre projet a également des
certaines limitations. Ces limitations peuvent être dues au fait qu'il s'agit d'un mini-projet et que nous ne sommes pas non plus des experts.

Certaines des principales limitations du projet ou programme sont énumérées comme suit :

L'attrait visuel du programme est faible. Aucune graphique intéressant n'est utilisé car il n'y en a pas d'utilité.
de <graphics.h> dans le programme.
Aucune utilisation de la fonction date et heure.

L'option de mot de passe modifiable n'est pas utilisée compte tenu de la longueur du programme.
Le programme se concentre uniquement sur la fourniture d'options à un gestionnaire et à un caissier, mais il ne peut pas fournir

beaucoup d'options pour le client dans un grand magasin.


Ainsi, ce sont les principales limitations des projets. Si ces limitations peuvent être surmontées.
alors notre programme aurait été parfait.
Conclusion

Nous pouvons donc conclure que le projet a été couronné de succès pour ce qu'il vise.
effectuer. Ce programme dans le cadre du projet peut être utilisé dans un grand magasin pour le bon
gestion des achats et des ventes de biens ainsi que la gestion de la facturation.
Ainsi, bien que le projet ait certaines de ses limites, l'effort maximal a été ciblé.
pour atteindre son objectif c'est-à-dire le système de gestion des grands magasins.
Références

Divers liens fournis par google.com.


Apprendre le C par des exemples, Krishna Kandel.

Vous aimerez peut-être aussi