0% ont trouvé ce document utile (0 vote)
7 vues4 pages

Texte

Le document est un programme en C qui gère un système de caisse pour un magasin. Il permet de créer des caissières, d'ajouter des produits au stock, d'afficher le stock actuel et d'effectuer des ventes avec génération de factures. Les données sont stockées dans des fichiers texte pour la persistance.

Transféré par

fataoouedraogo5732
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)
7 vues4 pages

Texte

Le document est un programme en C qui gère un système de caisse pour un magasin. Il permet de créer des caissières, d'ajouter des produits au stock, d'afficher le stock actuel et d'effectuer des ventes avec génération de factures. Les données sont stockées dans des fichiers texte pour la persistance.

Transféré par

fataoouedraogo5732
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

#include <stdio.

h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

void creer_caissiere() {
char nom[50], mdp[50];
printf("Nom de la caissière: ");
scanf("%s", nom);
printf("Mot de passe: ");
scanf("%s", mdp);

FILE *f = fopen("caissieres.txt", "a");


if (f == NULL) {
printf("Erreur d'ouverture du fichier.\n");
return;
}
fprintf(f, "%s,%s\n", nom, mdp);
fclose(f);
printf("Caissière créée avec succès.\n\n");
}

void ajouter_produit() {
char nom[50];
int quantite;
float prix;

printf("Nom du produit: ");


scanf("%s", nom);
printf("Quantité: ");
scanf("%d", &quantite);
printf("Prix unitaire: ");
scanf("%f", &prix);

FILE *f = fopen("stock.txt", "a");


if (f == NULL) {
printf("Erreur d'ouverture du fichier.\n");
return;
}
fprintf(f, "%s,%d,%.2f\n", nom, quantite, prix);
fclose(f);
printf("Produit ajouté avec succès.\n\n");
}

void afficher_stock() {
FILE *f = fopen("stock.txt", "r");
if (f == NULL) {
printf("Stock vide ou fichier introuvable.\n");
return;
}

char ligne[100];
printf("\n--- STOCK ACTUEL ---\n");
while (fgets(ligne, sizeof(ligne), f)) {
char nom[50];
int quantite;
float prix;
sscanf(ligne, "%[^,],%d,%f", nom, &quantite, &prix);
printf("%s - %d unités - %.2f FCFA\n", nom, quantite, prix);
}
fclose(f);
printf("\n");
}

void effectuer_vente() {
char nomClient[50], prenom[50], contact[50];
printf("Nom client: ");
scanf("%s", nomClient);
printf("Prénom client: ");
scanf("%s", prenom);
printf("Contact client: ");
scanf("%s", contact);

FILE *stock = fopen("stock.txt", "r");


if (stock == NULL) {
printf("Aucun produit en stock.\n");
return;
}

FILE *temp = fopen("temp.txt", "w");


if (temp == NULL) {
printf("Erreur d'ouverture du fichier temporaire.\n");
fclose(stock);
return;
}

char nomFichier[100];
sprintf(nomFichier, "facture_%s_%s.txt", nomClient, prenom);
FILE *facture = fopen(nomFichier, "w");
if (facture == NULL) {
printf("Erreur d'ouverture du fichier de facture.\n");
fclose(stock);
fclose(temp);
return;
}

char produit[50];
int qteDemandee;
float total = 0;
char ligne[100];

time_t now = time(NULL);


struct tm *t = localtime(&now);

fprintf(facture, "Client: %s %s\nContact: %s\nDate: %02d-%02d-%d %02d:%02d:%02d\nProduits:\n",


nomClient, prenom, contact,
t->tm_mday, t->tm_mon + 1, t->tm_year + 1900,
t->tm_hour, t->tm_min, t->tm_sec);

while (1) {
printf("Produit à acheter (ou 'fin' pour terminer): ");
scanf("%s", produit);
if (strcmp(produit, "fin") == 0) break;

printf("Quantité: ");
scanf("%d", &qteDemandee);

rewind(stock);
int trouve = 0;

while (fgets(ligne, sizeof(ligne), stock)) {


char nom[50];
int quantite;
float prix;
sscanf(ligne, "%[^,],%d,%f", nom, &quantite, &prix);
if (strcmp(nom, produit) == 0 && quantite>= qteDemandee) {
quantite -= qteDemandee;
total += qteDemandee * prix;
fprintf(temp, "%s,%d,%.2f\n", nom, quantite, prix);
fprintf(facture, " - %s x %d = %.2f FCFA\n", nom, qteDemandee, qteDemandee * prix);
trouve = 1;
} else {
fprintf(temp, "%s,%d,%.2f\n", nom, quantite, prix);
}
}
if (!trouve) {
printf("Produit introuvable ou quantité insuffisante.\n");
}
}
fprintf(facture, "TOTAL: %.2f FCFA\n", total);
fflush(facture); // s'assurer que les données sont bien écrites

fclose(stock);
fclose(temp);
fclose(facture);

remove("stock.txt");
rename("temp.txt", "stock.txt");

printf("Vente enregistrée avec succès.\n");


printf("Facture générée: %s\n\n", nomFichier);
}

int main() {
int choix;
do {
printf("\n=== MENU PRINCIPAL ===\n");
printf("1. Créer une caissière\n");
printf("2. Ajouter un produit\n");
printf("3. Afficher le stock\n");
printf("4. Effectuer une vente\n");
printf("5. Quitter\n");
printf("Choix: ");
scanf("%d", &choix);

switch (choix) {
case 1: creer_caissiere(); break;
case 2: ajouter_produit(); break;
case 3: afficher_stock(); break;
case 4: effectuer_vente(); break;
case 5: printf("Au revoir!\n"); break;
default: printf("Choix invalide.\n"); break;
}
} while (choix!= 5);

return 0;
}

Vous aimerez peut-être aussi