From 2d1b0ff2081427a02dfd21c070cd9216133dabeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A9o=20Hersan?= Date: Wed, 1 Nov 2023 01:01:39 +0100 Subject: [PATCH] some tests --- app | Bin 52896 -> 53136 bytes donnee/client.txt | 2 +- src/app/core_logic/client.c | 2 +- src/app/interface/interface_client.c | 124 +++++++++++++++++---------- src/app/interface/interface_client.h | 6 +- 5 files changed, 88 insertions(+), 46 deletions(-) diff --git a/app b/app index e3adf7c9685818bd06a0fcc1c0a66a7cb84572ca..94e4fd661d4e16d72c5d6a9e0b66b4e04f3e26a5 100755 GIT binary patch delta 9834 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 delta 8582 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 diff --git a/donnee/client.txt b/donnee/client.txt index 8eece2c..7df3568 100644 --- a/donnee/client.txt +++ b/donnee/client.txt @@ -1,3 +1,3 @@ 32 0.00 1 -660 63.83 0 +660 124.00 0 5079 75.50 0 diff --git a/src/app/core_logic/client.c b/src/app/core_logic/client.c index 161981d..65aaf55 100644 --- a/src/app/core_logic/client.c +++ b/src/app/core_logic/client.c @@ -143,5 +143,5 @@ void supprimer_article(int panier[], int quantites[], int *taillePanier, int ref float montantTotal = prixUnitaire[articleIndex] * quantite; cagnottes[clientIndex] -= 0.1 * montantTotal; } - } + diff --git a/src/app/interface/interface_client.c b/src/app/interface/interface_client.c index a00c539..93591fb 100644 --- a/src/app/interface/interface_client.c +++ b/src/app/interface/interface_client.c @@ -111,39 +111,40 @@ void ajouter_article_au_panier(int numeroClient, int references[], float poids[] printf("\tDépassement du budget autorisé de %.2f euros \n", depassementBudget); } printf("\n"); - } else { - montantTotal = prixUnitaire[articleIndex] * quantite; + } - clientIndex = trouver_index_client(numeroClient, numeros, nombreClients); + montantTotal = prixUnitaire[articleIndex] * quantite; - if (clientIndex != -1) { - cagnottes[clientIndex] += 0.1 * montantTotal; - } + clientIndex = trouver_index_client(numeroClient, numeros, nombreClients); - panier[*taillePanier] = reference; - quantites[*taillePanier] = quantite; - (*taillePanier)++; + if (clientIndex != -1) { + cagnottes[clientIndex] += 0.1 * montantTotal; + } - printf("Contenu du panier : "); - for (int i = 0; i < *taillePanier; i++) { - printf("%d ", panier[i]); - } - printf("\n"); + panier[*taillePanier] = reference; + quantites[*taillePanier] = quantite; + (*taillePanier)++; - printf("Référence : %d\nQuantité : %d\n", reference, quantite); - printf("Récap :\n"); - printf("Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot Cagnotte\n"); - printf("%d %d %.2f %.2f %.2f %.2f %.2f %.2f %.2f\n", - reference, quantite, poids[articleIndex], volume[articleIndex], - prixUnitaire[articleIndex], poidsTotal, volumeTotal, montantTotal, - cagnottes[clientIndex]); - printf("Prix total à payer: %.2f euros\n", montantTotal); - printf("Cagnotte totale : %.2f euros\n", cagnottes[clientIndex]); - printf("Volume utilise : %.2f litres\n", volumeTotal); - printf("Volume restant : %.2f litres\n", volumeCoffre - volumeTotal); - printf("Charge Actuelle: %.2f kg\n", poidsTotal); - printf("Charge restante: %.2f kg\n", chargeMaximale - poidsTotal); + printf("Contenu du panier : "); + for (int i = 0; i < *taillePanier; i++) { + printf("%d ", panier[i]); } + printf("\n"); + + printf("Référence : %d\nQuantité : %d\n", reference, quantite); + printf("Récap :\n"); + printf("Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot Cagnotte\n"); + printf("%d %d %.2f %.2f %.2f %.2f %.2f %.2f %.2f\n", + reference, quantite, poids[articleIndex], volume[articleIndex], + prixUnitaire[articleIndex], poidsTotal, volumeTotal, montantTotal, + cagnottes[clientIndex]); + printf("Prix total à payer: %.2f euros\n", montantTotal); + printf("Cagnotte totale : %.2f euros\n", cagnottes[clientIndex]); + printf("Volume utilise : %.2f litres\n", volumeTotal); + printf("Volume restant : %.2f litres\n", volumeCoffre - volumeTotal); + printf("Charge Actuelle: %.2f kg\n", poidsTotal); + printf("Charge restante: %.2f kg\n", chargeMaximale - poidsTotal); + } @@ -202,13 +203,16 @@ void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanie * @param nombreClients - Nombre de clients. * @param volumeCoffre - Volume total du coffre. * @param chargeMaximale - Charge maximale du coffre. + * @param budget - Budget du client. */ void affiche_recap_panier(int panier[], int taillePanier, int references[], float poids[], float volume[], float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, - int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale) { + int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale, float budget) { int reference, articleIndex, quantite, clientIndex; float poidsTotal = 0, volumeTotal = 0, montantTotal = 0, prixArticle = 0, poidsArticle = 0, volumeArticle = 0; + char attentionDepassement[200] = ""; + printf("Contenu du panier : "); for (int i = 0; i < taillePanier; i++) { printf("%d ", panier[i]); @@ -234,6 +238,25 @@ void affiche_recap_panier(int panier[], int taillePanier, int references[], floa poidsTotal += poidsArticle * quantite; volumeTotal += volumeArticle * quantite; montantTotal += prixArticle * quantite; + + if (poidsTotal > chargeMaximale) { + float depassement = poidsTotal - chargeMaximale; + char message[100]; + sprintf(message, "Dépassement de la charge autorisée de %.2f kg.\n", depassement); + strcat(attentionDepassement, message); + } + if (volumeTotal > volumeCoffre) { + float depassement = volumeTotal - volumeCoffre; + char message[100]; + sprintf(message, "Dépassement du volume autorisé de %.2f litres.\n", depassement); + strcat(attentionDepassement, message); + } + if (budget > 0 && montantTotal > budget) { + float depassement = montantTotal - budget; + char message[100]; + sprintf(message, "Dépassement du budget autorisé de %.2f euros.\n", depassement); + strcat(attentionDepassement, message); + } } clientIndex = trouver_index_client(numeroClient, numeros, nombreClients); @@ -241,9 +264,11 @@ void affiche_recap_panier(int panier[], int taillePanier, int references[], floa printf("Prix total à payer: %.2f euros\n", montantTotal); printf("Cagnotte totale : %.2f euros\n", cagnottes[clientIndex]); printf("Volume utilise : %.2f litres\n", volumeTotal); - printf("Volume restant : %.2f litres\n", volumeCoffre - volumeTotal); printf("Charge Actuelle: %.2f kg\n", poidsTotal); - printf("Charge restante: %.2f kg\n", chargeMaximale - poidsTotal); + + if (strlen(attentionDepassement) > 0) { + printf("Attention : %s", attentionDepassement); + } } /** @@ -271,7 +296,7 @@ void configurer_session_client(int numeros[], int suspendus[], int nombreClients indexClient = trouver_index_client(*numeroClient, numeros, nombreClients); while (indexClient == -1) { - printf("Client non trouvé. Veuillez entrer un numéro de client valide : "); + printf("ERREUR : Veuillez entrer un numéro de client valide : "); while (scanf("%d", numeroClient) != 1) { while (getchar() != '\n'); printf("ERREUR : Veuillez entrer un numéro de client valide : "); @@ -425,6 +450,28 @@ void deduire_cagnotte(int numeroClient, float montant, int numeros[], float cagn } +void quitterApplication(int *choixCagnotte, float *montant, double *budget, float *cagnottes, int numeroClient, + int *numeros, int nombreClients, int *suspendus) { + printf("%lf\n", *budget); + printf("%f\n", *montant); + printf("Voulez-vous déduire de votre cagnotte avant de quitter ? (1 pour Oui, 0 pour Non) : "); + scanf("%d", choixCagnotte); + if (*choixCagnotte == 1) { + printf("Entrez le montant à déduire de votre cagnotte : "); + scanf("%f", montant); + + deduire_cagnotte(numeroClient, *montant, numeros, cagnottes, nombreClients, suspendus); + printf("Le montant a été déduit de votre cagnotte.\n"); + } + + if (*budget > 0) { + if (*budget < *montant) { + printf("Attention : Votre budget est dépassé. Vous ne pourrez pas payer.\n"); + } else if (*budget < *montant + cagnottes[numeroClient]) { + printf("Attention : Votre budget est dépassé, mais vous avez suffisamment dans votre cagnotte pour payer.\n"); + } + } +} /** * @brief Laisse l'utilisateur choisir une option du menu. * @@ -448,7 +495,7 @@ void menu_client(int *choix) { */ void global_client() { int choix, references[MAX_ARTICLES], numeros[MAX_CLIENTS], suspendus[MAX_CLIENTS], nombreArticles, - nombreClients, numeroClient, quantites[MAX_ARTICLES], panier[MAX_ARTICLES], taillePanier = 0, choixCagnotte; + nombreClients, numeroClient, quantites[MAX_ARTICLES], panier[MAX_ARTICLES], taillePanier = 0, choixCagnotte = 0; float poids[MAX_ARTICLES], volume[MAX_ARTICLES], prixUnitaire[MAX_ARTICLES], cagnottes[MAX_CLIENTS], volumeCoffre, chargeMaximale, montant; @@ -465,7 +512,7 @@ void global_client() { switch (choix) { case 1: affiche_recap_panier(panier, taillePanier, references, poids, volume, prixUnitaire, quantites, cagnottes, - numeroClient, numeros, nombreClients, volumeCoffre, chargeMaximale); + numeroClient, numeros, nombreClients, volumeCoffre, chargeMaximale, budget); break; case 2: ajouter_article_au_panier(numeroClient, references, poids, volume, prixUnitaire, numeros, cagnottes, @@ -482,17 +529,8 @@ void global_client() { printf("Le panier a été réinitialisé.\n"); break; case 9: - printf("Voulez-vous déduire de votre cagnotte avant de quitter ? (1 pour Oui, 0 pour Non) : "); - scanf("%d", &choixCagnotte); - if (choixCagnotte == 1) { - printf("Entrez le montant à déduire de votre cagnotte : "); - scanf("%f", &montant); - - deduire_cagnotte(numeroClient, montant, numeros, cagnottes, nombreClients, suspendus); - - printf("Le montant a été déduit de votre cagnotte.\n"); - } + quitterApplication(&choixCagnotte, &montant, &budget, cagnottes, numeroClient, numeros, nombreClients, suspendus); sauvegarde_clients(numeros, cagnottes, suspendus, nombreClients); printf("Au revoir !\n"); return; diff --git a/src/app/interface/interface_client.h b/src/app/interface/interface_client.h index ef53206..0321819 100644 --- a/src/app/interface/interface_client.h +++ b/src/app/interface/interface_client.h @@ -4,6 +4,7 @@ */ #include +#include #include "../core_logic/client.h" #include "../core_logic/responsable.h" @@ -79,11 +80,12 @@ void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanie * @param nombreClients - Nombre de clients. * @param volumeCoffre - Volume total du coffre. * @param chargeMaximale - Charge maximale du coffre. + * @param budget - Budget du client. */ void affiche_recap_panier(int panier[], int taillePanier, int references[], float poids[], float volume[], float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient, - int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale); + int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale, float budget); /** * @brief Affiche le récapitulatif du panier. @@ -149,3 +151,5 @@ void deduire_cagnotte(int numeroClient, float montant, int numeros[], float cagn */ void global_client(); +void quitterApplication(int *choixCagnotte, float *montant, double *budget, float *cagnottes, int numeroClient, + int *numeros, int nombreClients, int *suspendus);