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
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);
|
|
// }
|
|
}
|