diff --git a/src/display.c b/src/display.c index 5847c05..38c678b 100644 --- a/src/display.c +++ b/src/display.c @@ -1,5 +1,19 @@ +/** + * @file display.c + * @brief Fonctions d'affichage des articles et des clients +*/ + #include "main.h" +/** + * @brief Affichage d'un seul article + * @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 + * @return void +*/ void displayItem(int tabReference[], float weight[], float volume[], float unitPrice[], int tlog) { int reference, index, found; @@ -20,21 +34,17 @@ void displayItem(int tabReference[], float weight[], float volume[], float unitP printf("%d\t%f\t%f\t%f", tabReference[index], weight[index], volume[index], unitPrice[index]); } +/** + * @brief Affichage de la liste des articles + * @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 + * @return void +*/ 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 Tout s'est bien passé, -1 > L'utilisateur a quitté, -2 > La taille physique du tableau est dépassée +*/ int signup(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog) { int id, password, index, found, status; @@ -94,18 +109,5 @@ int signup(int clientID[], int clientPassword[], float cagnotte[], int suspended scanf("%d%*c", &password); } - decalageADroite(clientID, index, *tlog); - decalageADroite(clientPassword, index, *tlog); - decalageADroite(cagnotte, index, *tlog); - decalageADroite(suspended, index, *tlog); - decalageADroite(isAdmin, index, *tlog); - - clientPassword[index] = encrypt(password); - - clientID[index] = id; - cagnotte[index] = 0; - suspended[index] = 0; - isAdmin[index] = 0; - *tlog++; - return 0; + return inputClient(id, password, index, clientID, clientPassword, cagnotte, suspended, isAdmin, tlog); } \ No newline at end of file diff --git a/src/modif.c b/src/modif.c index aaf7001..78e6595 100644 --- a/src/modif.c +++ b/src/modif.c @@ -1,13 +1,22 @@ +/** + * @file modif.c + * @brief Fonctions de modification des données (ajout, suppression, modification) +*/ + #include "main.h" /** - * @brief Fonction d'inserion d'un client - * @param clientID: Tableau des identifiants client - * @param cagnotte: Tableau des cagnottes client - * @param suspended: Tableau des états de compte client - * @param isAdmin: Tableau des statuts Administrateur des clients - * @param tlog: Taille logique de ces tableaux - * @return 0 > Tout s'est bien passé, -1 > L'utilisateur a quitté, -2 > La taille physique du tableau est dépassée + * @brief Ajout d'un client dans les tableaux + * @param id: Tableau des identifiants des clients + * @param passwd: Tableau des mots de passe des clients + * @param index: Index du client à ajouter + * @param clientID: Tableau des identifiants des clients + * @param clientPassword: Tableau des mots de passe des clients + * @param cagnotte: Tableau des cagnottes des clients + * @param suspended: Tableau de l'état du compte des clients + * @param isAdmin: Tableau de l'état d'administrateur des clients + * @param tlog: Taille logique des tableaux + * @return 0 si tout s'est bien passé, -2 si la taille physique du tableau est dépassée */ int inputClient(int id, int passwd, int index, int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog) { @@ -34,21 +43,17 @@ int inputClient(int id, int passwd, int index, int clientID[], int clientPasswor return 0; // Tout s'est bien passé } +/** + * @brief Modification des données d'un client + * @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 isAdmin: Tableau de l'état d'administrateur des clients + * @param tlog: Taille logique des tableaux + * @return void +*/ void modifyClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlog) { - /* - Modification des données d'un client dans les tableaux - - +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 numClient: identifiant du client à modifier - +var index: index de l'article recherché dans le tableau pour le modifier - +var montant: montant à ajouter à la cagnotte - +var modif: modification à exécuter sur le client - */ int index, numClient, found; float montant; char modif; @@ -91,22 +96,18 @@ void modifyClient(int clientID[], float cagnotte[], int suspended[], int isAdmin isAdmin[index] = 0; } +/** + * @brief Ajout d'un ou plusieurs articles dans les tableaux d'articles (reference, poids, volume et prix) + * @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 + * @return void + * @warning La saisie s'arrête lorsque l'utilisateur entre 0 +*/ void inputItem(int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlog) { - /* - Ajout d'un ou plusieurs articles dans les tableaux d'articles (reference, poids, volume et prix) - - +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: reference de l'article à ajouter - +var weight: poids de l'article à ajouter - +var volume: volume de l'article à ajoueter - +var price: prix de l'article à ajouter - */ int reference = -1; float weight, volume, price; while (reference != 0) @@ -151,6 +152,16 @@ void inputItem(int tabReference[], float tabWeight[], float tabVolume[], float u } } +/** + * @brief Suppression d'un ou plusieurs articles dans les tableaux d'articles (reference, poids, volume et prix) + * @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 + * @return void + * @warning La saisie s'arrête lorsque l'utilisateur entre 0 +*/ void deleteItem(int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlog) { int reference = -1, index, i, found; @@ -181,6 +192,18 @@ void deleteItem(int tabReference[], float tabWeight[], float tabVolume[], float } } +/** + * @brief Suppression d'un ou plusieurs clients dans les tableaux des clients (clientID, clientPassword, cagnotte, suspended et isAdmin) + * @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 isAdmin: tableau de l'état d'administrateur des clients + * @param tlog: taille logique des tableaux des clients + * @return void + * @warning La saisie s'arrête lorsque l'utilisateur entre 0 +*/ +//! Ajouter la suppression de la colonne mot de passe. +//! Utiliser la fonction décalaageAGauche void deleteClient(int clientID[], float cagnotte[], int suspended[], int isAdmin[], int *tlog) { int numClient = -1, index, i, found; diff --git a/src/panier.c b/src/panier.c index a1b2bec..bbcd628 100644 --- a/src/panier.c +++ b/src/panier.c @@ -1,10 +1,13 @@ +/** + * @file panier.c + * @brief Fonctions de gestion du panier client et des contraintes +*/ + #include "main.h" void clientConstraint(float *weight, float *volume, float *price) { - /* - Saisie des contraintes du client. - */ + // Saisie des contraintes du client. printf("Entrez la charge maximale de votre véhicule en kilogrammes: "); scanf("%f", weight); while (*weight < 0) @@ -30,29 +33,6 @@ void clientConstraint(float *weight, float *volume, float *price) } } - -// TODO réécrire cette documentation -/** - * The function checks if the weight, volume, and price constraints are exceeded based on the items in - * the basket and the given constraints. - * - * @param weightConstraint The maximum weight constraint for the vehicle. - * @param volumeConstraint The volume constraint is the maximum volume that the vehicle can hold. - * @param priceConstraint A pointer to a float variable representing the maximum budget constraint. - * @param cagnotte A pointer to a float variable representing the amount of money in the user's - * account. - * @param tabWeight An array containing the weights of each item in the log. - * @param tabVolume tabVolume is an array that stores the volume of each item in the shopping basket. - * @param tabPrice tabPrice is an array that stores the prices of items in a shopping basket. - * @param tabItemRef An array containing the reference numbers of the items in the inventory. - * @param tabBasketRef tabBasketRef is an array that contains the references of the items in the - * basket. - * @param tabBasketQuantity An array that stores the quantity of each item in the basket. - * @param tlogItem The parameter "tlogItem" represents the number of items in the log. - * @param tlogBasket The parameter "tlogBasket" represents the number of items in the shopping basket. - * @return an integer value. If the constraints for weight, volume, or price are exceeded, the function - * returns -1. Otherwise, it returns 0. - */ int constraintExceeded(float weightConstraint, float volumeConstraint, float *priceConstraint, float *cagnotte, float tabWeight[], float tabVolume[], float tabPrice[], int tabItemRef[], int tabBasketRef[], int tabBasketQuantity[], int tlogItem, int tlogBasket) { int index, found, i; diff --git a/src/traitement.c b/src/traitement.c index 02f7176..7670ed0 100644 --- a/src/traitement.c +++ b/src/traitement.c @@ -5,44 +5,37 @@ #include "main.h" +/** + * @brief Chargement des données depuis les 2 fichiers vers les tableaux + * @param tLogArticle: Taille logique du tableau des articles + * @param tLogClient: Taille logique du tableau des clients + * @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 clientID: Tableau des identifiants des clients + * @param clientPassword: Tableau des mots de passe des clients + * @param cagnotte: Tableau des cagnottes des clients + * @param suspended: Tableau de l'état du compte des clients + * @param isAdmin: Tableau de l'état d'administrateur des clients + * @return void +*/ void chargeDonnees(int *tLogArticle, int *tLogClient,int reference[], float weight[], float volume[], float unitPrice[], int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[]) { - /* - Chargement des données des articles et clients de fichiers vers des tableaux - - +param tLogArticle: taille logique des tableaux des articles - +param tLogClient: taille logique des tableaux des clients - +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 clientID: tableau des identifiants des clients - +param cagnotte: tableau des cagnottes des clients - +param suspended: tableau de l'état du compte des clients - */ *tLogArticle = chargeArticles(reference, weight, volume, unitPrice); *tLogClient = chargeClients(clientID, clientPassword, cagnotte, suspended, isAdmin); } +/** + * @brief Chargement des données du fichier des articles vers les tableaux + * @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 + * @return Taille logique des tableaux d'articles +*/ int chargeArticles(int reference[], float weight[], float volume[], float unitPrice[]) { - /* - Chargement des données des articles d'un fichier vers des tableaux - - +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 - - +return: taille logique des tableaux - - +var article: fichier 'articles.txt' ouvert en lecture - +var ref: reference de l'article - +var tL: taille logique des tableaux - +var w: poids de l'article - +var v: volume de l'article - +var up: prix de l'article à l'unité - */ FILE *article; article = fopen("articles.txt","r"); if(article==NULL) @@ -76,23 +69,17 @@ int chargeArticles(int reference[], float weight[], float volume[], float unitPr return tL; } +/** + * @brief Chargement des données du fichier des clients vers les tableaux + * @param clientID: Tableau des identifiants des clients + * @param clientPassword: Tableau des mots de passe des clients + * @param cagnotte: Tableau des cagnottes des clients + * @param suspended: Tableau de l'état du compte des clients + * @param isAdmin: Tableau de l'état d'administrateur des clients + * @return Taille logique des tableaux des clients +*/ int chargeClients(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[]) { - /* - Chargement des données des clients d'un fichier vers des tableaux - - +param clientID: tableau des identifiants des clients - +param cagnotte: tableau des cagnottes des clients - +param suspended: tableau de l'état du compte des clients - - +return: taille logique des tableaux - - +var client: fichier 'clients.txt' ouvert en lecture - +var id: identifiant du client - +var sus: état du compte du client - +var tL: taille logique des tableaux - +var cag: montant de la cagnotte du client - */ FILE *client; client = fopen("clients.txt","r"); if(client==NULL) @@ -127,39 +114,38 @@ int chargeClients(int clientID[], int clientPassword[], float cagnotte[], int su return tL; } +/** + * @brief Sauvegarde des données des tableaux vers les 2 fichiers correspondants + * @param tLogArticle: Taille logique du tableau des articles + * @param tLogClient: Taille logique du tableau des clients + * @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 clientID: Tableau des identifiants des clients + * @param clientPassword: Tableau des mots de passe des clients + * @param cagnotte: Tableau des cagnottes des clients + * @param suspended: Tableau de l'état du compte des clients + * @param isAdmin: Tableau de l'état d'administrateur des clients + * @return void +*/ void sauvegardeDonnees(int tLogArticle, int tLogClient, int reference[], float weight[], float volume[], float unitPrice[], int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[]) { - /* - Sauvegarde des données des articles et clients de tableaux vers des fichiers - - +param tLogArticle: taille logique des tableaux des articles - +param tLogClient: taille logique des tableaux des clients - +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 clientID: tableau des identifiants des clients - +param cagnotte: tableau des cagnottes des clients - +param suspended: tableau de l'état du compte des clients - */ sauvegardeArticles(reference, weight, volume, unitPrice, tLogArticle); sauvegardeClients(clientID, clientPassword, cagnotte, suspended, isAdmin, tLogClient); } +/** + * @brief Sauvegarde des données des articles de tableaux vers le fichier des articles + * @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 tLogArticle: Taille logique des tableaux des articles + * @return void +*/ void sauvegardeArticles(int reference[], float weight[], float volume[], float unitPrice[], int tLogArticle) { - /* - Sauvegarde des données des articles de tableaux vers le fichier des articles - - +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 tLogArticle: taille logique des tableaux des articles - - +var article: fichier 'articles.txt' ouvert en écriture - +var i: compteur permettant de parcourir les tableaux - */ FILE *article; article = fopen("articles.txt","w"); if(article==NULL) @@ -176,19 +162,18 @@ void sauvegardeArticles(int reference[], float weight[], float volume[], float u fclose(article); } +/** + * @brief Sauvegarde des données des clients de tableaux vers le fichier des clients + * @param clientID: Tableau des identifiants des clients + * @param clientPassword: Tableau des mots de passe des clients + * @param cagnotte: Tableau des cagnottes des clients + * @param suspended: Tableau de l'état du compte des clients + * @param isAdmin: Tableau de l'état d'administrateur des clients + * @param tLogClient: Taille logique des tableaux des clients + * @return void +*/ void sauvegardeClients(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int tLogClient) { - /* - Sauvegarde des données des articles de tableaux vers le fichier des articles - - +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 tLogClient: taille logique des tableaux des clients - - +var client: fichier 'clients.txt' ouvert en lecture - +var i: compteur permettant de parcourir les tableaux - */ FILE *client; client = fopen("clients.txt","w"); if(client==NULL)