From e423594cbb1bd54262b434f28690be288dfbbfee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20LAVERGNE?= Date: Fri, 10 Nov 2023 18:14:54 +0100 Subject: [PATCH] Ajout de la fonction d'opposition --- src/errorHandling.c | 5 +++-- src/exe | Bin 43704 -> 39512 bytes src/login.c | 7 +++++++ src/main.c | 6 ++---- src/main.h | 3 ++- src/menu.c | 35 ++++++++++++++++++++++++++++++++++- 6 files changed, 48 insertions(+), 8 deletions(-) diff --git a/src/errorHandling.c b/src/errorHandling.c index 4841ac5..38cac7a 100644 --- a/src/errorHandling.c +++ b/src/errorHandling.c @@ -15,7 +15,7 @@ void errorHandling(int error) //? Exemple d'erreurs (à adapter) if (error < 0) { - printf("\a"); // Bip d'erreur + printf("\a \x1B[31m"); // Bip d'erreur switch (error) { case -1: @@ -49,11 +49,12 @@ void errorHandling(int error) printf("[ERREUR] - Une erreur s'est produite.\n"); break; } + printf("\x1B[0m"); } } /** - * La fonction `debugHandling` aide au debug en écrivant du texte selon l'entrée. + * @brief La fonction `debugHandling` aide au debug en écrivant du texte selon l'entrée. * * @param code Entier qui représente l'entrée. */ diff --git a/src/exe b/src/exe index 57ce5e4754bf697ada68f0387ef147ba05df48dc..278a01480f64c2bf2090470624b1a3959a1bb920 100755 GIT binary patch literal 39512 zcmeHw3w+eYwf`gmc@(li(MHkw^FaX%As`?RBLuRrv55_j;FB&(c0*P-yKx^FxJI!t z>ULR;R$8_8mTGN5t);$hZ1s{5H0ZUxvBfsG)fyD98-q0}+SsCdzh_?i`)zg+?Y;kd zKc7E8*qxa(XU?2C=ggTi^ZWfa*V`+W=H}!ub>*=O7%z2M~E7gvI0@2cEc$v z%jxM4<_kQPs(RgDm8fTF=_O|gxJu3KNH&QkQJ;ug(`{+vR_zE(?FMDLLD^2Fy;2Y= zRq`a6&}WaNo1T`TjxLoFE?re`hTW9!y^0ryq+!{gN>#h%Xh(b=?WM%NLiU$UE`^eR zmCEkfbf0(KoLSR-?rA=+Khij@aqgUHb7mEV0!1_VxW|JLvZ-YkRkN|nmrlOm=H2lF zTejX_dB(kgpPlh?fcPdJh#uk4MfkEio|4H^y%^UG$T23T0ei{wn|cn&@^ug3Muxg+ zfE}L!J|PRdBn!MO3%nu=yej~7d^`3A|ohz6^ zs1+EsHNHT|!$KQFVNX4)Z3ue(;aV2*c{~lkt!Z>QYrTG#&%4QkA`G;~84A0CVQ0O| z>t|FZ`<%m;Rg^DY;+$DDvuL)?pU0f#t16vtPtdd83-ZBLl}mg9zh{+eosX!kuMhYo zHK#z$h{#8r3rn{CBikk@rSwg9oy#^MRr4@%igy&%-Y8*T_Ik(CY-lB9T*_Z5|I#Zb z!hrNg3cgLkH_L_!uF5^P33_A~q-%Bcn&8r9^Qwdi{w0Nsbif3+nc#yaxSFd}T`2h> z+G>sy+%Um~WC+UGWD{KZID!|O;C%fcAg;M4xY-XbGQpKB2;X6XL-6{lGQme{C}WqH z;52vCwblfO!t_;Vg6C@}V+|&FfeC&rdrShyBydau$0Tq}0>>oq|E~lb%?C$1V#8m( z9wACgdpI}Q?P%UJvQrBrIs0`~B_|%hx9#*r$WghD>ic?=xF-IQ$`so5b@TFXsZ1eP zUpp_qKxGQG`gZd2ZYooV)whk8e@SHut@>Jd`B5rUNY%HQmmj1ug>iiiynG*(DYWWa z%ggsrnL?_*Dqg;W$`nfVE#l>GQ<*}^zG7a^MY&c+MU2gOr#$-7HyzQ}9nA*@s#aCR zhi{q(QN+idz>^Z+i5UHfPhQ8^A=~NLggN3R%R#^qAATVv^9I8wLVUNPp2RmQ*=sv} zGx}nkG6nt_9DnvHluY^55gl-J{AHn|V=&K=^PJxjM?9^;6W>_#Cm4MR%Q;p@5KPobQ%MzvFE-#?+U8f~EHMUH4w!V!)1 zI-=D*j%a0fMby5xB3juFCI_+cOiceYnM8ir1<0Qz^2byD%OZa|@@+J@#2gN=A9h5a z1OAB`?gu<(KioW+6CTk#m>VA6KdiMsr?vI@PR;_lk46qet9xVi-l+X>{|w+d?s9bW z<~rh4haE9{!jaP*t3K?g`K=>9W-E2&h*bmlLX1Uoo9hqfpuqzBf$O_kTh|OBd4NdH z79^Y7a~$#UErP;lkhM#)z1MbTBFj0Qm4VaU0u~=*>Spf;wu0ObY~z@T**%%4a%Sgd zVfM(BQ~b7T${Cbf7PY?!1HF)Y!|tR#2QYx_c1!(&x)c>*8VY}{+nG_WR`N=Qg zvll4--Q18D5?kb|64hW!S#5UNzO_Kfb|Ub*?1#zT`o52^bhiH2hU6m_`H;T#w`8(e z+0Ki$EtkSE=$V;)j0^M_OF-t#P&uN@+$x>bQFsd>MJ2o;MN>&pqkkDCb&ca>>%(h1M@*9bCzCwZr8ic*TPM+g- z@(vA%+w(MZ|Jio(JuQGw22*y@oW)N5M_He#Sr390vprmGvWL=(OIMdxm#$jrxZ$9q zkk*`M2H%4AqfZR*WNU&a@m?eq(Uu-0aC$BKcrm`0S7Mdvj8zvpYIZxC6FCknHI$9E z?4;VRmNq0bT?BBO0B$z{r9Wt+QwvTZr~4_&|B|=*>wAu?+6x?0_Bf)wj^_3}M@J%; zFC&X^s&B93_*y;g6hY;u_4(%Gx1adz;EUtunN5hvvdvZTN_$X35QzzY_T_`yT4H?^(oQ zG5a2~cWvQ{#8fDD#J7$~pk1s*DD|aSb%6tZeEvk5hg)JTREwoN@=r1Q77GbdyY#`F zI=H*BW#?aMCR!26Foq!ZzB?3=n~d=KDT)Q?Kb?DSc;H?x4(DKT!0<4G1p^=0F73d2 zv@=${2SEh*8rJ$bC=h3o!nQ9)fmoIlT1^zpEENoE1-q4PAJ{JG;A%ys?oC!ctty{J zr6wdRVGN>Wds-#T;sDmX-ZX*$(^A+2u$Bu*0Sp0M)}0a{F%PI*bCpN((I$$Bm@WDq#sfaT zPYr2uCf<9WFI~;;qnZat+HQUfuqZ|%!<_i=rt>g)hvm}DJMn7dF_DtJpx^?9#Eod& zM`!T>G!h^LK>zh9JxC=Fm99qV6)Ihfl8C=vMGnwU30g`}+NdSE1k`}o6JJBV|2*Ja zNTt)LM6scpN;WD{Xm=Bpa;P*GrR`Mu;61E_D0HA8#y1Z2skKoGA}?GFapYY;7vDMI zk@(IH7xbTlhK~}JpMeVR??o#8kV@3waTtE$b}CVSi>TC0{iVoT_BPSVeYCYfKt_=d zT3mz{f~jlKEEU8o*YL-QI1Tjc8noPk`c(~&0&WRn24dCwFuAa`>PmcaIy#J1?~Ug6 zZ4rGh)(x43;LBQ2a}~kJ=r%0E$-Yw%ThIoA3@36Dn7RNo61NW|lcN4_po|!W&y_Wr z{EtvCqH;4sKFv_fKG4!`yU~jtKyrz0=S4e+(Xgok;wBU^3!BziBTxI>XU07L?iHERt zXrr9mOlAmKP5W80AEEJY!>Ok80otW)H=IRDoo4)2(T`MZjqc|;!28eLgydv?n8blacPqXh(T;kamSQn!%Bh!G*3>SAZU8XmPyt z4)}N>FE3|{!GF1$>haIyZ4E7(RW4K+AGqkgOoy?4;fsX z#fiso)Pmi1A9-;2iBYzjzsrNY!=@GFcVJbmAYI7w6(m-Pj&TkIKG3Nn{si^mh__G| zP#JZy9flFL4>mVpF1j!ZVi=B=Y;! zlKErg`WB$7B5sE~xdMrDHra^zK*C*!`6h(R_%X>QBK*YLityKo@ar_$<0U_*s(W-* zF;#VuoFW65h(|OpVOGkVlzC+|EAVvR8Dg;g*OkGK#F~gU;X;6978sb2<5pqFPY6Ti zQZ20_&8iM~hg^bPiJQPK&HVl^V<@N6Q2xCS^Zajo{D*NYn0QxYVZOs`E$1P$6VoTr zMt&9JWIBwpEbr!{%P#vMA@&UlEsdpa>d+0kJe%@Yi2Q8ISBd=BDPJb?YbZZg=E}X>#Ua3ym?$Gd+fWv1t4<2W``2sL& z3H9y)nwqG$A}>O{7*1(pm2j^VTKtA=Cx%=8ePhu&)>MqDLPxB+-4ToI1q$}NGyHiY)-b+%hc7IC!Pg4k8(26)_wEBUSM5;)6%?0N zB_oB&NCC7-hh&Jd6A?UFKpK^&e72TvLG)-j7xW4#e26s_B(59JSig@tj1jy&R*Zi3 zVy!?QmFNRU0^s&yjNoDreNHuNp|!VpPeK0-YD$AOh|pQ-Y*Aj2v6Z!MNk1(<) zIY6yQ(=_}qfMXTHGHSc|s&pfJ0A!Vs-HkjqGUx@C)I>JW4N>>N26~}@M9N>?_7S|! z*JyeHl~h^@p{GVdoUzVyAfk0e}N1m<6wl7 z$nfq1p}u#;C=JAwl?Q;Hj`*px3S&}|Ly6|4BkYAOVarX&RM?nU8yBFC7A+WGT1}y@A*OMPHw>qQ zh9kCSP*341+_LJyEvs&v%yXS|(1w5?@kL0NGc|&s5XJpVsR;Icr1Or)6nLy6$@oUxJ;88$(Ww<8S-AC1%i5fb(u?9TcF|7S!Kp)LQ|k!^=UM?6&D0q31D8GHv%sVT0ri zz`+BWZ1Od(dbu6FMw2~Haq!O?b)N;bLZgn692`0l2XvA^92}Ay_%zujK~@^yhtt)7 zp8%Z8z^zeNSWsWksNV*hWH4|f4y57Qac>DSfQ+Pf+sl<^YdMI8A=~Md3U9mYhmyGZ z9->t>Uh=+{LEE3rV!T;%HUKyu#5Ecex1e63;m-nYKCr>D#Ub3z#WF08vF0Gqq}%Cs zbo?K>DGV8>oD94 z@jQUO^`DO1%MF|e@Mi}c^y~m&`tEx=zF66;_<&`_hx#yqtoVRw{O0;W97zu@uphSF zb}n>8L&H5PTEF&kvD#WL{PgHG{D9DKw-)H{UomU=foaN2^Iw%3e&!qnddPyhNu$02 z_>nZc3XjAn4Zo|Yt+7y>s;O-ycqR>x6=e9*X3{X-^-5R5|FnjOnh#XWpBzc&gl6Xu zTLVx&W|GqFyv(|-vg+1AkOHrY1Dz-=HeRx}NGT`(Ph4!$<=&*>O9AIIwMm2C_@f#1 zat)s#Nxr%6?x4kMQJg^INvBsx^ynTXm^lZZOL40Y%ci<>H;6FX zLZ|I>(ZRYV?f@RboTUC4N$h9X(~UuCTv?0rGo@mRn;k(l|UC_RBr$^!lF=15vX>pwJ^IU=UZ>dq9EToFoc8>gL+_ zG=*RPK~b1TQIu)4yAU|iXvfiLAEm~Nk|z~dBdNaug5H!!hob8a^vv&;QqR4r z=N8@bO7sj$;x{IDYm$se#<2QfFw$65si~2vdkC zg&|jTD7g^sELG68;GJ&h(!J8u4bzio{-Z;jmw{Z0_ot_*Zmt#G2;RRYSlu+9`2LFI zdqf*WG5yy{VbYi?!4&5QQsdzf*)W$fDlU}kF-p- zZ8_<%JV(^W@|)>ySoE3g6yHXl*v6Bsckv`n=iqpl(gT7LzlRt8MVh;5 z;Yav9WZ^M?iey}LB_r$=msB~gh;3Ejq8NRH5s zd^BUob9*gZ+}vLlfFKO6T{_3z$a6pPzO7*R+pxL!ZI|wTAC~Ywp77Izxj_`fSiC9+ zwp0);Q2Q@heX+!gLk9I=sJK0dbwZvU#7o9uNQsKyaV<)LOqi0dTAXE$!EJ^A@M;anxH{jL|I~;4SFk+|-_!M@_hYdvHp3 zOZ&#QjAMXe56;_t-JC3yl~_zUQT0R!jeKCr3(m9bDo~F77sep zDW8lx`Y%Zz9uJ7wJo|x&4fK1&Sp<;!?O8FKBqsR_!knPpUGKHq1QDv@E>}Mxotgyl z08K?gNf@QNf$|3O>2WfbCsaxsAuc%ms55G??T1=!{b{y#P!ruG9%4e|A$UBNUb&aY zOg!MSwi1UiQG3F~i9W{qB086QyVR50P&qB&{K@T1op9FD?F2y6?!szVoaOWe0A_7~ zVSuYcboQ#Ht;a}a3iiZlLM8;Tg4X=xc4%vKi^>EZptsAN&C|9m+5tY@@{ae9M%1<1P)jX4}-50VNWm51iLoG*D{;ygO6u>#t69^hRqQwcNS=#`1 z#5Vu14RIqoNHJL^BSZHbAwdXcTlza}NBbez(ran9)O@hmvO|tm_F}t+yB~DR$$Hy~ zR$Q$AaP-xK6jMa#?hft)(alMFA>AjEw>3O4AbREwg|8Rp7--euyN| z{%=@Gqqtq)+%&)ht^%*n(E5QAIpdlpscK3r&r&(WdlD$Q;#*YsB8d8iVB zF=@rxQfZ`DXyh>7c{#!ew&S^8J%U*n0gaCYei!oeWY}~JLBXgV-RT=KYoS4GwsC_v zTHS_K4V!IjlH;?>h-kdz5+sSWL^EB!hp<7A^2MVPkZsc|X8DR|Mk2kd1QdbkRM``2!YL>Y zMq<^ym^TTcDDTbUy$U=qfEd|2oA{FgdP3#HjIC1%XFaJ`#l+i0vtws*byp!tTur>2 z)QyKZl8NEi!>I6LTL#6*r7YVX0r%Xvy(2<6x_5j2BV8j25Qr7f=q=9`!&F~7QwSbA zDVDgi%jC20Hq0uMz~`dw2%><%_m)K~_kiTJL^57-8Ir_0v>GCgj}W9QaXgSg95lW0 zTt@mJNJ=sJc9?ZxrPU0(CH{;yZPnGgDmqr^rKTg(38tiCk9NQ;=x_oDd9zpX7xn%=nY-bXF04zasjVvgli-$?>l_nmcnG^Ina-jj28I@-^zAX}q(@ zI>89{36{4|0X%jclfW?v9FxE?3H-N8fPNRM%)YpKnK8|%^!Ou&+k^k>BJ1ZHYzAPZ zwYA=wI#1B>c|rz$+sa#m44au=Q{(e`{P;Po)q!x(W7O0Iyp13*(LM2;8o{pJkBUu( z&t(KVchq+72zvZA)RWOo=9-&kcI(o*ywzaI%^1oykYMK z&r|~(e2zXu4;5C16b~N5KMB7ah9BlK8eAcu20gX-sV?w5sv+QYhemA(_#*Wv1ig($ z=QfNY;`fF-cVNh)Cf17oyaP3E5RBAg*a5>GF@&_t17>=hnGoISqpeL1HWR)Y1teJk zZE)S_-mD`7SH=>KFsjD2-X92uJ)=UA5PmMr?QxIthDzP__$@OzDvZr76|+^65fHj3WcX&kOwDyxcp#~St3U8<(;P;|kIsvag z6v2cHL7tLAip{EEV4bgXJI3e>1VemkxiD*M!VydoH|*1(nGEIdmZtG#XgCSl4MMp? zTbkODY1O&v8w|{gkjJ~;-?_sWYN?V>bGu1iH>Rq$){9|StP!|oJnPhy(-AVfvU8iH zYQ^^$^#KT(PuY-%OWfB2#H>S8Lvrt_hrsxlzaSmg22TyerDq!vjE+@L3zMp6U5G6*e3W(Cm&F z5OoBmfbn`8T)rY!?t^QKgn&V-!9=%-K+$Msk%QU%APBlN-)YAAnG#5&W$DKxZzB*f zij9z0@E8h2>RhnkO~OgR5eqI%d|2f7nOuDCp7eMv{aEI1c10bd|*o-3M_3u7uEWzx+ zFav%zQvk~SA^6Y+atZ8Q0a{8coe^jdAq(KM0RO=jV>zuTo*RhG zm4OIkM}twpE*y;rmDsr)BNb*V_$-1WjPfEv@?!8I5TMwC2Uu)2ul0msP!_s~I3&g# z!cdlFG8%3(+AkfAyub5eGItUUOJMAar`U3+Tx{txg z!@^C#SJ2$8&!pd!uOj)W`JRPf+V1W%_B&bDKvyt`Eh3qj%Luu=@N9ZHWJ?finHM)P zTuU^Hpn&W$`6 z;K8=HM${|)&`#53sEyiGgqnQuljzhKAx%gXY0K^oV($psrEMH6ImkCLp(&({8rqzj z^dS7KDI}OwGl@t}3Qf{WHhLGz{l7B~vL@J*-1}3Qh4>Bz30Y+p8;!kIv`V$J?ls7Z zip>BC;HXuO-La78{D0)U;*0g25&%D-pq--}0ylb-o@M=zGX;|j#py;m4K8PO9zz>` zzN0o7jEHM$O@!dT8#9qH+nvA}$_`hN8dg^QK+Pe&PJA9^2@8N9Kva(@r%o&Wn_Yn7 z-x3Z(H`3pHVeS=Ocmw=${d$9a6g-?<&9c?hQ>>p06oU8(t%A~eKuQVge% zK5uVQzJjrJ5jXxsfDkdx%V1^GX6QW^_MiysHelO@$cuz4#>?djKY)mh&w=b*exW`} zVYb-u1pNGHG!=7_`iCefVx&Z?PABx-e5AqCPT zoabyZ1vQ(u{ zev6_;98*m4%G09;pR4ncFk_OBtJRS>pRe#OYG0^HXJtxE#MMLft_DEId@1_=2#p(> z#wKe$Klh@OEY2QL${-g=gMxT2l+@CyH7T~23k4ggb=*ZebUGl{1}EvHNTdk~k*a2c zEy4L5ZXsb4sJ2-K92rjQHa2kk1xG?6nw;Q3#WkE;>pakywD0zd^FK(#Bn#ZP(B1Kg zkz(km=<*4cB9R)pToY&lxM0=7PYA)$QKRl=^R9dDrt7JNL8iuC6mAT|@^C9d{Ksh) zzqh90q6*(`c8wWvG%uuTxy#O(khg&Tb`zfXW{ZBDOtvFm@BkjvL24jvMLPT^I4i+J zowp!0kp2njBBV2anoO=GIMU5XUq`wP=>BLYac@UJm5c!_DDD4XLYKO ze(TX>vH|ISq^(F_emt4niL~`e>|K#w{V&Pn0MebmOePEPyASP1i;;f#G}6E}yDuEAMQ;c&*D!+FqLq$B@5nY;w)Yu(9YBho`i z??QSh9>!@y>OtCr^lGGoNIyYZcpPKr;(@ZcNUz6Je3u}76KNyTQoOi!7t$B;Dqb7X zV!RC5gLJ{GXpgk&&uEWdDBp>6EmFGhD<%BO*|dV?G#2Dc7&BsIYtD!Qf}e`dE%zsr zc-mfHneiDr8yJM&cpqd&*!cxZ^9wJued(H!o7uus7MyeL*=G`%+Lz&DfG%EJ(-*b9 z0-sL+ZzgDIe!)$-OU53TdmT6uw66ttEo@_@rT!vae=p$QLH)&+`W3qVX~17V{c217 za$Wxl!C`BcS?a5G{b9i8qy7rmqUJB};v7Oa6`)fA-vFCDU}^uFZht=N=fgJ3EbSNS z_C)ua+mp!`E$zE_d%Qcru0{Q5*z_{kg6_ZSw!B-1#fNV>u6ab>%;6lDniD?{1OJRi zaBs-c-!R?Zi$w3|$)uASXn9|z`8|mGa@5n4qq;utUEO{R=G1AJL%*`rKdI~Km6SHj zsr?rEuW0)8TPzzNOC}d$Zl&nY&m#ol--r6UFb50F?Y}ODNcCG#e+%koBTcn0&Q<466gsGno$e}?Y=PSk$@Us_?QU#9CH zNB!w|QK;5J-=*pAL%j#}H2?JYP4oH?>VE{^8?)5kq~$jr^KlHGCv{usJ2m}TsINl( zmn`j%)9qKGegS;?cuT#F*O!5281==NAHhasEjD_tc&S9S7)8H^;7H5;!J-V-h$f zfnyRlCV^uTI3|H(68OI$0rmHL)!*w?vFawt9N%M5o^J{n8!O>=UMMmr%d+~rz!PLy zoi&^y%j)j~)Bb`kRsZ3q$p9~7&qEhNW`6Zz4?q`=QTRpsI=a;ThSx+9e{Wt~g)-%P zDw(H5HpAhP0MeF)E<+Afov+B_8TMsS&FCD5E(I@?WyNftj^K!ea$KMU&WzDyw|NlBse^)-e-#O9_mdbRsOlxJjL8dp! z^t&?siA2osuy-fd8rmDZqts=K<$&&fTn!v7j<=zM&E)3KoP!htOC4>>%aEtL!Vi?Znm z&?i10UM2wiED_n0C4Av@0bhhNU1v#n!G2ZBoRmvC>%S(T z{45;VCgL-9s9&X@q9;C=pC$15**&sXNO%YSbPiqoo&nNzS^AAg{1X;)bjHtaku8DV zGx2$Y#IKW;{2mbS@09R)X?nj`!k;h%eSVJu+507YLb-tRGgoAv;BWymfB#P6-!)Z0 z`F#LndnNo$>BpL7qqik|+gAmE-Nd>Ha*Ik2jxvMFxroB%R~4$l&#xrI!{N2+oQ z!AKeCH+fJ6PWzo6tX)cyjad_e%1~6Qxbm0Qi0FU;F0Z;@O9GOoT8ddf!!8h zJ!(x`AO9}(0;c#S&7Hk0>FhgS!1+B6WD^ozGF!m;y%%IZmhfLm;ax1M*%%Cv`c0pA zg@Dt1X_fY%+}UXo{_)QflbxRm_?hMoW&S*lpU-|WM*#Re zHOkfm!=W%YtO8ehQg2{EVB9dNGq1=hKIPInk@HacCAMphH3 zZ}54-9(Pf3W(;R7o_BWQ!EDz?Cq3h|k=5eqM~~ATsjuINCZ>{;-mtKs@)w{vLwN1R zwcbNnyp!p3ZA8u!3B5*9D`)qt_3D@rTvPWwe=PA5th*4)flcIic>mE}vUHK8z`9RX*tzgb&72jA~TH*Z0(xofytDLJ!7gyMcs?WQw##s}Ja3MkLHNlMyVKu}h z{BaY4^0AjLb4Bnz@ls#Fg+9txRXS5@T2;A(l(dRoaV3^Qftq>qoV9pa$zQu@Sw;Ec zCC-^e=dp%JIHZd+i)LGUs({8>$c48K*1LjkPZ_;w1igFxXjTrvC~SH;i#a`RSJ=gB zVH_ckg(k%XBj;y?s!PMf(QhzulX%cO%Ctw9g@=ieltgpwDbfRl+VeU}CSx43k4VHfc6>hKJ83}pZ zRzp`~CaWQ%Wa1%HB@sSj)TCgNU9gI2#eXtDKE#B#)aV@qaGjF7urHFk)447bl2Re5 zGXB;AmsrrlXM!9=Z2<45TLdJykvb&>Nn1=eMbf;~Ov>bRGrYeSwvcr?Vd8Q!>IoqX zMNA0Mud-P_J(Lf#Ob#*WF;S%clywNN!nGOlc{~kiz1K9lXpZ9TuT55K#{<7okoLwJ zj|cDSGgcJZSdX{Ok%ogJty4J&+!JhIMR>p8Qv{|G)Zmqr5WUXG(PY7ix}eABq6RY8;0v=NZX`v>7OfAU81~?)wjy%M zKnn0lT;!>fZn(}3BB~^s3V$qGs62Xb)q88ueIQJf!5le*B3KP8!irE2M=zI~e>kD@ zO@utyD~U^;E2&hSZ^~+ptMZhdg%6!6s`l#qNu_5KlIg-SYq@BdG`CmhR4O$r*tA!* zUS%kLgfm9fzdFxSsp?-HL-9jQ6N!tE$1YLxug<+xx|4*1>o|NUtJD#C=x7X*mn?;jG-BM&!JC%L_u(`cDA86bx@D-n; zl$w94{4p{_OYyJvW4CM;7^)vp5`C#WrS$9l)PFG*OqXgu$poV;;nHPJwe5;3{=IXv zD0Gu^#zpH8O(n&T@;@{`6z|CDYqQ+&U8o$FtWo_cMB2`0YX8FR0%Js4gR~<1FXA-H A-2eap literal 43704 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 Faire opposition - //opposition(); + opposition(clientID, clientPassword, suspended, tLogClient); break; case 4: sauvegardeDonnees(tLogItem, tLogClient, reference, weight, volume, unitPrice, clientID, clientPassword, cagnotte, isAdmin, suspended); diff --git a/src/main.h b/src/main.h index 3cfefa9..3e4f692 100644 --- a/src/main.h +++ b/src/main.h @@ -69,4 +69,5 @@ int decrypt(int password); //! MENUS void adminMenu(int clientID[], int clientPassword[], float cagnotte[], int suspended[], int isAdmin[], int tabReference[], float tabWeight[], float tabVolume[], float unitPrice[], int *tlogItem, int *tlogClient); -void clientMenu(float *weight, float *volume, float *price, int tabItemRef[], float unitPrice[], float *cagnotte, int basket_tab_ref[], int basket_tab_qte[], float tabWeight[], float tabVolume[], int tlogItem, int *tlogBasket); \ No newline at end of file +void clientMenu(float *weight, float *volume, float *price, int tabItemRef[], float unitPrice[], float *cagnotte, int basket_tab_ref[], int basket_tab_qte[], float tabWeight[], float tabVolume[], int tlogItem, int *tlogBasket); +void opposition(int clientID[], int clientPassword[], int suspended[], int tlogClient) \ No newline at end of file diff --git a/src/menu.c b/src/menu.c index eec8827..e19887c 100644 --- a/src/menu.c +++ b/src/menu.c @@ -69,7 +69,7 @@ void clientMenu(float *weight, float *volume, float *price, int tabItemRef[], fl } /** - * La fonction `adminMenu` permet à l'utilisateur administrateur de pouvoir utiliser des fonctions permettant + * @brief La fonction `adminMenu` permet à l'utilisateur administrateur de pouvoir utiliser des fonctions permettant * d'ajouter/supprimer/modifier des articles du panier/ des clients, et afficher les informations * du client/de l'article. * @@ -144,4 +144,37 @@ void adminMenu(int clientID[], int clientPassword[], float cagnotte[], int suspe break; } } +} + +/** + * @brief Pour faire opposition et débloquer son compte lorsqu'il est suspendu. + * @param clientID Tableau des identifiants client + * @param clientPassword Tableau des mots de passe + * @param suspended Tableau des états de compte + * @param tlogClient Taille logique du tableau des clients + * + * @return void +*/ +void opposition(int clientID[], int clientPassword[], int suspended[], int tlogClient) +{ + int id, password, index, found; + printf("Entrez votre identifiant: "); + scanf("%d%*c", &id); + index = searchTab(clientID, id, tlogClient, &found); + if (found == 0) + { + errorHandling(-7); + return; + } + printf("Entrez votre mot de passe: "); + scanf("%d%*c", &password); + if (password == clientPassword[index]) + { + suspended[index] = 0; + printf("Votre compte a été réactivé.\n"); + } + else + { + errorHandling(-9); + } } \ No newline at end of file