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"); printf("La référence cherchée n'existe pas");
exit(1); 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]); 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 +var i: compteur servant à parcourir les données des tableaux jusqu'à leur taille logique
*/ */
int i; int i;
printf("reference\tpoids\tvolume\tprix"); printf("reference\tpoids\tvolume\tprix à l'unité");
for (i=0; i<tlog; i++) for (i=0; i<tlog; i++)
{ {
printf("%d\t%f\t%f\t%f", reference[i], weight[i], volume[i], unitPrice[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: 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"); printf("Le client cherché n'existe pas");
exit(1); 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: 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 +var i: compteur servant à parcourir les données des tableaux jusqu'à leur taille logique
*/ */
int i; int i;
printf("num Client\tcagnotte\tsuspended"); printf("num Client\tcagnotte\tsuspended\tisAdmin");
for (i=0; i<tlog; i++) 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 // Déclaration des variables
int tLogArticle, tLogClient, choice; 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]; float weight[tmaxArticles], volume[tmaxArticles], unitPrice[tmaxArticles], cagnotte[tmaxClients];
// Chargement de toute les données // 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 // Affichage du menu
choice = displayMenu(); choice = displayMenu();

@ -12,26 +12,28 @@
#define tmaxClients 750 #define tmaxClients 750
//! TRAITEMENT DES FICHIERS //! 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 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 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 //! GESTION CLIENTS
void inputClient(int clientID[], float cagnotte[], int suspended[], int *tlo); void inputClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int *tlog);
void modifyClient(int clientID[], float cagnotte[], int suspended[], 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 //! GESTION STOCKS
void inputItem(int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlog); 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 //! AFFICHAGE DES DONNEES
void displayAItem(int reference[], float weight[], float volume[], float unitPrice[], int tlog); 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 displayItemList(int reference[], float weight[], float volume[], float unitPrice[], int log);
void displayClient(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 tlog); void displayClientList(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog);
//! RECHERCHE //! RECHERCHE
int recherche(int val, int tab[], int tlog); int recherche(int val, int tab[], int tlog);

@ -1,6 +1,6 @@
#include "main.h" #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 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 suspended: tableau de l'état du compte des clients
+param tlog: taille logique des tableaux 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; int numClient = -1;
@ -26,11 +26,12 @@ void inputClient(int clientID[], float cagnotte[], int suspended[], int *tlog)
clientID[*tlog] = numClient; clientID[*tlog] = numClient;
cagnotte[*tlog] = 0; cagnotte[*tlog] = 0;
suspended[*tlog] = 0; suspended[*tlog] = 0;
isAdmin[*tlog] = 0;
*tlog ++; *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 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) 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: "); 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); 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); 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); scanf("%c%*c", &modif);
} }
if (modif == 's') if (modif == 's')
@ -74,6 +81,11 @@ void modifyClient(int clientID[], float cagnotte[], int suspended[], int tlog)
scanf("%f", &montant); scanf("%f", &montant);
cagnotte[index] += 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) 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++; *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; 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 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 +param suspended: tableau de l'état du compte des clients
*/ */
*tLogArticle = chargeArticles(reference, weight, volume, unitPrice); *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[]) 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; 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 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); exit(1);
} }
int id, sus, tL=0; int id, sus, tL=0, adm;
float cag; float cag;
fscanf(client, "%d %f %d", &id, &cag, &sus); fscanf(client, "%d %f %d %d", &id, &cag, &sus, &adm);
while(!feof(client)) while(!feof(client))
{ {
if(tL < tmaxArticles) if(tL < tmaxArticles)
@ -140,17 +140,18 @@ int chargeClients(int clientID[], float cagnotte[], int suspended[])
clientID[tL] = id; clientID[tL] = id;
cagnotte[tL] = cag; cagnotte[tL] = cag;
suspended[tL] = sus; suspended[tL] = sus;
isAdmin[tL] = adm;
tL++; tL++;
fscanf(client, "%d %f %d", &id, &cag, &sus); fscanf(client, "%d %f %d", &id, &cag, &sus, &adm);
} }
fclose(client); fclose(client);
return tL; 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 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 +param suspended: tableau de l'état du compte des clients
*/ */
sauvegardeArticles(reference, weight, volume, unitPrice, tLogArticle); 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) 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); 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 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; int i;
for(i=0; i<tLogClient; 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); fclose(client);

Loading…
Cancel
Save