added chargement_clients and ajouter_article_au_panier

Signed-off-by: Mathéo Hersan <matheohersan@MacBook-Pro-de-Matheo.local>
pull/2/head
Mathéo Hersan 2 years ago
parent e4d1670166
commit 7f02f0e351
No known key found for this signature in database
GPG Key ID: 4EF19C64D78EC91B

BIN
app

Binary file not shown.

@ -1,22 +1,118 @@
#include <stdio.h>
//fonction ajouter un article au panier.
#include "client.h"
void chargerClient(int tNumClient[], float tCagnotte[], int tSus[], int *tLogique)
{
FILE *fic;
int i;
fic = fopen("donnee/client.txt", "r");
if (fic == NULL)
{
#define MAX_ARTICLES 100
#define MAX_CLIENTS 100
int charger_clients(int numeros[], float cagnottes[], int suspendues[], int tPhysique) {
int i = 0, numero, suspendue;
float cagnotte;
FILE *fe;
fe = fopen("donnee/client.txt", "r");
if (fe == NULL) {
perror("fopen");
exit(EXIT_FAILURE);
return -1;
}
while (fscanf(fe, "%d %f %d", &numero, &cagnotte, &suspendue) == 3) {
if (i == tPhysique) {
fprintf(stderr, "Tableau plein");
break;
}
numeros[i] = numero;
cagnottes[i] = cagnotte;
suspendues[i] = suspendue;
i++;
}
fclose(fe);
return i;
}
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 reference, quantite;
printf("Entrez la référence de l'article : ");
scanf("%d", &reference);
printf("Entrez la quantité : ");
scanf("%d", &quantite);
int articleIndex = -1;
for (int i = 0; i < nombreArticles; i++) {
if (references[i] == reference) {
articleIndex = i;
break;
}
}
if (articleIndex == -1) {
printf("Article non trouvé. Veuillez entrer une référence valide.\n");
return;
}
float poidsTotal = poids[articleIndex] * quantite;
float volumeTotal = volume[articleIndex] * quantite;
if (poidsTotal > chargeMaximale) {
printf("Désolé, dépassement de la charge autorisée.\n");
} else if (volumeTotal > volumeCoffre) {
printf("Désolé, dépassement du volume autorisé.\n");
} else {
float montantTotal = prixUnitaire[articleIndex] * quantite;
int clientIndex = -1;
for (int i = 0; i < nombreClients; i++) {
if (numeros[i] == numeroClient) {
clientIndex = i;
break;
}
}
if (clientIndex != -1) {
cagnottes[clientIndex] += 0.1 * montantTotal;
}
printf("Référence : %d\nQuantité : %d\n", reference, quantite);
printf("Récap :\n");
printf("Réf Qté Poids Vol PrixU PoidsTot VolTot PrixTot Cagnotte\n");
printf("%d %d %.2f %.2f %.2f %.2f %.2f %.2f %.2f\n",
reference, quantite, poids[articleIndex], volume[articleIndex],
prixUnitaire[articleIndex], poidsTotal, volumeTotal, montantTotal,
cagnottes[clientIndex]);
printf("Prix total à payer: %.2f euros\n", montantTotal);
printf("Cagnotte totale : %.2f euros\n", cagnottes[clientIndex]);
printf("Volume utilise : %.2f litres\n", volumeTotal);
printf("Volume restant : %.2f litres\n", volumeCoffre - volumeTotal);
printf("Charge Actuelle: %.2f kg\n", poidsTotal);
printf("Charge restante: %.2f kg\n", chargeMaximale - poidsTotal);
}
}
void supprimer_article_du_panier(int panier[], int *taillePanier) {
int reference;
printf("Interface utilisateur : Entrez la référence de l'article à supprimer : ");
scanf("%d", &reference);
int articleIndex = -1;
for (int i = 0; i < *taillePanier; i++) {
if (panier[i] == reference) {
articleIndex = i;
break;
}
}
if (articleIndex == -1) {
printf("Interface utilisateur : Article non trouvé dans le panier. Veuillez entrer une référence valide.\n");
return;
}
while (fscanf(fic, "%d %f %d", &tNumClient[*tLogique], &tCagnotte[*tLogique], &tSus[*tLogique]) != EOF)
{
(*tLogique)++;
for (int i = articleIndex; i < (*taillePanier - 1); i++) {
panier[i] = panier[i + 1];
}
fclose(fic);
(*taillePanier)--;
printf("Article supprimé du panier avec succès.\n");
}

@ -8,6 +8,10 @@
#include<stdio.h>
#include<stdlib.h>
void ajouter_article(int reference, float poids, float volume, int prixUnitaire);
int charger_clients(int numeros[], float cagnottes[], int suspendues[], int tPhysique);
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);
void supprimer_article_du_panier(int panier[], int *taillePanier);
#endif //SAE_101_CLIENT_H

@ -1,10 +1,14 @@
#include "interface_client.h"
#include "app/core_logic/client.h"
#include "app/core_logic/responsable.h"
void affiche_client(int a){
#define MAX_ARTICLES 100
#define MAX_CLIENTS 100
void affiche_client(int a) {
printf("\n");
printf("+-------------+ \n");
printf("|| Bonjour ! ||\n") ;
printf("|| Bonjour ! ||\n");
printf("+-------------+ \n");
printf("\n");
printf("+-----------------------------------------------------------------+\n");
@ -21,7 +25,6 @@ void affiche_client(int a){
* Sert à lancer le menu et faire choisir l'utilisateur
*/
void menu_client(int *choix, int jour) {
>>>>>>> 91542d8 (fixed some bugs on resp. Added global_resp and added error handling for char)
affiche_client(jour);
printf("Vous choisissez: ");
while (scanf("%d", choix) != 1 || *choix < 0 || *choix > 5) {
@ -31,35 +34,35 @@ void menu_client(int *choix, int jour) {
}
}
void demander_article(int reference, float poids, float volume, int prixUnitaire){
void global_client() {
int choix, jour = 0;
int references[MAX_ARTICLES];
float poids[MAX_ARTICLES];
float volume[MAX_ARTICLES];
float prixUnitaire[MAX_ARTICLES];
int numeros[MAX_CLIENTS];
float cagnottes[MAX_CLIENTS];
int suspendus[MAX_CLIENTS]; // Ajout du tableau des clients suspendus
int nombreArticles, nombreClients;
float volumeCoffre, chargeMaximale;
int numeroClient;
printf("Vous avez choisi d'ajouter un article au panier.\n");
printf("Veuillez entrer la référence de l'article que vous souhaitez ajouter au panier : ");
scanf("%d", &reference);
printf("Veuillez entrer le poids de l'article que vous souhaitez ajouter au panier : ");
scanf("%f", &poids);
printf("Veuillez entrer le volume de l'article que vous souhaitez ajouter au panier : ");
scanf("%f", &volume);
printf("Veuillez entrer le prix unitaire de l'article que vous souhaitez ajouter au panier : ");
scanf("%d", &prixUnitaire);
printf("L'article a bien été ajouté au panier.\n");
printf("Voici le récapitulatif du panier : \n");
printf("Référence : %d \n", reference);
printf("Poids : %f \n", poids);
printf("Volume : %f \n", volume);
printf("Prix unitaire : %d \n", prixUnitaire);
}
nombreArticles = chargementArticles(references, poids, volume, prixUnitaire, MAX_ARTICLES);
nombreClients = charger_clients(numeros, cagnottes, suspendus, MAX_CLIENTS);
void global_client(){
int choix, jour = 0, reference = 0;
float poids = 0.0, volume = 0.0, prixUnitaire = 0.0;
menu_client(&choix, jour);
switch (choix) {
case 1:
affiche_client(jour);
break;
case 2:
demander_article(reference, poids, volume, prixUnitaire);
// Ajouter la logique d'interface pour ajouter un article au panier ici
ajouter_article_au_panier(numeroClient, references, poids, volume, prixUnitaire, numeros, cagnottes,
suspendus, nombreArticles, nombreClients, volumeCoffre, chargeMaximale);
break;
case 3:
// Ajouter la logique d'interface pour supprimer un article du panier ici
//supprimer_article_du_panier(panier, &taillePanier);
break;
default:
printf("Veuillez entrer un choix valide !\n");

Loading…
Cancel
Save