FINAL
continuous-integration/drone/push Build is passing Details

master
Rémi LAVERGNE 1 year ago
parent ceb9687010
commit e5fb512a35
No known key found for this signature in database
GPG Key ID: 8861D8A4AD21A032

@ -42,6 +42,19 @@ Pour les autres fichiers, voir la Documentation.<br>
**Fonctionnement**
------------
Lors de l'exécution du programme, le menu principal s'affiche. Il est composé de 4 choix : connexion, inscription, opposition et quitter.
Le choix 1 permet de se connecter, le choix 2 de s'inscrire, le choix 3 de récupérer l'accès à sa carte suspendue et le choix 4 de quitter le programme.
- Si l'utilisateur se connecte, il est redirigé vers le menu client ou administrateur selon son rôle.
- Si l'utilisateur s'inscrit, il est redirigé vers le menu principal.
- Si l'utilisateur récupère l'accès à sa carte suspendue, il est redirigé vers le menu principal.
- Si l'utilisateur quitte le programme, il est déconnecté et le programme se ferme après la sauvegarde des données.
<br>
Traces d'Exécution
===============
Trace #1 : https://youtu.be/MiiCGtzQzEM
<br>

@ -1,50 +1,50 @@
1 33.80 1.62 64.50
2 45.97 1.21 193.57
3 91.03 0.57 79.36
4 59.32 0.71 100.99
5 34.18 1.43 42.44
6 75.43 2.43 57.86
7 26.11 2.32 155.97
8 31.89 0.92 190.94
9 90.74 0.59 61.87
10 15.63 1.81 148.95
11 62.08 1.47 185.78
12 84.46 2.00 49.14
13 71.74 0.46 177.15
14 81.59 1.08 69.27
15 76.09 1.28 92.17
16 50.92 2.37 28.14
17 73.27 1.07 142.01
18 99.08 2.16 5.51
19 76.33 1.28 66.87
20 47.91 1.28 14.79
21 49.92 0.92 86.80
22 88.98 1.18 127.61
23 11.72 1.97 189.64
24 22.72 0.56 106.91
25 99.43 1.61 52.19
26 73.17 1.78 112.36
27 17.10 2.26 72.91
28 96.59 2.43 43.50
29 16.39 1.36 77.74
30 47.78 1.85 36.03
31 12.49 0.96 170.42
32 53.07 0.32 83.83
33 42.26 0.72 198.57
34 86.22 1.03 195.66
35 46.83 0.37 23.29
36 95.86 1.14 163.49
37 21.67 1.08 188.90
38 16.15 0.32 169.18
39 39.76 2.45 111.22
40 16.23 2.15 142.99
41 13.15 1.05 58.28
42 46.66 0.30 45.97
43 67.64 2.28 23.28
44 98.52 1.71 10.28
45 96.39 1.11 59.34
46 96.30 0.67 159.19
47 45.94 0.62 169.54
48 20.28 1.78 145.46
49 44.08 1.57 169.84
50 80.91 2.13 67.70
1 33.799999 1.620000 64.500000
2 45.970001 1.210000 193.570007
3 91.029999 0.570000 79.360001
4 59.320000 0.710000 100.989998
5 34.180000 1.430000 42.439999
6 75.430000 2.430000 57.860001
7 26.110001 2.320000 155.970001
8 31.889999 0.920000 190.940002
9 90.739998 0.590000 61.869999
10 15.630000 1.810000 148.949997
11 62.080002 1.470000 185.779999
12 84.459999 2.000000 49.139999
13 71.739998 0.460000 177.149994
14 81.589996 1.080000 69.269997
15 76.089996 1.280000 92.169998
16 50.919998 2.370000 28.139999
17 73.269997 1.070000 142.009995
18 99.080002 2.160000 5.510000
19 76.330002 1.280000 66.870003
20 47.910000 1.280000 14.790000
21 49.919998 0.920000 86.800003
22 88.980003 1.180000 127.610001
23 11.720000 1.970000 189.639999
24 22.719999 0.560000 106.910004
25 99.430000 1.610000 52.189999
26 73.169998 1.780000 112.360001
27 17.100000 2.260000 72.910004
28 96.589996 2.430000 43.500000
29 16.389999 1.360000 77.739998
30 47.779999 1.850000 36.029999
31 12.490000 0.960000 170.419998
32 53.070000 0.320000 83.830002
33 42.259998 0.720000 198.570007
34 86.220001 1.030000 195.660004
35 46.830002 0.370000 23.290001
36 95.860001 1.140000 163.490005
37 21.670000 1.080000 188.899994
38 16.150000 0.320000 169.179993
39 39.759998 2.450000 111.220001
40 16.230000 2.150000 142.990005
41 13.150000 1.050000 58.279999
42 46.660000 0.300000 45.970001
43 67.639999 2.280000 23.280001
44 98.519997 1.710000 10.280000
45 96.389999 1.110000 59.340000
46 96.300003 0.670000 159.190002
47 45.939999 0.620000 169.539993
48 20.280001 1.780000 145.460007
49 44.080002 1.570000 169.839996
50 80.910004 2.130000 67.699997

@ -1,50 +1,50 @@
1 7062 115.95 0 1
2 9392 446.75 0 0
3 7920 418.33 1 0
4 371 288.01 0 0
5 3762 175.85 0 0
6 3427 404.05 0 0
7 6861 148.23 0 0
8 57 201.61 0 0
9 6877 348.38 1 0
10 2497 66.83 0 0
11 5511 34.30 0 0
12 3377 236.79 0 0
13 8021 209.12 0 0
14 7696 283.08 0 0
15 4792 201.22 1 1
16 1423 334.40 0 0
17 919 360.44 0 0
18 3297 105.79 0 0
19 3569 410.50 0 0
20 457 69.42 0 0
21 8400 146.92 0 0
22 6401 205.69 0 0
23 4585 310.51 0 0
24 6228 406.27 0 0
25 635 12.86 0 0
26 9770 486.48 0 0
27 6919 67.96 0 0
28 6703 252.47 0 0
29 708 52.76 0 0
30 4440 425.78 0 0
31 5768 433.09 0 0
32 9810 442.02 0 0
33 6220 256.28 0 0
34 5317 473.44 0 0
35 3284 370.82 0 0
36 2998 426.58 0 0
37 8975 425.60 0 0
38 5877 106.48 0 0
39 1957 343.13 0 0
40 9020 378.99 0 0
41 9675 163.61 0 0
42 8637 288.33 0 0
43 5125 350.72 0 0
44 1318 79.63 0 0
45 2598 251.03 0 0
46 8815 302.61 0 0
47 8916 143.71 0 0
48 1503 452.92 0 0
49 7690 435.32 0 0
50 2999 57.94 0 0
1 7062 115.949997 1 0
2 9392 446.750000 0 0
3 7920 418.329987 1 0
4 371 288.010010 0 0
5 3762 175.850006 0 0
6 3427 404.049988 0 0
7 6861 148.229996 0 0
8 57 201.610001 0 0
9 6877 348.380005 0 1
10 2497 66.830002 0 0
11 5511 34.299999 0 0
12 3377 236.789993 0 0
13 8021 209.119995 0 0
14 7696 283.079987 0 0
15 4792 201.220001 1 1
16 1423 334.399994 0 0
17 919 360.440002 0 0
18 3297 105.790001 0 0
19 3569 410.500000 0 0
20 457 69.419998 0 0
21 8400 146.919998 0 0
22 6401 205.690002 0 0
23 4585 310.510010 0 0
24 6228 406.269989 0 0
25 635 12.860000 0 0
26 9770 486.480011 0 0
27 6919 67.959999 0 0
28 6703 252.470001 0 0
29 708 52.759998 0 0
30 4440 425.779999 0 0
31 5768 433.089996 0 0
32 9810 442.019989 0 0
33 6220 256.279999 0 0
34 5317 473.440002 0 0
35 3284 370.820007 0 0
36 2998 426.579987 0 0
37 8975 425.600006 0 0
38 5877 106.480003 0 0
39 1957 343.130005 0 0
40 9020 378.989990 0 0
41 9675 163.610001 0 0
42 8637 288.329987 0 0
43 5125 350.720001 0 0
44 1318 79.629997 0 0
45 2598 251.029999 0 0
46 8815 302.609985 0 0
47 8916 143.710007 0 0
48 1503 452.920013 0 0
49 7690 435.320007 0 0
50 2999 57.939999 0 0

@ -5,6 +5,7 @@
#include "main.h"
//TODO Non-terminé
void debugMenu(int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int clientID[], float cagnotte[], int suspended[], int isAdmin[], int tlogArticle, int tlogClient)
{
int choice;

@ -46,7 +46,7 @@ void errorHandling(int error)
printf("[ERREUR] - Le mot de passe est incorrect.\n");
break;
case -10:
printf("[ERREUR] - Le client est suspendu.\n");
printf("[ERREUR] - Votre compte est suspendu.\n");
break;
case -11:
printf("[ERREUR] - Le client n'est pas administrateur.\n");

Binary file not shown.

@ -10,9 +10,10 @@
* @param clientID: Tableau des identifiants client
* @param isAdmin: Tableau des statuts Administrateur des clients
* @param tlog: Taille logique des Tableaux
* @param suspended: Tableau des états de compte client
* @return Est Admin ? (1 > Oui, 0 > Non, -1 > Quitter)
*/
int login(int clientID[], int clientPassword[], int isAdmin[], int tlog, int *index)
int login(int clientID[], int clientPassword[], int isAdmin[], int suspended[], int tlog, int *index)
{
int id, password, found, tentative=3;
printf("Entrez votre identifiant: ");
@ -42,6 +43,12 @@ int login(int clientID[], int clientPassword[], int isAdmin[], int tlog, int *in
*index = searchTab(clientID, id, tlog, &found);
}
if(suspended[*index] == 1)
{
errorHandling(-10);
return -10;
}
printf("Entrez votre mot de passe: ");
scanf("%d%*c", &password);
while (password < 0)

@ -62,7 +62,7 @@ void global(void)
switch(choice)
{
case 1:
status = login(clientID, clientPassword, isAdmin, tLogClient, &index);
status = login(clientID, clientPassword, isAdmin, suspended, tLogClient, &index);
if(status == 1)
{
adminMenu(clientID, clientPassword, cagnotte, suspended, isAdmin, reference, weight, volume, unitPrice, &tLogItem, &tLogClient);
@ -95,7 +95,7 @@ void global(void)
break;
case 4:
sauvegardeDonnees(tLogItem, tLogClient, reference, weight, volume, unitPrice, clientID, clientPassword, cagnotte, isAdmin, suspended);
return;
break;
case 9:
debugMenu(reference, weight, volume, unitPrice, clientID, cagnotte, suspended, isAdmin, tLogItem, tLogClient);
break;
@ -106,6 +106,7 @@ void global(void)
}
choice = displayMenu();
}
sauvegardeDonnees(tLogItem, tLogClient, reference, weight, volume, unitPrice, clientID, clientPassword, cagnotte, isAdmin, suspended);
}
/**

@ -59,7 +59,7 @@ void reinit_basket(int *tlog_basket);
void basket_del_article(int basket_tab_ref[], int basket_tab_qte[], int *tlog_basket);
//! LOGIN
int login(int clientID[], int clientPassword[], int isAdmin[], int tlog, int *index);
int login(int clientID[], int clientPassword[], int isAdmin[], int suspended[], int tlog, int *index);
int signup(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int *tlog);
//! MENUS

@ -44,7 +44,7 @@ void clientMenu(float *weight, float *volume, float *price, int tabItemRef[], fl
printf("6\u2022 Déconnexion\n");
printf("=================================\n");
printf("Votre choix: ");
scanf("%d", &choice);
scanf("%d%*c", &choice);
system("clear");
@ -122,7 +122,7 @@ void adminMenu(int clientID[], int clientPassword[], float cagnotte[], int suspe
printf("10\u2022 Déconnexion\n");
printf("=================================\n");
printf("Votre choix: ");
scanf("%d", &choice);
scanf("%d%*c", &choice);
system("clear");

@ -131,6 +131,8 @@ int chargeClients(int clientID[], int clientPassword[], float cagnotte[], int su
*/
void sauvegardeDonnees(int tLogArticle, int tLogClient, int reference[], float weight[], float volume[], float unitPrice[], int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[])
{
printf("[DEBUG] - Sauvegarde des données...\n");
sleep(2);
sauvegardeArticles(reference, weight, volume, unitPrice, tLogArticle);
sauvegardeClients(clientID, clientPassword, cagnotte, suspended, isAdmin, tLogClient);
}
@ -159,6 +161,7 @@ void sauvegardeArticles(int reference[], float weight[], float volume[], float u
fprintf(article, "%d %f %f %f\n", reference[i], weight[i], volume[i], unitPrice[i]);
}
printf("[DEBUG] - Sauvegarde articles réussie.\n");
fclose(article);
}
@ -187,5 +190,6 @@ void sauvegardeClients(int clientID[], int clientPassword[], float cagnotte[], i
fprintf(client, "%d %d %f %d %d\n", clientID[i], clientPassword[i], cagnotte[i], suspended[i], isAdmin[i]);
}
printf("[DEBUG] - Sauvegarde clients réussie.\n");
fclose(client);
}
Loading…
Cancel
Save