|
|
|
@ -82,3 +82,55 @@ int constraintExceeded(float weightConstraint, float volumeConstraint, float *pr
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @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
|
|
|
|
|
*/
|
|
|
|
|
int basket_add (int tab_reference[], float weight[], float volume[], float unitPrice[], float *cagnotte, int basket_tab_ref[], int basket_tab_qte[],int tlog, int tlog_basket)
|
|
|
|
|
{
|
|
|
|
|
int ref_to_add, qte_to_add, trouve, index_ajout, i;
|
|
|
|
|
float total_weight=0, total_volume=0, total_price=0, total_cagnotte=0;
|
|
|
|
|
printf("Quelle référence souhaitez-vous ajouter au panier?");
|
|
|
|
|
scanf("%d", &ref_to_add);
|
|
|
|
|
index_ajout = searchTab(tab_reference, ref_to_add, tlog, &trouve);
|
|
|
|
|
while (trouve == 0)
|
|
|
|
|
{
|
|
|
|
|
printf("L'élément que vous souhaitez ajouter n'existe pas, ressayez s'il vous plaît");
|
|
|
|
|
scanf("%d", &ref_to_add);
|
|
|
|
|
index_ajout = searchTab(tab_reference, ref_to_add, tlog, &trouve);
|
|
|
|
|
}
|
|
|
|
|
basket_tab_ref[index_ajout] = ref_to_add;
|
|
|
|
|
printf("Quelle quantité de cet article souhaitez-vous ajouter au panier?");
|
|
|
|
|
scanf("%d", &qte_to_add);
|
|
|
|
|
while (qte_to_add <= 0)
|
|
|
|
|
{
|
|
|
|
|
printf("Vous ne pouvez pas ajouter une quantité nulle ou négative ressayez");
|
|
|
|
|
scanf("%d", &qte_to_add);
|
|
|
|
|
}
|
|
|
|
|
basket_tab_qte[index_ajout] = ref_to_add;
|
|
|
|
|
|
|
|
|
|
for (i=0; i<tlog_basket; i++)
|
|
|
|
|
{
|
|
|
|
|
index_ajout = basket_tab_ref[i];
|
|
|
|
|
|
|
|
|
|
total_weight = total_weight + weight[index_ajout]*qte_to_add;
|
|
|
|
|
total_volume = total_volume + volume[index_ajout]*qte_to_add;
|
|
|
|
|
total_price = total_price + unitPrice[index_ajout]*qte_to_add;
|
|
|
|
|
}
|
|
|
|
|
*cagnotte = *cagnotte + *cagnotte*0.10;
|
|
|
|
|
|
|
|
|
|
basket_add()
|
|
|
|
|
|
|
|
|
|
tlog_basket = tlog_basket+1;
|
|
|
|
|
return tlog_basket;
|
|
|
|
|
}
|