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.

178 lines
6.6 KiB

#include "main.h"
void displayItem(int tabReference[], float weight[], float volume[], float unitPrice[], int tlog)
{
/*
Affichage des données d'un article choisi par sa référence 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 tabReference: 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 reference: référence de l'article recherché
+var index: index de l'article recherché dans le tableau
*/
int reference, index;
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 = recherche(reference, tabReference, tlog);
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;
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 = recherche(id, clientID, tlog);
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 weight_constraint: var float contenant la contrainte de la charge maximale du véicule
* @param volume_constraint: var float contenant la contrainte du volume maximal du véicule
* @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[], float *cagnotte,float weight_constraint, float volume_constraint, int tlog, int tlog_basket)
{
float total_weight_line[], total_volume_line[], total_price_line[], cagnotte_line[], 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);
printf("\t\t\t\t\tCagnotte totale: %f\t euros\n", *cagnotte);
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);
}
}