From 207e5f7b8d198cd0328beb06fcf11cb0fed65e78 Mon Sep 17 00:00:00 2001 From: "louis.germain" Date: Fri, 10 Nov 2023 00:09:32 +0100 Subject: [PATCH] Ajout du menu admin et reglage d'erreurs --- src/login.c | 4 ++-- src/main.h | 8 ++++---- src/menu.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++-- src/modif.c | 5 ++--- 4 files changed, 64 insertions(+), 11 deletions(-) diff --git a/src/login.c b/src/login.c index d175957..0232656 100644 --- a/src/login.c +++ b/src/login.c @@ -78,7 +78,7 @@ int login(int clientID[], int clientPassword[], int isAdmin[], int tlog) * @param tlog: Taille logique des Tableaux * @return 0 > Tout s'est bien passé, -1 > L'utilisateur a quitté, -2 > La taille physique du tableau est dépassée */ -int signup(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog) +void signup(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog) { int id, password, index, found, status; printf("Entrez votre identifiant: "); @@ -109,5 +109,5 @@ int signup(int clientID[], int clientPassword[], float cagnotte[], int suspended scanf("%d%*c", &password); } - return inputClient(id, password, index, clientID, clientPassword, cagnotte, suspended, isAdmin, tlog); + inputClient(id, password, index, clientID, clientPassword, cagnotte, suspended, isAdmin, tlog); } \ No newline at end of file diff --git a/src/main.h b/src/main.h index e39b0e5..0d8c399 100644 --- a/src/main.h +++ b/src/main.h @@ -32,7 +32,7 @@ void decalageADroite(int tab[], int index, int tlog); void decalageAGauche(int tab[], int index, int tlog); //! GESTION CLIENTS -int inputClient(int id, int passwd, int index, int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog); +void inputClient(int id, int passwd, int index, int clientID[], int clientPassword[], 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); @@ -58,12 +58,12 @@ void basket_del_article(int basket_tab_ref[], int basket_tab_qte[], int *tlog_ba //! LOGIN int login(int clientID[], int clientPassword[], int isAdmin[], int tlog); -int signup(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog); +void signup(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog); //! MOT DE PASSE int encrypt(int password); int decrypt(int password); //! MENUS -void adminMenu(void); -void clientMenu(float *weight, float *volume, float *price); \ No newline at end of file +void adminMenu(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlogItem, int *tlogClient); +void clientMenu(float *weight, float *volume, float *price, int tabItemRef[], float unitPrice[], float *cagnotte, int basket_tab_ref[], int basket_tab_qte[], float tabWeight[], float tabVolume[], float tabPrice[], int tlogItem, int *tlogBasket); \ No newline at end of file diff --git a/src/menu.c b/src/menu.c index 77b3479..1b62717 100644 --- a/src/menu.c +++ b/src/menu.c @@ -51,7 +51,61 @@ void clientMenu(float *weight, float *volume, float *price, int tabItemRef[], fl } } -void adminMenu(void) +void adminMenu(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlogItem, int *tlogClient) { - + int choice = 0; + while (choice != 10) + { + printf("\n=================================\n"); + printf(" Menu Client\n"); + printf("=================================\n"); + printf("1\u2022 Ajouter un client\n"); + printf("2\u2022 Modifier les données d'un client\n"); + printf("3\u2022 Supprimer un client\n"); + printf("4\u2022 Ajouter un article\n"); + printf("5\u2022 Supprimer un article\n"); + printf("6\u2022 Afficher les données d'un article\n"); + printf("7\u2022 Afficher la liste des articles\n"); + printf("8\u2022 Afficher les données d'un client\n"); + printf("9\u2022 Afficher la liste des clients\n"); + printf("10\u2022 Quitter\n"); + printf("=================================\n"); + printf("Votre choix: "); + scanf("%d", &choice); + switch (choice) + { + case 1: + signup(clientID, clientPassword, cagnotte, suspended, isAdmin, tlogClient); + break; + case 2: + modifyClient(clientID, cagnotte, suspended, isAdmin, *tlogClient); + break; + case 3: + deleteClient(clientID, cagnotte, suspended, isAdmin, tlogClient); + break; + case 4: + inputItem(tabReference, tabWeight, tabVolume, unitPrice, tlogItem); + break; + case 5: + deleteItem(tabReference, tabWeight, tabVolume, unitPrice, tlogItem); + break; + case 6: + displayItem(tabReference, tabWeight, tabVolume, unitPrice, *tlogItem); + break; + case 7: + displayItemList(tabReference, tabWeight, tabVolume, unitPrice, *tlogItem); + break; + case 8: + displayClient(clientID, cagnotte, suspended, isAdmin, *tlogClient); + break; + case 9: + displayClientList(clientID, cagnotte, suspended, isAdmin, *tlogClient); + break; + case 10: + return; + default: + printf("Erreur, veuillez entrer un choix valide.\n"); + break; + } + } } \ No newline at end of file diff --git a/src/modif.c b/src/modif.c index 78e6595..686486d 100644 --- a/src/modif.c +++ b/src/modif.c @@ -18,13 +18,13 @@ * @param tlog: Taille logique des tableaux * @return 0 si tout s'est bien passé, -2 si la taille physique du tableau est dépassée */ -int inputClient(int id, int passwd, int index, int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog) +void inputClient(int id, int passwd, int index, int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog) { // Vérification du dépassement de la taille physique du tableau if (*tlog == tmaxClients) { printf("[ERREUR] - La taille physique du tableau est dépassée, impossible d'ajouter un nouveau client.\n"); - return -2; + return; } // Décalage @@ -40,7 +40,6 @@ int inputClient(int id, int passwd, int index, int clientID[], int clientPasswor isAdmin[index] = 0; *tlog++; - return 0; // Tout s'est bien passé } /**