From 09b2506eb338ded9e02f8d86b8f3d924df7a79e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A9o=20Hersan?= Date: Thu, 9 Nov 2023 17:30:07 +0100 Subject: [PATCH 1/7] some modif MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mathéo Hersan --- compteRendu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compteRendu.md b/compteRendu.md index f4d7a56..bd7cf0a 100644 --- a/compteRendu.md +++ b/compteRendu.md @@ -83,5 +83,5 @@ Ces fonctionnalités garantissent que l'application aide les utilisateurs à gé ## Traces d'exécution : Voici les traces d'execution pour la partie **client** : -Tout d'abord les cas ou le client n'a pas de carte suspendu et choisis un budget: +Tout d'abord les cas ou le client n'a pas de carte suspendu et ne choisis pas de budget: -- 2.36.3 From 457900273a0cfe14f55356fac9a8aa182731f729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A9o=20Hersan?= Date: Thu, 9 Nov 2023 00:38:55 +0100 Subject: [PATCH 2/7] better verification when we quit the app as a client. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mathéo Hersan --- donnee/client.txt | 2 +- src/app/interface/interface_client.c | 30 +++++++++++++++++----------- src/app/interface/interface_client.h | 6 ++++-- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/donnee/client.txt b/donnee/client.txt index 2460022..a3f9e56 100644 --- a/donnee/client.txt +++ b/donnee/client.txt @@ -1,3 +1,3 @@ 32 69.00 1 -5079 75.50 0 +5079 600.70 0 53 0.00 0 diff --git a/src/app/interface/interface_client.c b/src/app/interface/interface_client.c index 03d1f8a..8e3fcca 100644 --- a/src/app/interface/interface_client.c +++ b/src/app/interface/interface_client.c @@ -16,6 +16,7 @@ void affiche_client(void) { printf("||\t4 : Supprimer un article du panier. \t\t\t||\n"); printf("||\t5 : Modifier la quantité d'un article du panier. \t||\n"); printf("||\t6 : Réinitialiser le panier.\t\t\t\t||\n"); + printf("||\t7 : Passer au payement.\t\t\t\t\t||\n"); printf("||\t9 : Quitter.\t\t\t\t\t\t||\n"); printf("+----------------------------------------------------------------+\n"); } @@ -276,7 +277,7 @@ void deduire_cagnotte(int numClient, float montant, int tNumClient[], float tCag printf("Il vous reste %.2f euros dans votre cagnotte.\n", tCagnotte[clientIndex]); } -void quitter_application(int tPanier[], int tLogPanier, int tRef[], float tPoid[], float tVol[], +void payer(int tPanier[], int tLogPanier, int tRef[], float tPoid[], float tVol[], float tPrixUnitaire[], int tQuantite[], float tCagnotte[], int numClient, int tNumClient[], int tLogClient, float budget, int tSus[], float volumeCoffre, float chargeMaximale) { @@ -328,18 +329,21 @@ void quitter_application(int tPanier[], int tLogPanier, int tRef[], float tPoid[ printf("Volume utilise : %.2f litres\n", volumeTotal); printf("Charge Actuelle: %.2f kg\n", poidsTotal); - if(volumeTotal > volumeCoffre) { + if(poidsTotal > chargeMaximale || volumeTotal > volumeCoffre) { printf("Attention : %s", attentionDepassement); printf("Vous ne pourrez pas payer. De plus vous ne pourrez pas utiliser votre cagnotte car votre coffre est plein.\n"); - printf("Payement non effectué.\n"); - return; - } + printf("Voulez vous revenir en arrière pour modifier votre panier ? (1 pour Oui, 0 pour Non) : "); + while (scanf("%d", &choixCagnotte) != 1 || (choixCagnotte != 0 && choixCagnotte != 1)) { + while (getchar() != '\n'); + fprintf(stderr, "\x1B[31mERREUR : Veuillez entrer 1 pour Oui ou 0 pour Non :\x1B[0m "); + } - if(poidsTotal > chargeMaximale) { - printf("Attention : %s", attentionDepassement); - printf("Vous ne pourrez pas payer. De plus vous ne pourrez pas utiliser votre cagnotte car votre coffre est plein.\n"); - printf("Payement non effectué.\n"); - return; + if (choixCagnotte == 1) { + return; + } else { + printf("Payement non effectué.\n"); + return; + } } if(tSus[clientIndex] == 1 && budget > 0 && montantTotal > budget) { @@ -417,7 +421,7 @@ void quitter_application(int tPanier[], int tLogPanier, int tRef[], float tPoid[ void menu_client(int *choix) { affiche_client(); printf("Vous choisissez: "); - while (scanf("%d", choix) != 1 || *choix < 0 || *choix > 9 || (*choix > 6 && *choix < 9)) { + while (scanf("%d", choix) != 1 || *choix < 0 || *choix > 9 || (*choix > 7 && *choix < 9)) { while (getchar() != '\n'); fprintf(stderr, "\x1B[31mERREUR : Veuillez entrer un choix valide :\x1B[0m "); } @@ -462,8 +466,10 @@ void global_client(void) { case 6: reinitialiser_panier(tPanier, tQuantite, &tLogPanier, tCagnotte, numClient, tNumClient, tLogClient, tRef, tPrixUnitaire); break; + case 7: + payer(tPanier, tLogPanier, tRef, tPoids, tVol, tPrixUnitaire, tQuantite, tCagnotte, numClient, tNumClient, tLogClient, budget, tSus, volumeCoffre, chargeMaximale); + break; case 9: - quitter_application(tPanier, tLogPanier, tRef, tPoids, tVol, tPrixUnitaire, tQuantite, tCagnotte, numClient, tNumClient, tLogClient, budget, tSus, volumeCoffre, chargeMaximale); sauvegarde_clients(tNumClient, tCagnotte, tSus, tLogClient); printf("Au revoir !\n"); return; diff --git a/src/app/interface/interface_client.h b/src/app/interface/interface_client.h index 94207a6..e85608b 100644 --- a/src/app/interface/interface_client.h +++ b/src/app/interface/interface_client.h @@ -137,7 +137,9 @@ void reinitialiser_panier(int tPanier[], int tQuantite[], int *tLogPanier, float void deduire_cagnotte(int numClient, float montant, int tNumClient[], float tCagnotte[], int tLogClient); /** - * @brief Quitter l'application client. + * @brief Passe a la phase de paiement. + * + * Cette fonction vérifie les dépassement de volume, de poids et de budget avant de quitter l'application. * * @param tPanier - Le panier d'achat du client. * @param tLogPanier - La taille du panier. @@ -155,7 +157,7 @@ void deduire_cagnotte(int numClient, float montant, int tNumClient[], float tCag * @param volumeCoffre - La limite de volume pour le véhicul du client. * @param chargeMaximale - La limite de poids pour le véhicul du client. */ -void quitter_application(int tPanier[], int tLogPanier, int tRef[], float tPoid[], float tVol[], +void payer(int tPanier[], int tLogPanier, int tRef[], float tPoid[], float tVol[], float tPrixUnitaire[], int tQuantite[], float tCagnotte[], int numClient, int tNumClient[], int tLogClient, float budget, int tSus[], float volumeCoffre, float chargeMaximale); -- 2.36.3 From 7adc8b3ba0f84c2feb08414b1dd4285040a84336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A9o=20Hersan?= Date: Thu, 9 Nov 2023 17:56:00 +0100 Subject: [PATCH 3/7] added modif on the report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mathéo Hersan --- compteRendu.md | 687 ++++++++++++++++++++++++++- donnee/client.txt | 4 +- src/app/interface/interface_client.c | 37 +- 3 files changed, 706 insertions(+), 22 deletions(-) diff --git a/compteRendu.md b/compteRendu.md index bd7cf0a..1bf8569 100644 --- a/compteRendu.md +++ b/compteRendu.md @@ -82,6 +82,689 @@ Lorsqu'un utilisateur décide de quitter l'application, plusieurs scénarios son Ces fonctionnalités garantissent que l'application aide les utilisateurs à gérer leur budget et à utiliser leur cagnotte de manière efficace pour éviter les problèmes financiers. ## Traces d'exécution : -Voici les traces d'execution pour la partie **client** : -Tout d'abord les cas ou le client n'a pas de carte suspendu et ne choisis pas de budget: +### Voici les traces d'execution pour la partie **client** : +#### Tout d'abord les cas ou le client n'a pas de carte suspendu et ne choisis pas de budget: +``` +(lldb) target create "app" +Current executable set to '/Users/matheohersan/1A/IUT/Cours/SAE/SAE_101/app' (arm64). +(lldb) run +Process 10731 launched: '/Users/matheohersan/1A/IUT/Cours/SAE/SAE_101/app' (arm64) +Choix de l'interface: +1. Interface 'responsable': Pour les responsables +2. Interface 'Client' : Pour les clients +Vous choisissez l'interface n°: 2 +Vous avez choisi l'interface client. +Veuillez saisir votre numéro de client : 5079 +Voulez-vous définir un budget à ne pas dépasser ? (1 pour Oui, 0 pour Non) : 0 +Veuillez saisir la taille disponible du véhicule (en litres) : 100 +Veuillez saisir la charge maximale autorisée (en kg) : 100 ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 2 + Liste des articles + + Ref Poids Volume Prix + 464 50.00 50.00 50.00 + + 958 4.75 60.00 32.00 + + 101 2.00 2.00 3.00 + + 32 123.00 123.00 123.00 + + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 3 +Entrez la référence de l'article : 958 +Entrez la quantité : 10 +Contenu du panier : 958 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot +958 10 4.75 60.00 32.00 47.50 600.00 320.00 +Prix total à payer: 320.00 euros +Cagnotte totale : 632.70 euros +Volume utilise : 600.00 litres +Charge Actuelle: 47.50 kg +Attention : +Dépassement du volume autorisé de 500.00 litres. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 3 +Entrez la référence de l'article : 101 +Entrez la quantité : 1 +Contenu du panier : 958 101 +Référence : 101 +Quantité : 1 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot Cagnotte +101 1 2.00 2.00 3.00 2.00 2.00 3.00 633.00 +Prix total à payer: 3.00 euros +Cagnotte totale : 633.00 euros +Volume utilise : 2.00 litres +Volume restant : 98.00 litres +Charge Actuelle: 2.00 kg +Charge restante: 98.00 kg + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 1 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot +958 10 4.75 60.00 32.00 47.50 600.00 320.00 +101 1 2.00 2.00 3.00 2.00 2.00 3.00 +Prix total à payer: 323.00 euros +Cagnotte totale : 633.00 euros +Volume utilise : 602.00 litres +Charge Actuelle: 49.50 kg +Attention : +Dépassement du volume autorisé de 502.00 litres. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 4 +Entrez la référence de l'article à supprimer : 101 +Article supprimé du panier avec succès. +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot +958 10 4.75 60.00 32.00 47.50 600.00 320.00 +Prix total à payer: 320.00 euros +Cagnotte totale : 632.70 euros +Volume utilise : 600.00 litres +Charge Actuelle: 47.50 kg +Attention : +Dépassement du volume autorisé de 500.00 litres. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 7 +Prix total à payer: 320.00 euros +Volume utilise : 600.00 litres +Charge Actuelle: 47.50 kg +Attention : Dépassement du volume autorisé de 500.00 litres. +Vous ne pourrez pas payer. De plus vous ne pourrez pas utiliser votre cagnotte car votre coffre est plein. +Voulez vous revenir en arrière pour modifier votre panier ? (1 pour Oui, 0 pour Non) : 1 + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 5 +Entrez la référence de l'article : 958 +Entrez la quantité : 1 +Quantité modifiée avec succès. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 7 +Prix total à payer: 32.00 euros +Volume utilise : 60.00 litres +Charge Actuelle: 4.75 kg +Cagnotte totale : 603.90 euros +Voulez-vous déduire de votre cagnotte avant de quitter ? (1 pour Oui, 0 pour Non) : 1 +Entrez le montant à déduire de votre cagnotte : 10 +Montant déduit de la cagnotte avec succès. +Il vous reste 593.90 euros dans votre cagnotte. +Payement effectué. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 9 +Au revoir ! +Process 10731 exited with status = 0 (0x00000000) +``` +Dans ce cas je n'ai pas montré si le client refuse de revenir en arrière si son coffre est plein. Si il aurais refusé de revenir en arrière il aurais eu ce message : + +```Payement non effectué.``` + +#### Maintenant voici les traces d'execution pour le cas ou le client n'a pas de carte suspendu mais choisis un budget : +``` +(lldb) target create "app" +Current executable set to '/Users/matheohersan/1A/IUT/Cours/SAE/SAE_101/app' (arm64). +(lldb) run +Process 10832 launched: '/Users/matheohersan/1A/IUT/Cours/SAE/SAE_101/app' (arm64) +Choix de l'interface: +1. Interface 'responsable': Pour les responsables +2. Interface 'Client' : Pour les clients +Vous choisissez l'interface n°: 2 +Vous avez choisi l'interface client. +Veuillez saisir votre numéro de client : 5079 +Voulez-vous définir un budget à ne pas dépasser ? (1 pour Oui, 0 pour Non) : 1 +Entrez le budget à ne pas dépasser : 10 +Veuillez saisir la taille disponible du véhicule (en litres) : 100 +Veuillez saisir la charge maximale autorisée (en kg) : 100 + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 3 +Entrez la référence de l'article : 958 +Entrez la quantité : 5 +Contenu du panier : 958 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot +958 5 4.75 60.00 32.00 23.75 300.00 160.00 +Prix total à payer: 160.00 euros +Cagnotte totale : 609.90 euros +Volume utilise : 300.00 litres +Charge Actuelle: 23.75 kg +Attention : +Dépassement du volume autorisé de 200.00 litres. +Dépassement du budget autorisé de 150.00 euros. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 7 +Prix total à payer: 160.00 euros +Budget : 10.00 euros +Volume utilise : 300.00 litres +Charge Actuelle: 23.75 kg +Attention : Dépassement du volume autorisé de 200.00 litres. +Dépassement du budget autorisé de 150.00 euros. +Vous ne pourrez pas payer. De plus vous ne pourrez pas utiliser votre cagnotte car votre coffre est plein. +Voulez vous revenir en arrière pour modifier votre panier ? (1 pour Oui, 0 pour Non) : 1 + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 6 +Le panier a été réinitialisé avec succès. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 1 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot +Prix total à payer: 0.00 euros +Cagnotte totale : 593.90 euros +Volume utilise : 0.00 litres +Charge Actuelle: 0.00 kg + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 3 +Entrez la référence de l'article : 958 +Entrez la quantité : 1 +Contenu du panier : 958 +Référence : 958 +Quantité : 1 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot Cagnotte +958 1 4.75 60.00 32.00 4.75 60.00 32.00 597.10 +Prix total à payer: 32.00 euros +Cagnotte totale : 597.10 euros +Volume utilise : 60.00 litres +Volume restant : 40.00 litres +Charge Actuelle: 4.75 kg +Charge restante: 95.25 kg + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 1 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot +958 1 4.75 60.00 32.00 4.75 60.00 32.00 +Prix total à payer: 32.00 euros +Cagnotte totale : 597.10 euros +Volume utilise : 60.00 litres +Charge Actuelle: 4.75 kg +Attention : +Dépassement du budget autorisé de 22.00 euros. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 7 +Prix total à payer: 32.00 euros +Budget : 10.00 euros +Volume utilise : 60.00 litres +Charge Actuelle: 4.75 kg +Cagnotte totale : 597.10 euros +Attention : Dépassement du budget autorisé de 22.00 euros. +Vous ne pourrez pas payer, mais vous avez suffisamment dans votre cagnotte pour déduire le prix. +Voulez-vous déduire de votre cagnotte avant de quitter ? (1 pour Oui, 0 pour Non) : 1 +Entrez le montant à déduire de votre cagnotte : 1 +ERREUR : Vous devez déduire suffisamment pour payer l'intégralité du montant dû. +Montant minimum à déduire pour payer : 22.00 +Entrez le montant à déduire de votre cagnotte : 22 +Montant déduit de la cagnotte avec succès. +Il vous reste 575.10 euros dans votre cagnotte. +Payement effectué. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 9 +Au revoir ! +Process 10832 exited with status = 0 (0x00000000) +``` + +Dans ce cas je n'ai pas montré si le client refuse de déduire de sa cagnotte si il a depassé le budget. Si il aurais refusé de déduire de sa cagnotte il aurais eu ce message : + +```Payement non effectué.``` + +Il aurais eu le même message si il n'avais pas assez de cagnotte pour déduire le montant. + +#### Maintenant voici les traces d'execution pour le cas ou le client a une carte suspendu et ne choisis pas de budget : +``` +(lldb) target create "app" +Current executable set to '/Users/matheohersan/1A/IUT/Cours/SAE/SAE_101/app' (arm64). +(lldb) run +Process 10870 launched: '/Users/matheohersan/1A/IUT/Cours/SAE/SAE_101/app' (arm64) +Choix de l'interface: +1. Interface 'responsable': Pour les responsables +2. Interface 'Client' : Pour les clients +Vous choisissez l'interface n°: 2 +Vous avez choisi l'interface client. +Veuillez saisir votre numéro de client : 32 +Voulez-vous définir un budget à ne pas dépasser ? (1 pour Oui, 0 pour Non) : 0 +Veuillez saisir la taille disponible du véhicule (en litres) : 100 +Veuillez saisir la charge maximale autorisée (en kg) : 100 + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 3 +Entrez la référence de l'article : 101 +Entrez la quantité : 5 +Contenu du panier : 101 +Référence : 101 +Quantité : 5 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot Cagnotte +101 5 2.00 2.00 3.00 10.00 10.00 15.00 70.50 +Prix total à payer: 15.00 euros +Cagnotte totale : 70.50 euros +Volume utilise : 10.00 litres +Volume restant : 90.00 litres +Charge Actuelle: 10.00 kg +Charge restante: 90.00 kg + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 7 +Prix total à payer: 15.00 euros +Volume utilise : 10.00 litres +Charge Actuelle: 10.00 kg +Vous ne pourrez pas utiliser votre cagnotte car votre carte est suspendu. +Payement effectué. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 9 +Au revoir ! +Process 10870 exited with status = 0 (0x00000000) +``` + +Maintenant voici les traces d'execution pour le cas ou le client a une carte suspendu et choisis un budget : +``` +(lldb) target create "app" +Current executable set to '/Users/matheohersan/1A/IUT/Cours/SAE/SAE_101/app' (arm64). +(lldb) run +Process 10916 launched: '/Users/matheohersan/1A/IUT/Cours/SAE/SAE_101/app' (arm64) +Choix de l'interface: +1. Interface 'responsable': Pour les responsables +2. Interface 'Client' : Pour les clients +Vous choisissez l'interface n°: 2 +Vous avez choisi l'interface client. +Veuillez saisir votre numéro de client : 32 +Voulez-vous définir un budget à ne pas dépasser ? (1 pour Oui, 0 pour Non) : 1 +Entrez le budget à ne pas dépasser : 10 +Veuillez saisir la taille disponible du véhicule (en litres) : 100 +Veuillez saisir la charge maximale autorisée (en kg) : 100 + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 3 +Entrez la référence de l'article : 958 +Entrez la quantité : 1 +Contenu du panier : 958 +Référence : 958 +Quantité : 1 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot Cagnotte +958 1 4.75 60.00 32.00 4.75 60.00 32.00 73.70 +Prix total à payer: 32.00 euros +Cagnotte totale : 73.70 euros +Volume utilise : 60.00 litres +Volume restant : 40.00 litres +Charge Actuelle: 4.75 kg +Charge restante: 95.25 kg + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 1 +Récap : +Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot +958 1 4.75 60.00 32.00 4.75 60.00 32.00 +Prix total à payer: 32.00 euros +Cagnotte totale : 73.70 euros +Volume utilise : 60.00 litres +Charge Actuelle: 4.75 kg +Attention : +Dépassement du budget autorisé de 22.00 euros. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 7 +Prix total à payer: 32.00 euros +Budget : 10.00 euros +Volume utilise : 60.00 litres +Charge Actuelle: 4.75 kg +Attention : Dépassement du budget autorisé de 22.00 euros. +Vous ne pourrez pas payer. De plus vous ne pourrez pas utiliser votre cagnotte car votre carte est suspendu. +Payement non effectué. + ++-------------+ +|| Bonjour ! || ++-------------+ + ++----------------------------------------------------------------+ +|| Que voulez-vous faire ? || +|| 1 : Afficher le récapitulatif du panier. || +|| 2 : Afficher les articles disponibles. || +|| 3 : Ajouter un article au panier. || +|| 4 : Supprimer un article du panier. || +|| 5 : Modifier la quantité d'un article du panier. || +|| 6 : Réinitialiser le panier. || +|| 7 : Passer au payement. || +|| 9 : Quitter. || ++----------------------------------------------------------------+ +Vous choisissez: 9 +Au revoir ! +Process 10916 exited with status = 0 (0x00000000) +``` \ No newline at end of file diff --git a/donnee/client.txt b/donnee/client.txt index a3f9e56..4394ab3 100644 --- a/donnee/client.txt +++ b/donnee/client.txt @@ -1,3 +1,3 @@ -32 69.00 1 -5079 600.70 0 +32 73.70 1 +5079 575.10 0 53 0.00 0 diff --git a/src/app/interface/interface_client.c b/src/app/interface/interface_client.c index 8e3fcca..4661a74 100644 --- a/src/app/interface/interface_client.c +++ b/src/app/interface/interface_client.c @@ -148,24 +148,25 @@ void affiche_recap_panier(int tPanier[], int tLogPanier, int tRef[], float tPoid volumeTotal += volumeArticle * (float)quantite; montantTotal += prixArticle * (float)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); - } + } + + 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(numClient, tNumClient, tLogClient); -- 2.36.3 From 39264b8cf2bd8082d78504da1897d7e34a4c47a9 Mon Sep 17 00:00:00 2001 From: Matheo HERSAN Date: Thu, 9 Nov 2023 18:05:05 +0100 Subject: [PATCH 4/7] Update 'compteRendu.md' --- compteRendu.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/compteRendu.md b/compteRendu.md index 1bf8569..189da08 100644 --- a/compteRendu.md +++ b/compteRendu.md @@ -81,6 +81,17 @@ Lorsqu'un utilisateur décide de quitter l'application, plusieurs scénarios son Ces fonctionnalités garantissent que l'application aide les utilisateurs à gérer leur budget et à utiliser leur cagnotte de manière efficace pour éviter les problèmes financiers. +## Jeu de données : + +Voici un jeu de donnée pour : + - client.txt : + ``` + 464 50.00 50.00 50.00 + 958 4.75 60.00 32.00 + 101 2.00 2.00 3.00 + 32 123.00 123.00 123.00 + ``` + ## Traces d'exécution : ### Voici les traces d'execution pour la partie **client** : #### Tout d'abord les cas ou le client n'a pas de carte suspendu et ne choisis pas de budget: -- 2.36.3 From 0191a26332d8bf68ef6a447f3fca047bcb3bbd23 Mon Sep 17 00:00:00 2001 From: Matheo HERSAN Date: Thu, 9 Nov 2023 18:08:06 +0100 Subject: [PATCH 5/7] Update 'compteRendu.md' --- compteRendu.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/compteRendu.md b/compteRendu.md index 189da08..f3b3923 100644 --- a/compteRendu.md +++ b/compteRendu.md @@ -83,14 +83,13 @@ Ces fonctionnalités garantissent que l'application aide les utilisateurs à gé ## Jeu de données : -Voici un jeu de donnée pour : - - client.txt : - ``` - 464 50.00 50.00 50.00 - 958 4.75 60.00 32.00 - 101 2.00 2.00 3.00 - 32 123.00 123.00 123.00 - ``` +Voici un jeu de donnée pour client.txt : +``` +464 50.00 50.00 50.00 +958 4.75 60.00 32.00 +101 2.00 2.00 3.00 +32 123.00 123.00 123.00 +``` ## Traces d'exécution : ### Voici les traces d'execution pour la partie **client** : -- 2.36.3 From f67bac06c73c31aca17e5419dca9afaf1aa9188c Mon Sep 17 00:00:00 2001 From: Matheo HERSAN Date: Thu, 9 Nov 2023 18:15:58 +0100 Subject: [PATCH 6/7] Update 'compteRendu.md' --- compteRendu.md | 51 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 13 deletions(-) diff --git a/compteRendu.md b/compteRendu.md index f3b3923..408e5f3 100644 --- a/compteRendu.md +++ b/compteRendu.md @@ -2,22 +2,26 @@ ## Informations sur les clients : -- Numéro de client -- Solde du client -- Son état (suspension ou non) +- Numéro de client. +- Solde du client. +- Son état (suspension ou non). ## Informations sur les articles : -- Référence de l'article -- Poids de l'article -- Volume de l'article -- Prix unitaire de l'article +- Référence de l'article. +- Poids de l'article. +- Volume de l'article. +- Prix unitaire de l'article. ## Informations sur les mots de passe : -- Mot de passe décalé +- Mot de passe décalé. - Chiffre correspondant au décalage des lettres. +## Information sur les promotions : +- La référence de l'article en promotion. +- La promotion appliquée. + ## Fichiers de données : 1. articles.txt : @@ -26,6 +30,8 @@ - Numéro de client, solde, suspension 3. mdp.txt : - Mot de passe du responsable chiffré par le code de César +4. promotion.txt + - Référence, promotion ## Répartition du travail : @@ -83,12 +89,31 @@ Ces fonctionnalités garantissent que l'application aide les utilisateurs à gé ## Jeu de données : -Voici un jeu de donnée pour client.txt : +### Voici un jeu de donnée pour articles.txt : +``` +464 50.00 50.00 50.00 +958 4.75 60.00 32.00 +101 2.00 2.00 3.00 +32 123.00 123.00 123.00 +``` + +### Voici un jeu de donnée pour client.txt : +``` +32 73.70 1 +5079 575.10 0 +53 0.00 0 +``` + +### Voici un jeu de donnée pour mdp.txt : +``` +lll 89 +``` + +### Voici un jeu de donnée pour promotion.txt : ``` -464 50.00 50.00 50.00 -958 4.75 60.00 32.00 -101 2.00 2.00 3.00 -32 123.00 123.00 123.00 +958 50 +101 25 +464 50 ``` ## Traces d'exécution : -- 2.36.3 From 6abc03b0203ff920d4de3f2b74ad77bf9e818607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A9o=20Hersan?= Date: Thu, 9 Nov 2023 18:20:14 +0100 Subject: [PATCH 7/7] merging master in client --- donnee/client.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/donnee/client.txt b/donnee/client.txt index 4394ab3..49d151a 100644 --- a/donnee/client.txt +++ b/donnee/client.txt @@ -1,3 +1,3 @@ -32 73.70 1 -5079 575.10 0 -53 0.00 0 +32 69.00 1 +5079 600.70 0 +53 0.00 0 \ No newline at end of file -- 2.36.3