|
|
|
@ -5,6 +5,15 @@
|
|
|
|
|
|
|
|
|
|
#include "main.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief La fonction `clientConstraint` demmande à l'utilisateur d'entrer la charge limite et le volume maximal
|
|
|
|
|
* du véicule.
|
|
|
|
|
* @param weight Pointeur float qui stocke la charge maximale (en Kg) du véicule.
|
|
|
|
|
* @param volume Pointeur float qui stocke le volume maximal (en metres cube) du véicule.
|
|
|
|
|
* @param price Pointeur float qui permet de stocker le budget maximum du client.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
void clientConstraint(float *weight, float *volume, float *price)
|
|
|
|
|
{
|
|
|
|
|
// Saisie des contraintes du client.
|
|
|
|
@ -33,6 +42,27 @@ void clientConstraint(float *weight, float *volume, float *price)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief constraintExceeded permet de regarder si la charge maximale, le volume maximal, et le prix maximal sont
|
|
|
|
|
* dépassés à partir des articles dans le panier
|
|
|
|
|
*
|
|
|
|
|
* @param weightConstraint Float qui stocke la charge maximale (en Kg) du véicule.
|
|
|
|
|
* @param volumeConstraint Float qui stocke le volume maximal (en metres cube) du véicule.
|
|
|
|
|
* @param priceConstraint Pointeur float qui permet de stocker le budget maximum du client.
|
|
|
|
|
* @param cagnotte Pointeur float qui stocke la cagnotte du client.
|
|
|
|
|
* @param tabWeight Tableau float qui stocke le poids des articles.
|
|
|
|
|
* @param tabVolume Tableau float qui stocke le volume des articles.
|
|
|
|
|
* @param tabPrice Tableau float qui stocke le prix des articles.
|
|
|
|
|
* @param tabItemRef Tableau int qui stocke les références des articles.
|
|
|
|
|
* @param tabBasketRef Tableau contenant les références des articles dans le panier.
|
|
|
|
|
* @param tabBasketQuantity Tableau stockant la quantité commandée des articles dans le panier.
|
|
|
|
|
* @param tlogItem Taille logique du tableau `tabItemRef`.
|
|
|
|
|
* @param tlogBasket Taille logique du tableau `tabBasketRef`.
|
|
|
|
|
* @return Renvoie 0 si tout ce passe sans erreur, renvoie -1 en cas d'erreur.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
int constraintExceeded(float weightConstraint, float volumeConstraint, float *priceConstraint, float *cagnotte, float tabWeight[], float tabVolume[], float tabPrice[], int tabItemRef[], int tabBasketRef[], int tabBasketQuantity[], int tlogItem, int tlogBasket)
|
|
|
|
|
{
|
|
|
|
|
int index, found, i;
|
|
|
|
@ -91,17 +121,17 @@ int constraintExceeded(float weightConstraint, float volumeConstraint, float *pr
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Ajoute un article au panier et calcule les différents attributs pour la fonction `display_basket`
|
|
|
|
|
* @param tab_reference: tableau des références des articles
|
|
|
|
|
* @param weight: tableau des poids des articles
|
|
|
|
|
* @param volume: tableau du volume des articles
|
|
|
|
|
* @param unitPrice: tableau du prix unitaire des articles
|
|
|
|
|
* @param cagnotte: pointeur indiquant la valeur de la cagnotte
|
|
|
|
|
* @param basket_tab_ref: tableau des références du panier
|
|
|
|
|
* @param basket_tab_qte: tableau de la quantité de l'article du panier
|
|
|
|
|
* @param tlog: taille logique du tableau `tab_reference`
|
|
|
|
|
* @param tlog_basket: taille logique du panier
|
|
|
|
|
* @return taille logique du panier
|
|
|
|
|
* @brief Ajoute un article au panier et calcule les différents attributs pour la fonction `display_basket`.
|
|
|
|
|
* @param tab_reference: tableau des références des articles.
|
|
|
|
|
* @param weight: tableau des poids des articles.
|
|
|
|
|
* @param volume: tableau du volume des articles.
|
|
|
|
|
* @param unitPrice: tableau du prix unitaire des articles.
|
|
|
|
|
* @param cagnotte: pointeur indiquant la valeur de la cagnotte.
|
|
|
|
|
* @param basket_tab_ref: tableau des références du panier.
|
|
|
|
|
* @param basket_tab_qte: tableau de la quantité de l'article du panier.
|
|
|
|
|
* @param tlog: taille logique du tableau `tab_reference`.
|
|
|
|
|
* @param tlog_basket: taille logique du panier.
|
|
|
|
|
* @return taille logique du panier.
|
|
|
|
|
*/
|
|
|
|
|
void basket_add(int tab_reference[], float unitPrice[], float *cagnotte, int basket_tab_ref[], int basket_tab_qte[], int tlogItem, int *tlog_basket)
|
|
|
|
|
{
|
|
|
|
@ -131,9 +161,9 @@ void basket_add(int tab_reference[], float unitPrice[], float *cagnotte, int ba
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Supprime le panier en lui donnant sa taille_logique à 0
|
|
|
|
|
* @param tlog_basket: taille logique du panier
|
|
|
|
|
* @return taille logique du panier
|
|
|
|
|
* @brief Supprime le panier en lui donnant sa taille_logique à 0.
|
|
|
|
|
* @param tlog_basket: taille logique du panier.
|
|
|
|
|
* @return taille logique du panier.
|
|
|
|
|
*/
|
|
|
|
|
void reinit_basket(int *tlog_basket)
|
|
|
|
|
{
|
|
|
|
@ -144,11 +174,11 @@ void reinit_basket(int *tlog_basket)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Supprime un article au panier ou modifie sa quantité si la quantité est supérieure à 1
|
|
|
|
|
* @param basket_tab_ref: tableau des références du panier
|
|
|
|
|
* @param basket_tab_qte: tableau de la quantité de l'article du panier
|
|
|
|
|
* @param tlog_basket: taille logique du panier
|
|
|
|
|
* @return taille logique du panier
|
|
|
|
|
* @brief Supprime un article au panier ou modifie sa quantité si la quantité est supérieure à 1.
|
|
|
|
|
* @param basket_tab_ref: tableau des références du panier.
|
|
|
|
|
* @param basket_tab_qte: tableau de la quantité de l'article du panier.
|
|
|
|
|
* @param tlog_basket: taille logique du panier.
|
|
|
|
|
* @return taille logique du panier.
|
|
|
|
|
*/
|
|
|
|
|
void basket_del_article(int basket_tab_ref[], int basket_tab_qte[], int *tlog_basket)
|
|
|
|
|
{
|
|
|
|
|