parent
2068cd7baf
commit
3fb17d951f
@ -1,82 +1,77 @@
|
||||
#ifndef SAE_101_CLIENT_H
|
||||
#define SAE_101_CLIENT_H
|
||||
/**
|
||||
* @file client.h
|
||||
* @brief Fichier d'en-tête pour les fonctions de gestion des clients.
|
||||
*
|
||||
* Ce fichier d'en-tête définit les fonctions liées à la gestion des clients, telles que le chargement des clients, la sauvegarde, etc.
|
||||
*
|
||||
* @author Hersan Mathéo
|
||||
*/
|
||||
|
||||
#ifndef CLIENT_H
|
||||
#define CLIENT_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "../interface/interface_client.h"
|
||||
|
||||
/**
|
||||
* @file client.h
|
||||
* @brief Fonctions liées à la gestion des clients et de leur panier.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Charge les données des clients à partir d'un fichier.
|
||||
* @brief Charger les données des clients depuis un fichier.
|
||||
*
|
||||
* @param numeros - Tableau des numéros de clients.
|
||||
* @param cagnottes - Tableau des cagnottes des clients.
|
||||
* @param suspendues - Tableau des états de suspension des clients.
|
||||
* @param tPhysique - Taille du tableau physique.
|
||||
* @return Le nombre de clients chargés ou -1 en cas d'erreur.
|
||||
* @param numeros - Un tableau de numéros de clients.
|
||||
* @param cagnottes - Un tableau de cagnottes des clients.
|
||||
* @param suspendues - Un tableau d'état des clients suspendus.
|
||||
* @param tPhysique - La taille physique du tableau des clients.
|
||||
*
|
||||
* @return Le nombre de clients chargés depuis le fichier.
|
||||
*/
|
||||
int charger_clients(int numeros[], float cagnottes[], int suspendues[], int tPhysique);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Sauvegarde les données clients dans un fichier.
|
||||
* @brief Sauvegarder les données des clients dans un fichier.
|
||||
*
|
||||
* Cette fonction permet de sauvegarder les données clients, y compris les numéros de clients, les cagnottes,
|
||||
* et les états de suspension, dans un fichier texte.
|
||||
*
|
||||
* @param numeros - Tableau des numéros de clients.
|
||||
* @param cagnottes - Tableau des cagnottes des clients.
|
||||
* @param suspendus - Tableau des états de suspension des clients.
|
||||
* @param nombreClients - Nombre de clients.
|
||||
* @param numeros - Un tableau de numéros de clients.
|
||||
* @param cagnottes - Un tableau de cagnottes des clients.
|
||||
* @param suspendus - Un tableau d'état des clients suspendus.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
*/
|
||||
void sauvegarde_clients(int numeros[], float cagnottes[], int suspendus[], int nombreClients);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Supprime un article du panier du client.
|
||||
*
|
||||
* Cette fonction permet de supprimer un article du panier du client tout en metant a jour la cagnotte.
|
||||
* @brief Supprimer un article du panier du client.
|
||||
*
|
||||
* @param panier
|
||||
* @param quantites
|
||||
* @param taillePanier
|
||||
* @param reference
|
||||
* @param numeroClient
|
||||
* @param numeros
|
||||
* @param nombreClients
|
||||
* @param references
|
||||
* @param prixUnitaire
|
||||
* @param cagnottes
|
||||
* @param panier - Le panier d'achat du client.
|
||||
* @param quantites - Un tableau de quantités d'articles dans le panier.
|
||||
* @param[out] taillePanier - Un pointeur pour stocker la taille du panier.
|
||||
* @param reference - La référence de l'article à supprimer.
|
||||
* @param numeroClient - Le numéro du client.
|
||||
* @param numeros - Un tableau de numéros de clients.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
* @param references - Un tableau de références d'articles.
|
||||
* @param prixUnitaire - Un tableau de prix unitaires d'articles.
|
||||
* @param cagnottes - Un tableau de cagnottes des clients.
|
||||
*/
|
||||
void supprimer_article(int panier[], int quantites[], int *taillePanier, int reference, int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[], float cagnottes[]);
|
||||
|
||||
/**
|
||||
* @brief Recherche l'index de l'article dans le tableau des références.
|
||||
* @brief Trouver l'index d'une référence d'article dans un tableau.
|
||||
*
|
||||
* Cette fonction recherche l'index de l'article avec la référence donnée dans le tableau des références.
|
||||
* @param reference - La référence de l'article à rechercher.
|
||||
* @param references - Un tableau de références d'articles.
|
||||
* @param nombreArticles - Le nombre total d'articles.
|
||||
*
|
||||
* @param reference - Référence de l'article à rechercher.
|
||||
* @param references - Tableau des références des articles.
|
||||
* @param nombreArticles - Nombre d'articles disponibles.
|
||||
* @return L'index de l'article s'il est trouvé, sinon -1.
|
||||
* @return L'index de la référence dans le tableau ou -1 si la référence n'est pas trouvée.
|
||||
*/
|
||||
int trouver_index_article(int reference, int references[], int nombreArticles);
|
||||
|
||||
/**
|
||||
* @brief Trouve l'index d'un client dans le tableau des numéros de clients.
|
||||
* @brief Trouver l'index d'un numéro de client dans un tableau.
|
||||
*
|
||||
* Cette fonction recherche le numéro du client dans le tableau des numéros de clients
|
||||
* et retourne l'index du client s'il est trouvé.
|
||||
* @param numeroClient - Le numéro de client à rechercher.
|
||||
* @param numeros - Un tableau de numéros de clients.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
*
|
||||
* @param numeroClient - Numéro du client à rechercher.
|
||||
* @param numeros - Tableau des numéros de clients.
|
||||
* @param nombreClients - Nombre de clients dans le tableau.
|
||||
* @return L'index du client s'il est trouvé, -1 sinon.
|
||||
* @return L'index du numéro de client dans le tableau ou -1 si le numéro de client n'est pas trouvé.
|
||||
*/
|
||||
int trouver_index_client(int numeroClient, int numeros[], int nombreClients);
|
||||
|
||||
#endif // SAE_101_CLIENT_H
|
||||
#endif // CLIENT_H
|
||||
|
@ -1,175 +1,173 @@
|
||||
/**
|
||||
* @file interface_client.h
|
||||
* @brief En-tête des fonctions liées à l'interface client.
|
||||
* @brief Fichier d'en-tête pour les fonctions de l'interface client.
|
||||
*
|
||||
* Ce fichier d'en-tête définit les fonctions liées à l'interaction et à la gestion des clients.
|
||||
* Ces fonctions incluent des opérations telles que l'ajout d'articles au panier d'un client, la gestion du budget, etc.
|
||||
*
|
||||
* @author Hersan Mathéo
|
||||
*/
|
||||
|
||||
#ifndef INTERFACE_CLIENT_H
|
||||
#define INTERFACE_CLIENT_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "../core_logic/client.h"
|
||||
#include "../core_logic/responsable.h"
|
||||
|
||||
/**
|
||||
* @brief Affiche le menu principal de l'interface client.
|
||||
* @brief Afficher les informations du client.
|
||||
*/
|
||||
void affiche_client();
|
||||
|
||||
/**
|
||||
* @brief Laisse l'utilisateur choisir une option du menu.
|
||||
* @brief Afficher le menu du client et enregistrer le choix de l'utilisateur.
|
||||
*
|
||||
* @param[in, out] choix - L'option choisie par l'utilisateur.
|
||||
* @param[out] choix - Un pointeur pour stocker le choix de l'utilisateur.
|
||||
*/
|
||||
void menu_client(int *choix);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Ajoute un article au panier du client.
|
||||
*
|
||||
* Cette fonction permet d'ajouter un article au panier du client.
|
||||
*
|
||||
* @param numeroClient - Numéro du client.
|
||||
* @param references - Tableau des références des articles.
|
||||
* @param poids - Tableau des poids des articles.
|
||||
* @param volume - Tableau des volumes des articles.
|
||||
* @param prixUnitaire - Tableau des prix unitaires des articles.
|
||||
* @param numeros - Tableau des numéros de clients.
|
||||
* @param cagnottes - Tableau des cagnottes des clients.
|
||||
* @param suspendues - Tableau des états de suspension des clients.
|
||||
* @param nombreArticles - Nombre d'articles disponibles.
|
||||
* @param nombreClients - Nombre de clients.
|
||||
* @param volumeCoffre - Volume total du coffre.
|
||||
* @param chargeMaximale - Charge maximale du coffre.
|
||||
* @param panier - Tableau des références des articles dans le panier.
|
||||
* @param quantites - Tableau des quantités de chaque article dans le panier.
|
||||
* @param taillePanier - Taille du panier.
|
||||
* @param budget - Budget du client.
|
||||
* @brief Ajouter des articles au panier du client.
|
||||
*
|
||||
* @param numeroClient - Le numéro du client.
|
||||
* @param references - Un tableau de références d'articles.
|
||||
* @param poids - Un tableau de poids d'articles.
|
||||
* @param volume - Un tableau de volumes d'articles.
|
||||
* @param prixUnitaire - Un tableau de prix unitaires d'articles.
|
||||
* @param numeros - Un tableau de numéros d'articles.
|
||||
* @param cagnottes - Un tableau de cagnottes.
|
||||
* @param suspendues - Un tableau d'articles suspendus.
|
||||
* @param nombreArticles - Le nombre total d'articles disponibles.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
* @param volumeCoffre - La limite de volume pour le panier du client.
|
||||
* @param chargeMaximale - La limite de poids pour le panier du client.
|
||||
* @param panier - Le panier d'achat du client.
|
||||
* @param quantites - Un tableau de quantités d'articles dans le panier.
|
||||
* @param[out] taillePanier - Un pointeur pour stocker la taille du panier.
|
||||
* @param budget - Le budget du client.
|
||||
*/
|
||||
void ajouter_article_au_panier(int numeroClient, int references[], float poids[], float volume[], float prixUnitaire[],
|
||||
int numeros[], float cagnottes[], int suspendues[], int nombreArticles, int nombreClients,
|
||||
float volumeCoffre, float chargeMaximale, int panier[], int quantites[], int *taillePanier, float budget);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Supprime un article du panier du client.
|
||||
*
|
||||
* Cette fonction permet de supprimer un article du panier du client.
|
||||
*
|
||||
* @param panier - Tableau des références des articles dans le panier.
|
||||
* @param quantites - Tableau des quantités de chaque article dans le panier.
|
||||
* @param taillePanier - Taille du panier.
|
||||
* @brief Supprimer un article du panier du client.
|
||||
*
|
||||
* @param panier - Le panier d'achat du client.
|
||||
* @param quantites - Un tableau de quantités d'articles dans le panier.
|
||||
* @param[out] taillePanier - Un pointeur pour stocker la taille du panier.
|
||||
* @param cagnottes - Un tableau de cagnottes.
|
||||
* @param numeroClient - Le numéro du client.
|
||||
* @param numeros - Un tableau de numéros d'articles.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
* @param references - Un tableau de références d'articles.
|
||||
* @param prixUnitaire - Un tableau de prix unitaires d'articles.
|
||||
*/
|
||||
//void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanier, float prixUnitaire[], int clientIndex, float cagnottes[]);
|
||||
|
||||
void supprimer_article_du_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[]);
|
||||
|
||||
/**
|
||||
* @brief Affiche un récapitulatif du contenu du panier.
|
||||
*
|
||||
* Cette fonction permet d'afficher un récapitulatif détaillé du contenu du panier du client, y compris les références des articles,
|
||||
* les quantités, les poids, les volumes, les prix unitaires, les totaux de poids, de volume, de prix, et la cagnotte du client.
|
||||
*
|
||||
* @param panier - Tableau des références des articles dans le panier.
|
||||
* @param taillePanier - Taille du panier.
|
||||
* @param references - Tableau des références des articles.
|
||||
* @param poids - Tableau des poids des articles.
|
||||
* @param volume - Tableau des volumes des articles.
|
||||
* @param prixUnitaire - Tableau des prix unitaires des articles.
|
||||
* @param quantites - Tableau des quantités de chaque article dans le panier.
|
||||
* @param cagnottes - Tableau des cagnottes des clients.
|
||||
* @param numeroClient - Numéro du client.
|
||||
* @param numeros - Tableau des numéros de clients.
|
||||
* @param nombreClients - Nombre de clients.
|
||||
* @param volumeCoffre - Volume total du coffre.
|
||||
* @param chargeMaximale - Charge maximale du coffre.
|
||||
* @param budget - Budget du client.
|
||||
* @brief Afficher un récapitulatif du panier du client.
|
||||
*
|
||||
* @param panier - Le panier d'achat du client.
|
||||
* @param taillePanier - La taille du panier.
|
||||
* @param references - Un tableau de références d'articles.
|
||||
* @param poids - Un tableau de poids d'articles.
|
||||
* @param volume - Un tableau de volumes d'articles.
|
||||
* @param prixUnitaire - Un tableau de prix unitaires d'articles.
|
||||
* @param quantites - Un tableau de quantités d'articles dans le panier.
|
||||
* @param cagnottes - Un tableau de cagnottes.
|
||||
* @param numeroClient - Le numéro du client.
|
||||
* @param numeros - Un tableau de numéros d'articles.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
* @param volumeCoffre - La limite de volume pour le panier du client.
|
||||
* @param chargeMaximale - La limite de poids pour le panier du client.
|
||||
* @param budget - Le budget du client.
|
||||
*/
|
||||
|
||||
void affiche_recap_panier(int panier[], int taillePanier, int references[], float poids[], float volume[],
|
||||
float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient,
|
||||
int numeros[], int nombreClients, float volumeCoffre, float chargeMaximale, float budget);
|
||||
|
||||
/**
|
||||
* @brief Affiche le récapitulatif du panier.
|
||||
*
|
||||
* Cette fonction affiche le récapitulatif du panier, y compris les références, les poids, les volumes, les prix unitaires, elle permet d'initialiser la session du client.
|
||||
*
|
||||
* @param numeros
|
||||
* @param suspendus
|
||||
* @param nombreClients
|
||||
* @param budget
|
||||
* @param volumeCoffre
|
||||
* @param chargeMaximale
|
||||
* @param numeroClient
|
||||
* @brief Configurer la session client.
|
||||
*
|
||||
* @param numeros - Un tableau de numéros de clients.
|
||||
* @param suspendus - Un tableau d'état des clients suspendus.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
* @param[out] budget - Un pointeur pour stocker le budget du client.
|
||||
* @param[out] volumeCoffre - Un pointeur pour stocker la limite de volume du panier du client.
|
||||
* @param[out] chargeMaximale - Un pointeur pour stocker la limite de poids du panier du client.
|
||||
* @param[out] numeroClient - Un pointeur pour stocker le numéro du client.
|
||||
*/
|
||||
void configurer_session_client(int numeros[], int suspendus[], int nombreClients, double *budget, float *volumeCoffre, float *chargeMaximale, int *numeroClient);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Modifie la quantité d'un article dans le panier du client.
|
||||
*
|
||||
* Cette fonction permet de modifier la quantité d'un article dans le panier du client tout en mettant à jour la cagnotte.
|
||||
*
|
||||
* @param panier - Tableau des références des articles dans le panier.
|
||||
* @param quantites - Tableau des quantités de chaque article dans le panier.
|
||||
* @param taillePanier - Taille du panier.
|
||||
* @param cagnottes - Tableau des cagnottes des clients.
|
||||
* @param numeroClient - Numéro du client.
|
||||
* @param prixUnitaire - Tableau des prix unitaires des articles.
|
||||
* @param references - Tableau des références des articles.
|
||||
* @param nombreClients - Nombre de clients.
|
||||
* @param numeros - Tableau des numéros de clients.
|
||||
* @brief Modifier la quantité d'un article dans le panier du client.
|
||||
*
|
||||
* @param panier - Le panier d'achat du client.
|
||||
* @param quantites - Un tableau de quantités d'articles dans le panier.
|
||||
* @param[out] taillePanier - Un pointeur pour stocker la taille du panier.
|
||||
* @param cagnottes - Un tableau de cagnottes.
|
||||
* @param numeroClient - Le numéro du client.
|
||||
* @param prixUnitaire - Un tableau de prix unitaires d'articles.
|
||||
* @param references - Un tableau de références d'articles.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
* @param numeros - Un tableau de numéros d'articles.
|
||||
*/
|
||||
void modifier_quantite_article_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, float prixUnitaire[], int references[], int nombreClients, int numeros[]);
|
||||
|
||||
/**
|
||||
* @brief Réinitialise le panier du client.
|
||||
*
|
||||
* @param panier - Tableau des références des articles dans le panier.
|
||||
* @param quantites - Tableau des quantités de chaque article dans le panier.
|
||||
* @param taillePanier - Taille du panier.
|
||||
* @brief Réinitialiser le panier du client.
|
||||
*
|
||||
* @param panier - Le panier d'achat du client.
|
||||
* @param quantites - Un tableau de quantités d'articles dans le panier.
|
||||
* @param[out] taillePanier - Un pointeur pour stocker la taille du panier.
|
||||
* @param cagnottes - Un tableau de cagnottes.
|
||||
* @param numeroClient - Le numéro du client.
|
||||
* @param numeros - Un tableau de numéros d'articles.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
* @param references - Un tableau de références d'articles.
|
||||
* @param prixUnitaire - Un tableau de prix unitaires d'articles.
|
||||
*/
|
||||
void reinitialiser_panier(int panier[], int quantites[], int *taillePanier, float cagnottes[], int numeroClient, int numeros[], int nombreClients, int references[], float prixUnitaire[]);
|
||||
|
||||
/**
|
||||
* @brief Déduit un montant de la cagnotte du client.
|
||||
*
|
||||
* @param numeroClient - Numéro du client.
|
||||
* @param montant - Montant à déduire de la cagnotte.
|
||||
* @param numeros - Tableau des numéros de clients.
|
||||
* @param cagnottes - Tableau des cagnottes des clients.
|
||||
* @param nombreClients - Nombre de clients.
|
||||
* @param suspendus - Tableau des états de suspension des clients.
|
||||
* @brief Déduire un montant de la cagnotte du client.
|
||||
*
|
||||
* @param numeroClient - Le numéro du client.
|
||||
* @param montant - Le montant à déduire de la cagnotte.
|
||||
* @param numeros - Un tableau de numéros de clients.
|
||||
* @param cagnottes - Un tableau de cagnottes.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
* @param suspendus - Un tableau d'état des clients suspendus.
|
||||
*/
|
||||
void deduire_cagnotte(int numeroClient, float montant, int numeros[], float cagnottes[], int nombreClients, int suspendus[]);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Fonction principale de l'interface client.
|
||||
*
|
||||
* Cette fonction permet aux clients d'utiliser l'application pour gérer leur panier
|
||||
* et effectuer des opérations telles que l'ajout, la suppression ou la modification
|
||||
* d'articles dans le panier.
|
||||
* @brief Quitter l'application client.
|
||||
*
|
||||
* @param panier - Le panier d'achat du client.
|
||||
* @param taillePanier - La taille du panier.
|
||||
* @param references - Un tableau de références d'articles.
|
||||
* @param poids - Un tableau de poids d'articles.
|
||||
* @param volume - Un tableau de volumes d'articles.
|
||||
* @param prixUnitaire - Un tableau de prix unitaires d'articles.
|
||||
* @param quantites - Un tableau de quantités d'articles dans le panier.
|
||||
* @param cagnottes - Un tableau de cagnottes.
|
||||
* @param numeroClient - Le numéro du client.
|
||||
* @param numeros - Un tableau de numéros d'articles.
|
||||
* @param nombreClients - Le nombre total de clients.
|
||||
* @param budget - Le budget du client.
|
||||
* @param suspendus - Un tableau d'état des clients suspendus.
|
||||
*/
|
||||
void global_client();
|
||||
void quitter_application(int panier[], int taillePanier, int references[], float poids[], float volume[],
|
||||
float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient,
|
||||
int numeros[], int nombreClients, float budget, int suspendus[]);
|
||||
|
||||
/**
|
||||
* @brief Quitte l'application.
|
||||
*
|
||||
* Cette fonction permet de quitter l'application en affichant un récapitulatif du panier et en proposant de déduire un montant de la cagnotte.
|
||||
*
|
||||
* @param panier
|
||||
* @param taillePanier
|
||||
* @param references
|
||||
* @param poids
|
||||
* @param volume
|
||||
* @param prixUnitaire
|
||||
* @param quantites
|
||||
* @param cagnottes
|
||||
* @param numeroClient
|
||||
* @param numeros
|
||||
* @param nombreClients
|
||||
* @param budget
|
||||
* @param suspendus
|
||||
* @brief Exécute l'ensemble des fonctions de l'interface client.
|
||||
*/
|
||||
void quitter_application(int panier[], int taillePanier, int references[], float poids[], float volume[],
|
||||
float prixUnitaire[], int quantites[], float cagnottes[], int numeroClient,
|
||||
int numeros[], int nombreClients, float budget, int suspendus[]);
|
||||
void global_client();
|
||||
|
||||
#endif // INTERFACE_CLIENT_H
|
||||
|
Loading…
Reference in new issue