ajout suppression article et client, modification des clients pour isAdmin

doc
Louis GERMAIN 2 years ago
parent 658e1d2469
commit e2ad20a5e2

@ -30,6 +30,7 @@ void displayItem(int tabReference[], float weight[], float volume[], float unitP
printf("La référence cherchée n'existe pas");
exit(1);
}
printf("reference\tpoids\tvolume\tprix à l'unité");
printf("%d\t%f\t%f\t%f", tabReference[index], weight[index], volume[index], unitPrice[index]);
}
@ -49,14 +50,14 @@ void displayItemList(int reference[], float weight[], float volume[], float unit
+var i: compteur servant à parcourir les données des tableaux jusqu'à leur taille logique
*/
int i;
printf("reference\tpoids\tvolume\tprix");
printf("reference\tpoids\tvolume\tprix à l'unité");
for (i=0; i<tlog; i++)
{
printf("%d\t%f\t%f\t%f", reference[i], weight[i], volume[i], unitPrice[i]);
}
}
void displayClient(int clientID[], float cagnotte[], int suspended[], int tlog)
void displayClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog)
{
/*
Affichage des données d'un client choisi par son identifiant sous forme:
@ -85,10 +86,11 @@ void displayClient(int clientID[], float cagnotte[], int suspended[], int tlog)
printf("Le client cherché n'existe pas");
exit(1);
}
printf("%d\t%f\t%d", clientID[index], cagnotte[index], suspended[index]);
printf("num Client\tcagnotte\tsuspended\tisAdmin");
printf("%d\t%f\t%d\t%d", clientID[index], cagnotte[index], suspended[index], isAdmin[index]);
}
void displayClientList(int clientID[], float cagnotte[], int suspended[], int tlog)
void displayClientList(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog)
{
/*
Affichage de la liste des clients, un client par ligne, sous forme:
@ -103,9 +105,9 @@ void displayClientList(int clientID[], float cagnotte[], int suspended[], int tl
+var i: compteur servant à parcourir les données des tableaux jusqu'à leur taille logique
*/
int i;
printf("num Client\tcagnotte\tsuspended");
printf("num Client\tcagnotte\tsuspended\tisAdmin");
for (i=0; i<tlog; i++)
{
printf("%d\t%f\t%d", clientID[i], cagnotte[i], suspended[i]);
printf("%d\t%f\t%d\t%d", clientID[i], cagnotte[i], suspended[i], isAdmin[i]);
}
}

@ -44,10 +44,10 @@ void global(void)
*/
// Déclaration des variables
int tLogArticle, tLogClient, choice;
int reference[tmaxArticles], clientID[tmaxClients], suspended[tmaxClients];
int reference[tmaxArticles], clientID[tmaxClients], suspended[tmaxClients], isAdmin[tmaxClients];
float weight[tmaxArticles], volume[tmaxArticles], unitPrice[tmaxArticles], cagnotte[tmaxClients];
// Chargement de toute les données
chargeDonnees(&tLogArticle, &tLogClient, reference, weight, volume, unitPrice, clientID, cagnotte, suspended);
chargeDonnees(&tLogArticle, &tLogClient, reference, weight, volume, unitPrice, clientID, cagnotte, suspended, isAdmin);
// Affichage du menu
choice = displayMenu();

@ -12,26 +12,28 @@
#define tmaxClients 750
//! TRAITEMENT DES FICHIERS
void chargeDonnees(int *tLogArticle, int *tLogClient,int reference[], float weight[], float volume[], float unitPrice[], int clientID[], float cagnotte[], int suspended[]);
void chargeDonnees(int *tLogArticle, int *tLogClient,int reference[], float weight[], float volume[], float unitPrice[], int clientID[], float cagnotte[], int suspended[], int isAdmin[]);
int chargeArticles(int reference[], float weight[], float volume[], float unitPrice[]);
int chargeClients(int clientID[], float cagnotte[], int suspended[]);
int chargeClients(int clientID[], float cagnotte[], int suspended[], int isAdmin[]);
void sauvegardeDonnees(int tLogArticle, int tLogClient, int reference[], float weight[], float volume[], float unitPrice[], int clientID[], float cagnotte[], int suspended[]);
void sauvegardeDonnees(int tLogArticle, int tLogClient, int reference[], float weight[], float volume[], float unitPrice[], int clientID[], float cagnotte[], int isAdmin[], int suspended[]);
void sauvegardeArticles(int reference[], float weight[], float volume[], float unitPrice[], int tLogArticle);
void sauvegardeClients(int clientID[], float cagnotte[], int suspended[], int tLogClient);
void sauvegardeClients(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tLogClient);
//! GESTION CLIENTS
void inputClient(int clientID[], float cagnotte[], int suspended[], int *tlo);
void modifyClient(int clientID[], float cagnotte[], int suspended[], int tlog);
void inputClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int *tlog);
void modifyClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog);
void deleteClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int *tlog);
//! GESTION STOCKS
void inputItem(int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlog);
void deleteItem(int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlog);
//! AFFICHAGE DES DONNEES
void displayAItem(int reference[], float weight[], float volume[], float unitPrice[], int tlog);
void displayItemList(int reference[], float weight[], float volume[], float unitPrice[], int log);
void displayClient(int clientID[], float cagnotte[], int suspended[], int tlog);
void displayClientList(int clientID[], float cagnotte[], int suspended[], int tlog);
void displayClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog);
void displayClientList(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog);
//! RECHERCHE
int recherche(int val, int tab[], int tlog);

@ -1,6 +1,6 @@
#include "main.h"
void inputClient(int clientID[], float cagnotte[], int suspended[], int *tlog)
void inputClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int *tlog)
{
/*
Ajout d'un ou plusieurs clients dans les tableaux
@ -10,7 +10,7 @@ void inputClient(int clientID[], float cagnotte[], int suspended[], int *tlog)
+param suspended: tableau de l'état du compte des clients
+param tlog: taille logique des tableaux des clients
+var numClient: identifiant du cliet à ajouter
+var numClient: identifiant du client à ajouter
*/
int numClient = -1;
@ -26,11 +26,12 @@ void inputClient(int clientID[], float cagnotte[], int suspended[], int *tlog)
clientID[*tlog] = numClient;
cagnotte[*tlog] = 0;
suspended[*tlog] = 0;
isAdmin[*tlog] = 0;
*tlog ++;
}
}
void modifyClient(int clientID[], float cagnotte[], int suspended[], int tlog)
void modifyClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog)
{
/*
Modification des données d'un client dans les tableaux
@ -53,14 +54,20 @@ void modifyClient(int clientID[], float cagnotte[], int suspended[], int tlog)
while (numClient < 0)
{
printf("Erreur, le numéro du client doit être positif, entrez le numéro du client ou 0 si vous souhaitez arrêter la saisie: ");
scanf("%d", &numClient);
scanf("%d%*c", &numClient);
}
index = recherche(numClient, clientID, tlog);
printf("Entrez la modification voulue (s pour suspendre ou réactiver, c pour ajouter à la cagnotte): ");
while (index == -1)
{
printf("Cet identifiant client n'existe pas, réessayer ou tapez 0 si vous souhaitez arrêter la saisie: ");
scanf("%d%*c", &numClient);
index = recherche(numClient, clientID, tlog);
}
printf("Entrez la modification voulue (s pour suspendre ou réactiver, c pour ajouter à la cagnotte, a pour activer ou désactiver les droits administrateurs): ");
scanf("%c%*c", &modif);
while (modif != 's' && modif != 'c')
while (modif != 's' && modif != 'c' && modif != 'a')
{
printf("Erreur, le choix doit être 'c' ou 's', entrez la modification voulue (s pour suspendre ou réactiver, c pour ajouter à la cagnotte): ");
printf("Erreur, le choix doit être 'c' ou 's', entrez la modification voulue (s pour suspendre ou réactiver, c pour ajouter à la cagnotte, a pour activer ou désactiver les droits administrateurs): ");
scanf("%c%*c", &modif);
}
if (modif == 's')
@ -74,6 +81,11 @@ void modifyClient(int clientID[], float cagnotte[], int suspended[], int tlog)
scanf("%f", &montant);
cagnotte[index] += montant;
}
else if (modif == 'a')
if (isAdmin[index] == 0)
isAdmin[index] = 1;
else if (isAdmin[index] == 1)
isAdmin[index] = 0;
}
void inputItem(int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlog)
@ -135,3 +147,63 @@ void inputItem(int tabReference[], float tabWeight[], float tabVolume[], float u
*tlog++;
}
}
void deleteItem(int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlog)
{
int reference = -1, index, i;
while (reference != 0)
{
printf("Entrez la référence du produit à supprimer ou 0 si vous souhaitez arrêter la saisie: ");
scanf("%d", &reference);
while (reference < 0)
{
printf("Erreur: la référence doit être positive, entrez la référence du produit ou 0 si vous souhaitez arrêter la saisie: ");
scanf("%d", &reference);
}
index = recherche(reference, tabReference, *tlog);
while (index == -1)
{
printf("Cette référence n'existe pas, réessayer ou tapez 0 si vous souhaitez arrêter la saisie: ");
scanf("%d", &reference);
index = recherche(reference, tabReference, *tlog);
}
for (i=*tlog; i>index; i--)
{
tabReference[i-1] = tabReference[i];
tabWeight[i-1] = tabWeight[i];
tabVolume[i-1] = tabVolume[i];
unitPrice[i-1] = unitPrice[i];
}
*tlog--;
}
}
void deleteClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int *tlog)
{
int numClient = -1, index, i;
while (numClient != 0)
{
printf("Entrez l'identifiant du client à supprimer ou 0 si vous souhaitez arrêter la saisie: ");
scanf("%d", &numClient);
while (numClient < 0)
{
printf("Erreur, le numéro du client doit être positif, entrez le numéro du client ou 0 si vous souhaitez arrêter la saisie: ");
scanf("%d", &numClient);
}
index = recherche(numClient, clientID, *tlog);
while (index == -1)
{
printf("Cet identifiant client n'existe pas, réessayer ou tapez 0 si vous souhaitez arrêter la saisie: ");
scanf("%d", &numClient);
index = recherche(numClient, clientID, *tlog);
}
for (i=*tlog; i>index; i--)
{
clientID[i-1] = clientID[i];
cagnotte[i-1] = cagnotte[i];
suspended[i-1] = suspended[i];
isAdmin[i-1] = isAdmin[i];
}
*tlog--;
}
}

@ -28,7 +28,7 @@ int recherche(int val, int tab[], int tlog) // Recherche de l'index d'un id (de
return -1;
}
void chargeDonnees(int *tLogArticle, int *tLogClient,int reference[], float weight[], float volume[], float unitPrice[], int clientID[], float cagnotte[], int suspended[])
void chargeDonnees(int *tLogArticle, int *tLogClient,int reference[], float weight[], float volume[], float unitPrice[], int clientID[], float cagnotte[], int suspended[], int isAdmin[])
{
/*
Chargement des données des articles et clients de fichiers vers des tableaux
@ -44,7 +44,7 @@ void chargeDonnees(int *tLogArticle, int *tLogClient,int reference[], float weig
+param suspended: tableau de l'état du compte des clients
*/
*tLogArticle = chargeArticles(reference, weight, volume, unitPrice);
*tLogClient = chargeClients(clientID, cagnotte, suspended);
*tLogClient = chargeClients(clientID, cagnotte, suspended, isAdmin);
}
int chargeArticles(int reference[], float weight[], float volume[], float unitPrice[])
@ -100,7 +100,7 @@ int chargeArticles(int reference[], float weight[], float volume[], float unitPr
return tL;
}
int chargeClients(int clientID[], float cagnotte[], int suspended[])
int chargeClients(int clientID[], float cagnotte[], int suspended[], int isAdmin[])
{
/*
Chargement des données des clients d'un fichier vers des tableaux
@ -125,10 +125,10 @@ int chargeClients(int clientID[], float cagnotte[], int suspended[])
exit(1);
}
int id, sus, tL=0;
int id, sus, tL=0, adm;
float cag;
fscanf(client, "%d %f %d", &id, &cag, &sus);
fscanf(client, "%d %f %d %d", &id, &cag, &sus, &adm);
while(!feof(client))
{
if(tL < tmaxArticles)
@ -140,17 +140,18 @@ int chargeClients(int clientID[], float cagnotte[], int suspended[])
clientID[tL] = id;
cagnotte[tL] = cag;
suspended[tL] = sus;
isAdmin[tL] = adm;
tL++;
fscanf(client, "%d %f %d", &id, &cag, &sus);
fscanf(client, "%d %f %d", &id, &cag, &sus, &adm);
}
fclose(client);
return tL;
}
void sauvegardeDonnees(int tLogArticle, int tLogClient, int reference[], float weight[], float volume[], float unitPrice[], int clientID[], float cagnotte[], int suspended[])
void sauvegardeDonnees(int tLogArticle, int tLogClient, int reference[], float weight[], float volume[], float unitPrice[], int clientID[], float cagnotte[], int suspended[], int isAdmin[])
{
/*
Sauvegarde des données des articles et clients de tableaux vers des fichiers
@ -166,7 +167,7 @@ void sauvegardeDonnees(int tLogArticle, int tLogClient, int reference[], float w
+param suspended: tableau de l'état du compte des clients
*/
sauvegardeArticles(reference, weight, volume, unitPrice, tLogArticle);
sauvegardeClients(clientID, cagnotte, suspended, tLogClient);
sauvegardeClients(clientID, cagnotte, suspended, isAdmin, tLogClient);
}
void sauvegardeArticles(int reference[], float weight[], float volume[], float unitPrice[], int tLogArticle)
@ -200,7 +201,7 @@ void sauvegardeArticles(int reference[], float weight[], float volume[], float u
fclose(article);
}
void sauvegardeClients(int clientID[], float cagnotte[], int suspended[], int tLogClient)
void sauvegardeClients(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tLogClient)
{
/*
Sauvegarde des données des articles de tableaux vers le fichier des articles
@ -224,7 +225,7 @@ void sauvegardeClients(int clientID[], float cagnotte[], int suspended[], int tL
int i;
for(i=0; i<tLogClient; i++)
{
fprintf(client, "%d %f %d\n", clientID[i], cagnotte[i], suspended[i]);
fprintf(client, "%d %f %d %d\n", clientID[i], cagnotte[i], suspended[i], isAdmin[i]);
}
fclose(client);

Loading…
Cancel
Save