You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

161 lines
6.1 KiB

#include "main.h"
void displayItem(int tabReference[], float weight[], float volume[], float unitPrice[], int tlog)
{
int reference, index, found;
printf("Entrez la référence de l'article cherché: ");
scanf("%d", &reference);
while (reference < 0)
{
printf("Erreur, la référence doit être positive, entrez la référence de l'article cherché: ");
scanf("%d", &reference);
}
index = searchTab(tabReference, reference, tlog, &found);
if (index == -1)
{
printf("La référence cherchée n'existe pas");
exit(1);
}
printf("reference\tpoids\tvolume\tprix à l'unité");
printf("%d\t%f\t%f\t%f", tabReference[index], weight[index], volume[index], unitPrice[index]);
}
void displayItemList(int reference[], float weight[], float volume[], float unitPrice[], int tlog)
{
/*
Affichage de la liste des articles, un article par ligne, sous forme:
référence poids volume prix
Avec la référence unique du produit, le poids du produit, le volume du produit et son prix à l'unité.
+param reference: tableau des références des articles
+param weight: tableau des poids des articles
+param volume: tableau des volumes des articles
+param unitPrice: tableau des prix à l'unité des articles
+param tlog: taille logique des tableaux des articles
+var i: compteur servant à parcourir les données des tableaux jusqu'à leur taille logique
*/
int i;
printf("reference\tpoids\tvolume\tprix à l'unité");
for (i=0; i<tlog; i++)
{
printf("%d\t%f\t%f\t%f", reference[i], weight[i], volume[i], unitPrice[i]);
}
}
void displayClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog)
{
/*
Affichage des données d'un client choisi par son identifiant sous forme:
identifiant cagnotte suspended
avec l'identifiant du client cherché, le montant de sa cagnotte et l'état de son compte
+param clientID: tableau des identifiants des clients
+param cagnotte: tableau des cagnottes des clients
+param suspended: tableau de l'état du compte des clients
+param tlog: taille logique des tableaux des clients
+var id: identifiant du client recherché
+var index: index de l'article recherché dans le tableau
*/
int id, index, found;
printf("Entrez le numéro du client cherché: ");
scanf("%d", &id);
while (id < 0)
{
printf("Erreur, le numéro du client doit être positif, entrez le numéro du client cherché: ");
scanf("%d", &id);
}
index = searchTab(clientID, id, tlog, &found);
if (index == -1)
{
printf("Le client cherché n'existe pas");
exit(1);
}
printf("num Client\tcagnotte\tsuspended\tisAdmin");
printf("%d\t%f\t%d\t%d", clientID[index], cagnotte[index], suspended[index], isAdmin[index]);
}
void displayClientList(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog)
{
/*
Affichage de la liste des clients, un client par ligne, sous forme:
identifiant cagnotte suspended
avec l'identifiant du client cherché, le montant de sa cagnotte et l'état de son compte
+param clientID: tableau des identifiants des clients
+param cagnotte: tableau des cagnottes des clients
+param suspended: tableau de l'état du compte des clients
+param tlog: taille logique des tableaux des clients
+var i: compteur servant à parcourir les données des tableaux jusqu'à leur taille logique
*/
int i;
printf("num Client\tcagnotte\tsuspended\tisAdmin");
for (i=0; i<tlog; i++)
{
printf("%d\t%f\t%d\t%d", clientID[i], cagnotte[i], suspended[i], isAdmin[i]);
}
}
/**
* @brief Ajoute un article au panier et calcule les différents attributs pour la fonction `display_basket`
* @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 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 tlog: taille logique du tableau `tab_reference`
* @param tlog_basket: taille logique du panier
* @return Rien
*/
void display_basket(int basket_tab_ref[], int basket_qte[], float weight[], float volume[], float unitPrice[], int tlog, int tlog_basket)
{
float total_weight_line[tlog_basket], total_volume_line[tlog_basket], total_price_line[tlog_basket], cagnotte_line[tlog_basket], total_weight, total_volume, total_price;
int i;
for (i=0; i<tlog_basket; i++)
{
total_weight_line[i] = basket_qte[i]*weight[i];
total_volume_line[i] = basket_qte[i]*volume[i];
total_price_line[i] = basket_qte[i]*unitPrice[i];
cagnotte_line[i] = total_price_line[i] * 0.10;
}
for (i=0; i<tlog_basket; i++)
{
total_price = total_price + total_price_line[i];
}
printf("Récapitulatif de votre panier:\n");
printf("Référence\tQuantité\tPoids\tVolume\tPrixU\tPoidsTot\tVolTot\tPrixTot\tCagnotte\n");
for (i=0; i<tlog_basket; i++)
printf("%d\t%d\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n", basket_tab_ref[i], basket_qte[i], weight[i], volume[i], unitPrice[i], total_weight_line[i], total_volume_line[i], total_price_line[i],cagnotte_line[i]);
printf("\t\t\t\t\tPrix total à payer: %f\t euros\n", total_price);
//constraintExceeded( weightConstraint, volumeConstraint, *priceConstraint, *cagnotte, tabWeight[], tabVolume[], tabPrice[], tabItemRef[], tabBasketRef[], tabBasketQuantity[], tlogItem, int tlogBasket)
// if (volume_constraint<total_volume)
// {
// printf("Volume actuel:%.2f\n", total_volume);
// printf("Volume restant: Attention, dépasssement du volume autorisé de %2.f, veuillez suprimer des articles",total_volume - volume_constraint);
// }
// else
// {
// printf("Volume actuel:%.2f\n", total_volume);
// printf("Volume restant:%2.f\n", volume_constraint - total_volume);
// }
// if (weight_constraint<total_weight)
// {
// printf("Charge actuelle:\t%2.f",total_weight);
// printf("Attention, dépasssement de la charge autorisée de %2.f, veuillez suprimer des articles", total_weight - weight_constraint);
// }
// else
// {
// printf("Charge actuelle:\t%2.f",total_weight);
// printf("Charge restante:\t%2.f", volume_constraint - total_volume);
// }
}