some modification

Signed-off-by: Mathéo Hersan <matheohersan@MacBook-Pro-de-Matheo.local>
pull/6/head
Mathéo Hersan 2 years ago
parent 5d6ee0881d
commit bc28135383
No known key found for this signature in database
GPG Key ID: 4EF19C64D78EC91B

BIN
app

Binary file not shown.

@ -1,4 +1,4 @@
32 0.00 0
660 57.03 0
660 57.63 0
5079 75.50 0
8043 50.50 1

@ -126,12 +126,16 @@ int trouver_index_client(int numeroClient, int numeros[], int nombreClients) {
* @param panier - Tableau des références des articles dans le panier.
* @param quantites - Tableau des quantités de chaque article dans le panier.
* @param taillePanier - Taille du panier.
* @param budget - Budget du client.
*/
void ajouter_article_au_panier(int numeroClient, int references[], float poids[], float volume[], float prixUnitaire[],
int numeros[], float cagnottes[], int suspendues[], int nombreArticles, int nombreClients,
float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier) {
int reference, quantite;
float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier, float budget) {
int reference, quantite, articleIndex;
float poidsTotal, montantTotal, volumeTotal, depassementCharge = 0, depassementVolume, depassementBudget = 0;
while (1) {
printf("Entrez la référence de l'article : ");
while (scanf("%d", &reference) != 1) {
while (getchar() != '\n');
@ -139,26 +143,50 @@ void ajouter_article_au_panier(int numeroClient, int references[], float poids[]
}
while (getchar() != '\n');
articleIndex = trouver_index_article(reference, references, nombreArticles);
if (articleIndex == -1) {
printf("ERREUR : Article non trouvé. Veuillez entrer une référence valide.\n");
} else {
break;
}
}
printf("Entrez la quantité : ");
while (scanf("%d", &quantite) != 1) {
while (getchar() != '\n');
printf("ERREUR : Veurillez entrer une quantité valide (nombre) : ");
printf("ERREUR : Veuillez entrer une quantité valide (nombre) : ");
}
while (getchar() != '\n');
int articleIndex = trouver_index_article(reference, references, nombreArticles);
poidsTotal = poids[articleIndex] * quantite;
volumeTotal = volume[articleIndex] * quantite;
montantTotal = prixUnitaire[articleIndex] * quantite;
if (articleIndex == -1) {
printf("Article non trouvé. Veuillez entrer une référence valide.\n");
if (poidsTotal > chargeMaximale) {
depassementCharge = poidsTotal - chargeMaximale;
}
float poidsTotal = poids[articleIndex] * quantite;
float volumeTotal = volume[articleIndex] * quantite;
if (volumeTotal > volumeCoffre) {
depassementVolume = volumeTotal - volumeCoffre;
}
if (poidsTotal > chargeMaximale) {
printf("Désolé, dépassement de la charge autorisée.\n");
} else if (volumeTotal > volumeCoffre) {
printf("Désolé, dépassement du volume autorisé.\n");
if (budget > 0 && montantTotal > budget) {
depassementBudget = montantTotal - budget;
}
if (depassementCharge || depassementVolume || depassementBudget) {
printf("Attention : ");
if (depassementCharge) {
printf("dépassement de la charge autorisée de %.2f kg \n", depassementCharge);
}
if (depassementVolume) {
printf("dépassement du volume autorisé de %.2f litres \n", depassementVolume);
}
if (depassementBudget) {
printf("dépassement du budget autorisé de %.2f euros \n", depassementBudget);
}
printf("\n");
} else {
float montantTotal = prixUnitaire[articleIndex] * quantite;

@ -52,10 +52,11 @@ void sauvegarde_clients(int numeros[], float cagnottes[], int suspendus[], int n
* @param panier - Tableau des références des articles dans le panier.
* @param quantites - Tableau des quantités de chaque article dans le panier.
* @param taillePanier - Taille du panier.
* @param budget - Budget du client.
*/
void ajouter_article_au_panier(int numeroClient, int references[], float poids[], float volume[], float prixUnitaire[],
int numeros[], float cagnottes[], int suspendues[], int nombreArticles, int nombreClients,
float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier);
float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier, float budget);
/**
* @brief Supprime un article du panier du client.

@ -41,6 +41,51 @@ void menu_client(int *choix) {
}
}
void configurer_session_client(int numeros[], int suspendus[], int nombreClients, float *budget, float *volumeCoffre, float *chargeMaximale, int *numeroClient) {
printf("Veuillez saisir votre numéro de client : ");
while (scanf("%d", numeroClient) != 1) {
while (getchar() != '\n');
printf("ERREUR : Veuillez entrer un numéro de client valide : ");
}
int indexClient = trouver_index_client(*numeroClient, numeros, nombreClients);
if (indexClient == -1) {
printf("Client non trouvé. Impossible d'utiliser l'application.\n");
return;
}
if (suspendus[indexClient] == 1) {
printf("Le client est suspendu et ne peut pas utiliser l'application.\n");
return;
}
printf("Voulez-vous définir un budget à ne pas dépasser ? (1 pour Oui, 0 pour Non) : ");
int choixBudget;
scanf("%d", &choixBudget);
if (choixBudget == 1) {
printf("Entrez le budget à ne pas dépasser : ");
while (scanf("%f", budget) != 1 || *budget <= 0) {
while (getchar() != '\n');
printf("ERREUR : Veuillez entrer un budget valide (nombre positif) : ");
}
}
printf("Veuillez saisir la taille disponible du véhicule (en litres) : ");
while (scanf("%f", volumeCoffre) != 1 || *volumeCoffre <= 0) {
while (getchar() != '\n');
printf("ERREUR : Veuillez entrer une taille de coffre valide (en litres) : ");
}
printf("Veuillez saisir la charge maximale autorisée (en kg) : ");
while (scanf("%f", chargeMaximale) != 1 || *chargeMaximale <= 0) {
while (getchar() != '\n');
printf("ERREUR : Veuillez entrer une charge maximale valide (en kg) : ");
}
}
/**
* @brief Fonction principale de l'interface client.
*
@ -63,45 +108,11 @@ void global_client() {
int quantites[MAX_ARTICLES];
int panier[MAX_ARTICLES];
int taillePanier = 0;
float budget = -1.0;
nombreArticles = chargementArticles(references, poids, volume, prixUnitaire, MAX_ARTICLES);
nombreClients = charger_clients(numeros, cagnottes, suspendus, MAX_CLIENTS);
printf("Veuillez saisir la taille disponible du véhicule (en litres) : ");
while (scanf("%f", &volumeCoffre) != 1 || volumeCoffre <= 0) {
while (getchar() != '\n');
printf("ERREUR : Veuillez entrer une taille de coffre valide (en litres) : ");
}
printf("Veuillez saisir la charge maximale autorisée (en kg) : ");
while (scanf("%f", &chargeMaximale) != 1 || chargeMaximale <= 0) {
while (getchar() != '\n');
printf("ERREUR : Veuillez entrer une charge maximale valide (en kg) : ");
}
printf("Veuillez saisir votre numéro de client : ");
while (scanf("%d", &numeroClient) != 1) {
while (getchar() != '\n');
printf("ERREUR : Veuillez entrer un numéro de client valide : ");
}
int indexClient = -1;
for (int i = 0; i < nombreClients; i++) {
if (numeros[i] == numeroClient) {
indexClient = i;
break;
}
}
if (indexClient == -1) {
printf("Client non trouvé. Impossible d'utiliser l'application.\n");
return;
}
if (suspendus[indexClient] == 1) {
printf("Le client est suspendu et ne peut pas utiliser l'application.\n");
return;
}
configurer_session_client(numeros, suspendus, nombreClients, &budget, &volumeCoffre, &chargeMaximale, &numeroClient);
do {
menu_client(&choix);
@ -113,7 +124,7 @@ void global_client() {
break;
case 2:
ajouter_article_au_panier(numeroClient, references, poids, volume, prixUnitaire, numeros, cagnottes,
suspendus, nombreArticles, nombreClients, volumeCoffre, chargeMaximale, panier, quantites, &taillePanier);
suspendus, nombreArticles, nombreClients, volumeCoffre, chargeMaximale, panier, quantites, &taillePanier, budget);
break;
case 3:
supprimer_article_du_panier(panier, quantites, &taillePanier);

@ -27,3 +27,5 @@ void menu_client(int *choix);
* d'articles dans le panier.
*/
void global_client();
void configurer_session_client(int numeros[], int suspendus[], int nombreClients, float *budget, float *volumeCoffre, float *chargeMaximale, int *numeroClient);

Loading…
Cancel
Save