From 99d5e5244c1f30ce7aa7141b21a82fe93454e2cb Mon Sep 17 00:00:00 2001 From: morels Date: Thu, 12 Jun 2025 17:24:13 +0200 Subject: [PATCH 01/17] Orribile prima versione scritta da Samuele --- counter.c | 741 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 741 insertions(+) create mode 100644 counter.c diff --git a/counter.c b/counter.c new file mode 100644 index 0000000..d66e92a --- /dev/null +++ b/counter.c @@ -0,0 +1,741 @@ +#include +int main(void){ + + char control; + int selector; + int num; + int add; + int sp, sp5, sg, sg3, spi, spi5, c, c5, sh, sh2, t, t3, bo, bo3, bi, bi3, mh, mh3, p, o, b, shv, shv2, mhv, mhv3; + float p_sp = 0.5; + int p_sp5 = 2; + int p_sg = 1; + int p_sg3 = 2; + int p_spi = 1; + int p_spi5 = 4; + int p_c = 3; + int p_c5 = 10; + int p_sh = 3; + int p_sh2 = 5; + int p_t = 6; + int p_t3 = 12; + int p_bo = 5; + int p_bo3 = 11; + int p_mh = 10; + int p_mh3 = 25; + int p_p = 3; + int p_o = 1; + int p_b = 1; + int p_shv = 3; + int p_shv2 = 5; + int p_mhv = 10; + int p_mhv3 = 25; + float r_sp, tot; + float r_sg, r_spi, r_c, r_sh, r_t, r_bo, r_bi, r_mh, r_p, r_o, r_b, r_shv, r_mhv; + FILE *ptRsp = NULL; + FILE *ptWsp = NULL; + FILE *ptRsp5 = NULL; + FILE *ptWsp5 = NULL; + FILE *ptRsg = NULL; + FILE *ptWsg = NULL; + FILE *ptRsg3 = NULL; + FILE *ptWsg3 = NULL; + FILE *ptRspi = NULL; + FILE *ptWspi = NULL; + FILE *ptRspi5 = NULL; + FILE *ptWspi5 = NULL; + FILE *ptRc = NULL; + FILE *ptWc = NULL; + FILE *ptRc5 = NULL; + FILE *ptWc5 = NULL; + FILE *ptRsh = NULL; + FILE *ptWsh = NULL; + FILE *ptRsh2 = NULL; + FILE *ptWsh2 = NULL; + FILE *ptRt = NULL; + FILE *ptWt = NULL; + FILE *ptRt3 = NULL; + FILE *ptWt3 = NULL; + FILE *ptRbo = NULL; + FILE *ptWbo = NULL; + FILE *ptRbo3 = NULL; + FILE *ptWbo3 = NULL; + FILE *ptRbi = NULL; + FILE *ptWbi = NULL; + FILE *ptRbi3 = NULL; + FILE *ptWbi3 = NULL; + FILE *ptRmh = NULL; + FILE *ptWmh = NULL; + FILE *ptRmh3 = NULL; + FILE *ptWmh3 = NULL; + FILE *ptRp = NULL; + FILE *ptWp = NULL; + FILE *ptRo = NULL; + FILE *ptWo = NULL; + FILE *ptRb = NULL; + FILE *ptWb = NULL; + FILE *ptRshv = NULL; + FILE *ptWshv = NULL; + FILE *ptRshv2 = NULL; + FILE *ptWshv2 = NULL; + FILE *ptRmhv = NULL; + FILE *ptWmhv = NULL; + FILE *ptRmhv3 = NULL; + FILE *ptWmhv3 = NULL; + + while(1){ + printf("0 sticker piccoli\n50 sticker piccoli x5\n1 sticker grandi\n31 sticker grandi x3\n2 spillette\n52 spillette x5\n3 clipper\n53 clipper x5\n4 shopper\n24 shopper x2\n5 tazza\n35 tazza x3\n6 maglietta bordò\n36 maglietta bordò x3\n7 maglietta bianca\n37 maglietta bianca x3\n8 maglietta high\n38 maglietta high x3\n9 portachiavi\n10 occhiali da sole\n11 blocco note\n12 borse vecchie\n212 borse vecchie x2\n13maglietta high vecchia\n313 maglietta high vecchia x3\n100 resoconto\n198456 reset file\n"); + if( control = scanf("%d", &selector) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + switch(selector){ + case 0: + ptRsp = fopen("sp","r"); + if (ptRsp == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRsp,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRsp); + ptWsp = fopen("sp","w"); + fprintf(ptWsp,"%d",num); + fclose(ptWsp); + break; + case 50: + ptRsp5 = fopen("sp5","r"); + if (ptRsp5 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRsp5,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRsp5); + ptWsp5 = fopen("sp5","w"); + fprintf(ptWsp5,"%d",num); + fclose(ptWsp5); + break; + case 1: + ptRsg = fopen("sg","r"); + if (ptRsg == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRsg,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRsg); + ptWsg = fopen("sg","w"); + fprintf(ptWsg,"%d",num); + fclose(ptWsg); + break; + case 31: + ptRsg3 = fopen("sg3","r"); + if (ptRsg3 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRsg3,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRsg3); + ptWsg3 = fopen("sg3","w"); + fprintf(ptWsg3,"%d",num); + fclose(ptWsg3); + break; + case 2: + ptRspi = fopen("spi","r"); + if (ptRsg == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRspi,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRspi); + ptWspi = fopen("spi","w"); + fprintf(ptWspi,"%d",num); + fclose(ptWspi); + break; + case 52: + ptRspi5 = fopen("spi5","r"); + if (ptRspi5 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRspi5,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRspi5); + ptWspi5 = fopen("spi5","w"); + fprintf(ptWspi5,"%d",num); + fclose(ptWspi5); + break; + case 3: + ptRc = fopen("c","r"); + if (ptRc == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRc,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRc); + ptWc = fopen("c","w"); + fprintf(ptWc,"%d",num); + fclose(ptWc); + break; + case 53: + ptRc5 = fopen("c5","r"); + if (ptRc5 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRc5,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRc5); + ptWc5 = fopen("c5","w"); + fprintf(ptWc5,"%d",num); + fclose(ptWc5); + break; + case 4: + ptRsh = fopen("sh","r"); + if (ptRsh == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRsh,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRsh); + ptWsh = fopen("sh","w"); + fprintf(ptWsh,"%d",num); + fclose(ptWsh); + break; + case 24: + ptRsh2 = fopen("sh2","r"); + if (ptRsh2 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRsh2,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRsh2); + ptWsh2 = fopen("sh2","w"); + fprintf(ptWsh2,"%d",num); + fclose(ptWsh2); + break; + case 5: + ptRt = fopen("t","r"); + if (ptRt == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRt,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRt); + ptWt = fopen("t","w"); + fprintf(ptWt,"%d",num); + fclose(ptWt); + break; + case 35: + ptRt3 = fopen("t3","r"); + if (ptRt3 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRt3,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRt3); + ptWt3 = fopen("t3","w"); + fprintf(ptWt3,"%d",num); + fclose(ptWt3); + break; + case 6: + ptRbo = fopen("bo","r"); + if (ptRbo == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRbo,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRbo); + ptWbo = fopen("bo","w"); + fprintf(ptWbo,"%d",num); + fclose(ptWbo); + break; + case 36: + ptRbo3 = fopen("bo3","r"); + if (ptRbo3 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRbo3,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRbo3); + ptWbo3 = fopen("bo3","w"); + fprintf(ptWbo3,"%d",num); + fclose(ptWbo3); + break; + case 7: + ptRbi = fopen("bi","r"); + if (ptRbi == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRbi,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRbi); + ptWbi = fopen("bi","w"); + fprintf(ptWbi,"%d",num); + fclose(ptWbi); + break; + case 37: + ptRbi3 = fopen("bi3","r"); + if (ptRbi3 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRbi3,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRbi3); + ptWbi3 = fopen("bi3","w"); + fprintf(ptWbi3,"%d",num); + fclose(ptWbi3); + break; + case 8: + ptRmh = fopen("mh","r"); + if (ptRmh == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRmh,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRmh); + ptWmh = fopen("mh","w"); + fprintf(ptWmh,"%d",num); + fclose(ptWmh); + break; + case 38: + ptRmh3 = fopen("mh3","r"); + if (ptRmh3 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRmh3,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRmh3); + ptWmh3 = fopen("mh3","w"); + fprintf(ptWmh3,"%d",num); + fclose(ptWmh3); + break; + case 9: + ptRp = fopen("p","r"); + if (ptRp == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRp,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRp); + ptWp = fopen("p","w"); + fprintf(ptWp,"%d",num); + fclose(ptWp); + break; + case 10: + ptRo = fopen("o","r"); + if (ptRo == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRo,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRo); + ptWo = fopen("o","w"); + fprintf(ptWo,"%d",num); + fclose(ptWo); + break; + case 11: + ptRb = fopen("b","r"); + if (ptRb == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRb,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRb); + ptWb = fopen("b","w"); + fprintf(ptWb,"%d",num); + fclose(ptWb); + break; + case 12: + ptRshv = fopen("shv","r"); + if (ptRshv == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRshv,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRshv); + ptWshv = fopen("shv","w"); + fprintf(ptWshv,"%d",num); + fclose(ptWshv); + break; + case 212: + ptRshv2 = fopen("shv2","r"); + if (ptRshv2 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRshv2,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRshv2); + ptWshv2 = fopen("shv2","w"); + fprintf(ptWshv2,"%d",num); + fclose(ptWshv2); + break; + case 13: + ptRmhv = fopen("mhv","r"); + if (ptRmhv == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRmhv,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRmhv); + ptWmhv = fopen("mhv","w"); + fprintf(ptWmhv,"%d",num); + fclose(ptWmhv); + break; + case 313: + ptRmhv3 = fopen("mhv3","r"); + if (ptRmhv3 == NULL){ + printf("file non aperto\n"); + break; + } + fscanf(ptRmhv3,"%d", &num); + printf("quantità venduta?\n"); + if( control = scanf("%d", &add) != 1){ + if(control == EOF) break; + scanf("%*[^\n\r]"); + break; + } + num = num + add; + fclose(ptRmhv3); + ptWmhv3 = fopen("mhv3","w"); + fprintf(ptWmhv3,"%d",num); + fclose(ptWmhv3); + break; + case 100: + ptRsp = fopen("sp","r"); + fscanf(ptRsp,"%d",&sp); + fclose(ptRsp); + ptRsp5 = fopen("sp5","r"); + fscanf(ptRsp5,"%d",&sp5); + fclose(ptRsp5); + ptRsg = fopen("sg","r"); + fscanf(ptRsg,"%d",&sg); + fclose(ptRsg); + ptRsg3 = fopen("sg3","r"); + fscanf(ptRsg3,"%d",&sg3); + fclose(ptRsg3); + ptRspi = fopen("spi","r"); + fscanf(ptRspi,"%d",&spi); + fclose(ptRspi); + ptRspi5 = fopen("spi5","r"); + fscanf(ptRspi5,"%d",&spi5); + fclose(ptRspi5); + ptRc = fopen("c","r"); + fscanf(ptRc,"%d",&c); + fclose(ptRc); + ptRc5 = fopen("c5","r"); + fscanf(ptRc5,"%d",&c5); + fclose(ptRc5); + ptRsh = fopen("sh","r"); + fscanf(ptRsh,"%d",&sh); + fclose(ptRsh); + ptRsh2 = fopen("sh2","r"); + fscanf(ptRsh2,"%d",&sh2); + fclose(ptRsh2); + ptRt = fopen("t","r"); + fscanf(ptRt,"%d",&t); + fclose(ptRt); + ptRt3 = fopen("t3","r"); + fscanf(ptRt3,"%d",&t3); + fclose(ptRt3); + ptRbo = fopen("bo","r"); + fscanf(ptRbo,"%d",&bo); + fclose(ptRbo); + ptRbo3 = fopen("bo3","r"); + fscanf(ptRbo3,"%d",&bo3); + fclose(ptRbo3); + ptRbi = fopen("bi","r"); + fscanf(ptRbi,"%d",&bi); + fclose(ptRbi); + ptRbi3 = fopen("bi3","r"); + fscanf(ptRbi3,"%d",&bi3); + fclose(ptRbi3); + ptRmh = fopen("mh","r"); + fscanf(ptRmh,"%d",&mh); + fclose(ptRmh); + ptRmh3 = fopen("mh3","r"); + fscanf(ptRmh3,"%d",&mh3); + fclose(ptRmh3); + ptRp = fopen("p","r"); + fscanf(ptRp,"%d",&p); + fclose(ptRp); + ptRo = fopen("o","r"); + fscanf(ptRo,"%d",&o); + fclose(ptRo); + ptRb = fopen("b","r"); + fscanf(ptRb,"%d",&b); + fclose(ptRb); + ptRshv = fopen("shv","r"); + fscanf(ptRshv,"%d",&shv); + fclose(ptRshv); + ptRshv2 = fopen("shv2","r"); + fscanf(ptRshv2,"%d",&shv2); + fclose(ptRshv2); + ptRmhv = fopen("mhv","r"); + fscanf(ptRmhv,"%d",&mhv); + fclose(ptRmhv); + ptRmhv3 = fopen("mhv3","r"); + fscanf(ptRmhv3,"%d",&mhv3); + fclose(ptRmhv3); + r_sp = sp*p_sp + (sp5/5)*p_sp5; + r_sg = sg*p_sg + (sg3/3)*p_sg3; + r_spi = spi*p_spi + (spi5/5)*p_spi5; + r_c = c*p_c + (c5/5)*p_c5; + r_sh = sh*p_sh + (sh2/2)*p_sh2; + r_t = t*p_t + (t3/3)*p_t3; + r_bo = bo*p_bo + (bo3/3)*p_bo3; + r_bi = bi*p_bo + (bi3/3)*p_bo3; + r_mh = mh*p_mh + (mh3/3)*p_mh3; + r_p = p*p_p; + r_o = o*p_o; + r_b = b*p_b; + r_shv = shv*p_shv + (shv2/2)*p_shv2; + r_mhv = mhv*p_mhv + (mhv3/3)*p_mhv3; + tot = r_sp + r_sg + r_spi + r_c + r_sh + r_t + r_bo + r_bi + r_mh + r_p + r_o + r_b + r_shv + r_mhv; + printf("resoconto vendite\nsticker piccoli %d di cui in bundle %d con un guadagno di %.02f euro\nsticker grandi %d di cui in bundle %d con un guadagno di %.02f euro\nspillette %d di cui in bundle %d con un guadagno di %.02f euro\nclipper %d di cui in bundle %d con un guadagno di %.02f euro\nshopper %d di cui in bundle %d con un guadagno di %.02f euro\ntazze %d di cui in bundle %d con un guadagno di %.02f euro\nmagliette bordò %d di cui in bundle %d con un guadagno di %.02f euro\nmagliette bianche %d di cui in bundle %d con un guadagno di %.02f euro\nmagliette high %d di cui in bundle %d con un guadagno di %.02f euro\nportachiavi %d con un guadagno di %.02f euro\nocchiali da sole %d con un guadagno di %.02f euro\nblocco note %d con un guadagno di %.02f euro\nborse vecchie %d di cui in bundle %d con un guadagno in euro di %.02f euro\nmagliette high vecchie %d di cui in bundle %d con un guadagno di %.02f euro\nguadagno totale di %.02f\n", sp+sp5, sp5, r_sp, sg+sg3, sg3, r_sg, spi+spi5, spi5,r_spi, c+c5, c5, r_c, sh+sh2, sh2,r_sh, t+t3, t3, r_t, bo+bo3, bo3, r_bo, bi+bi3, bi3, r_bi, mh+mh3, mh3,r_mh, p, r_p, o, r_o, b, r_b, shv+shv2, shv2, r_shv, mhv+mhv3, mhv3, r_mhv, tot); + break; + case 198456: + ptWsp = fopen("sp","w"); + fprintf(ptWsp,"0"); + fclose(ptWsp); + ptWsp5 = fopen("sp5","w"); + fprintf(ptWsp5,"0"); + fclose(ptWsp5); + ptWsg = fopen("sg","w"); + fprintf(ptWsg,"0"); + fclose(ptWsg); + ptWsg3 = fopen("sg3","w"); + fprintf(ptWsg3,"0"); + fclose(ptWsg3); + ptWspi = fopen("spi","w"); + fprintf(ptWspi,"0"); + fclose(ptWspi); + ptWspi5 = fopen("spi5","w"); + fprintf(ptWspi5,"0"); + fclose(ptWspi5); + ptWc = fopen("c","w"); + fprintf(ptWc,"0"); + fclose(ptWc); + ptWc5 = fopen("c5","w"); + fprintf(ptWc5,"0"); + fclose(ptWc5); + ptWsh = fopen("sh","w"); + fprintf(ptWsh,"0"); + fclose(ptWsh); + ptWsh2 = fopen("sh2","w"); + fprintf(ptWsh2,"0"); + fclose(ptWsh2); + ptWt = fopen("t","w"); + fprintf(ptWt,"0"); + fclose(ptWt); + ptWt3 = fopen("t3","w"); + fprintf(ptWt3,"0"); + fclose(ptWt3); + ptWbo = fopen("bo","w"); + fprintf(ptWbo,"0"); + fclose(ptWbo); + ptWbo3 = fopen("bo3","w"); + fprintf(ptWbo3,"0"); + fclose(ptWbo3); + ptWbi = fopen("bi","w"); + fprintf(ptWbi,"0"); + fclose(ptWbi); + ptWbi3 = fopen("bi3","w"); + fprintf(ptWbi3,"0"); + fclose(ptWbi3); + ptWmh = fopen("mh","w"); + fprintf(ptWmh,"0"); + fclose(ptWmh); + ptWmh3 = fopen("mh3","w"); + fprintf(ptWmh3,"0"); + fclose(ptWmh3); + ptWp = fopen("p","w"); + fprintf(ptWp,"0"); + fclose(ptWp); + ptWo = fopen("o","w"); + fprintf(ptWo,"0"); + fclose(ptWo); + ptWb = fopen("b","w"); + fprintf(ptWb,"0"); + fclose(ptWb); + ptWshv = fopen("shv","w"); + fprintf(ptWshv,"0"); + fclose(ptWshv); + ptWshv2 = fopen("shv2","w"); + fprintf(ptWshv2,"0"); + fclose(ptWshv2); + ptWmhv = fopen("mhv","w"); + fprintf(ptWmhv,"0"); + fclose(ptWmhv); + ptWmhv3 = fopen("mhv3","w"); + fprintf(ptWmhv3,"0"); + fclose(ptWmhv3); + break; + + } + } +} From 4d9eba1512e8f977e1dfd5152b656c555de6e562 Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Thu, 12 Jun 2025 22:06:36 +0200 Subject: [PATCH 02/17] primo commit --- main.c | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++ makefile | 33 +++++++++++ newCounter | Bin 0 -> 21568 bytes 3 files changed, 202 insertions(+) create mode 100644 main.c create mode 100644 makefile create mode 100755 newCounter diff --git a/main.c b/main.c new file mode 100644 index 0000000..970fd8c --- /dev/null +++ b/main.c @@ -0,0 +1,169 @@ +/* +* [Guida NCURSES](https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/intro.html) +* Product Manager +* +* Controllare se file esiste +* Listare prodotti con prezzo da file +* Aggiungere prodotto con prezzo a file +* Listare copie vendute di prodotto da file +* Aggiungere copie venduto di prodotto a file +* Cambiare nome dei file con interagisce +* Calcolare la somma delle entrate dati i file +*/ + +#include +#include +#include + +// Prototipi +int runMainMenu(); +WINDOW *create_newwin(int height, int width, int starty, int startx); +void destroy_win(WINDOW *local_win); +void print_menu(WINDOW *menu_win, int highlight); +int getCount(); +void changeFile(); +int checkIfFileExists(); + +// Costanti +char productPricesFileLocation[64]="./productPricesSetting.txt"; +char countFileLocation[64]="./count.txt"; +FILE *productPrices; +FILE *count; + +char *mainMenu[] = { + "Segna vendita", + "Vedi vendite", + "Vedi prodotti", + "Gestisci prodotti", + "Opzioni", + "Exit" +}; +int n_mainMenu = sizeof(mainMenu) / sizeof(char *); + + + + + +// Funzioni +int main(){ + initscr(); + noecho(); + curs_set(0); + raw(); + refresh(); + + int running = 0; + while(running != 6){ + running = runMainMenu(); + } + + endwin(); + return 0; +} + + + +int runMainMenu(){ + WINDOW *mainWin; + int startx, starty, width, height; + height = LINES / 2; + width = COLS / 2; + starty = 0; + startx = 0; + mainWin = create_newwin(height, width, starty, startx); + + int highlight = 1; + int choice = 0; + int c; + + keypad(mainWin, TRUE); + mvwprintw(mainWin, 1, 2, "Usa le freccette ed invio per scegliere un'opzione!"); + refresh(); + print_menu(mainWin, highlight); + while(1) + { c = wgetch(mainWin); + switch(c) + { case KEY_UP: + if(highlight == 1) + highlight = n_mainMenu; + else + --highlight; + break; + case KEY_DOWN: + if(highlight == n_mainMenu) + highlight = 1; + else + ++highlight; + break; + case 10: + choice = highlight; + break; + default: + mvwprintw(mainWin, height - 2, 2, "Hai premuto il tasto '%c'", c, c); + refresh(); + break; + } + print_menu(mainWin, highlight); + if(choice != 0) /* User did a choice come out of the infinite loop */ + break; + } + mvprintw( LINES - 1 , 0, "Hai premuto il tasto %s\n . . .", mainMenu[choice - 1]); + clrtoeol(); + refresh(); + destroy_win(mainWin); + + return choice; +} + + +WINDOW *create_newwin(int height, int width, int starty, int startx) +{ WINDOW *local_win; + + local_win = newwin(height, width, starty, startx); + box(local_win, 0 , 0); + wrefresh(local_win); + + return local_win; +} + +void destroy_win(WINDOW *local_win) +{ + wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' '); + wrefresh(local_win); + delwin(local_win); +} + +void print_menu(WINDOW *menu_win, int highlight) +{ + int x, y, i; + + x = 3; + y = 3; + box(menu_win, 0, 0); + for(i = 0; i < n_mainMenu; ++i) + { if(highlight == i + 1) /* High light the present choice */ + { wattron(menu_win, A_REVERSE); + mvwprintw(menu_win, y, x, "%s", mainMenu[i]); + wattroff(menu_win, A_REVERSE); + } + else + mvwprintw(menu_win, y, x, "%s", mainMenu[i]); + ++y; + } + wrefresh(menu_win); +} + + + +int checkIfFileExists(){ + +} + +void changeFile(){ + +} + +int getCount(){ + +} + diff --git a/makefile b/makefile new file mode 100644 index 0000000..d0ae140 --- /dev/null +++ b/makefile @@ -0,0 +1,33 @@ +# Makefile per un programma C con ncurses su Linux x64 + +# Variabili +CC = gcc +CFLAGS = -Wall -g -std=c11 +NCLUDE_DIRS = ./ +LDLIBS = -lncurses -lncursesw + +# Nome del programma +TARGET = newCounter + +# File sorgente +SRC_FILES = main.c + +# Nome dell'eseguibile +EXECUTABLE = $(TARGET) + +# Default target +all: $(EXECUTABLE) + +# Regole di compilazione +$(EXECUTABLE): $(SRC_FILES) + $(CC) $(CFLAGS) $(SRC_FILES) -o $(EXECUTABLE) $(LDLIBS) + +# Regole per la pulizia (rimuove l'eseguibile e i file oggetto) +clean: + rm -f $(EXECUTABLE) *.o + +# Regole per la creazione di file oggetto (opzionale, ma consigliata per una compilazione più veloce) +%.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ + + diff --git a/newCounter b/newCounter new file mode 100755 index 0000000000000000000000000000000000000000..0dd198f254ae1197086aa5d15a54271d1622e663 GIT binary patch literal 21568 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 Date: Fri, 13 Jun 2025 00:48:23 +0200 Subject: [PATCH 03/17] Pierosforo --- main.c | 113 +++++++++++++++++++++++++++++++++++++++++++++++------ newCounter | Bin 21568 -> 22760 bytes 2 files changed, 100 insertions(+), 13 deletions(-) diff --git a/main.c b/main.c index 970fd8c..15dff74 100644 --- a/main.c +++ b/main.c @@ -13,18 +13,21 @@ #include #include +#include #include // Prototipi int runMainMenu(); +void warning(char *string); WINDOW *create_newwin(int height, int width, int starty, int startx); void destroy_win(WINDOW *local_win); -void print_menu(WINDOW *menu_win, int highlight); +void print_menu(WINDOW *menu_win, int y, int x, int highlight); +void word_wrap_print(WINDOW *win, int start_y, int start_x, int max_width, const char *str); int getCount(); void changeFile(); int checkIfFileExists(); -// Costanti +// Globali char productPricesFileLocation[64]="./productPricesSetting.txt"; char countFileLocation[64]="./count.txt"; FILE *productPrices; @@ -47,6 +50,7 @@ int n_mainMenu = sizeof(mainMenu) / sizeof(char *); // Funzioni int main(){ initscr(); + //initialize options noecho(); curs_set(0); raw(); @@ -55,6 +59,13 @@ int main(){ int running = 0; while(running != 6){ running = runMainMenu(); + switch(running) { + case 5: + warning("Questa è una stringa molto lunga . . . Ma anche un test, che ti devo dire, ci proviamo a fare cose che non sono mai state fatte, oltretutto che divertimento ci sarebbe senza esperienze nuove?"); + break; + case 6: + break; + } } endwin(); @@ -77,37 +88,41 @@ int runMainMenu(){ int c; keypad(mainWin, TRUE); - mvwprintw(mainWin, 1, 2, "Usa le freccette ed invio per scegliere un'opzione!"); + mvwprintw(mainWin, 2, 2, "Usa le FRECCETTE ed INVIO per scegliere un'opzione!"); + mvwprintw(mainWin, 3, 2, "In alternativa ci sono J e K con SPAZIO!"); refresh(); - print_menu(mainWin, highlight); + print_menu(mainWin, 6, width / 2 - 10, highlight); while(1) { c = wgetch(mainWin); switch(c) { case KEY_UP: + case 'k': if(highlight == 1) highlight = n_mainMenu; else --highlight; break; case KEY_DOWN: + case 'j': if(highlight == n_mainMenu) highlight = 1; else ++highlight; break; case 10: + case 32: choice = highlight; break; default: - mvwprintw(mainWin, height - 2, 2, "Hai premuto il tasto '%c'", c, c); + mvprintw(LINES - 2, 1, "Il tasto '%c' non e' un tasto valido . . .", c); refresh(); break; } - print_menu(mainWin, highlight); + print_menu(mainWin, 6, width / 2 - 10, highlight); if(choice != 0) /* User did a choice come out of the infinite loop */ break; } - mvprintw( LINES - 1 , 0, "Hai premuto il tasto %s\n . . .", mainMenu[choice - 1]); + mvprintw( LINES - 2 , 1, "Avvio opzione '%s' . . . ", mainMenu[choice - 1]); clrtoeol(); refresh(); destroy_win(mainWin); @@ -115,6 +130,23 @@ int runMainMenu(){ return choice; } +void warning(char *string){ + WINDOW *warningWin; + int startx, starty, width, height; + height = LINES / 2 - 2; + width = COLS / 2; + starty = LINES / 2; + startx = 0; + warningWin = create_newwin(height, width, starty, startx); + + mvwprintw(warningWin, 2, 2, "ATTENZIONE! E' avvenuto un errore . . . "); + word_wrap_print(warningWin, 4, 3, width - 5, string); + + wrefresh(warningWin); + getch(); + destroy_win(warningWin); +} + WINDOW *create_newwin(int height, int width, int starty, int startx) { WINDOW *local_win; @@ -128,17 +160,14 @@ WINDOW *create_newwin(int height, int width, int starty, int startx) void destroy_win(WINDOW *local_win) { - wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' '); + wborder(local_win, ':', ':', '.', '.', '+', '+', '+', '+'); wrefresh(local_win); delwin(local_win); } -void print_menu(WINDOW *menu_win, int highlight) +void print_menu(WINDOW *menu_win, int y, int x, int highlight) { - int x, y, i; - - x = 3; - y = 3; + int i; box(menu_win, 0, 0); for(i = 0; i < n_mainMenu; ++i) { if(highlight == i + 1) /* High light the present choice */ @@ -153,10 +182,67 @@ void print_menu(WINDOW *menu_win, int highlight) wrefresh(menu_win); } +void word_wrap_print(WINDOW *win, int start_y, int start_x, int max_width, const char *str) { + int y = start_y; + int x = start_x; + int line_length = 0; + int word_length = 0; + const char *word_start = str; + while (*str) { + // Trova la prossima parola + if (*str != ' ' && *str != '\n' && *str != '\t') { + str++; + continue; + } + + // Calcola lunghezza parola corrente + word_length = str - word_start; + + // Gestione wrap + if (line_length + word_length > max_width) { + y++; + x = start_x; + line_length = 0; + } + + // Stampa parola + for (int i = 0; i < word_length; i++) { + mvwaddch(win, y, x++, word_start[i]); + } + line_length += word_length; + + // Gestione spazi + if (*str == ' ' || *str == '\t') { + if (line_length < max_width) { + mvwaddch(win, y, x++, ' '); + line_length++; + } else { + y++; + x = start_x; + line_length = 0; + } + } else if (*str == '\n') { + y++; + x = start_x; + line_length = 0; + } + + word_start = ++str; + } + + // Stampa ultima parola + word_length = strlen(word_start); + if (line_length + word_length > max_width) { + y++; + x = start_x; + } + mvwprintw(win, y, x, "%s", word_start); +} int checkIfFileExists(){ + return 0; } void changeFile(){ @@ -165,5 +251,6 @@ void changeFile(){ int getCount(){ + return 0; } diff --git a/newCounter b/newCounter index 0dd198f254ae1197086aa5d15a54271d1622e663..c508b7bd51cf66fb0f1f09e533db889ecf0bc455 100755 GIT binary patch literal 22760 zcmeHv3v^V+nP%PFs#Xi37Xpk7h6@2>8>0uWfHBZQG;Vw!O0|cW|#>{CJB?w%<*KiIl(xL{KU@5uI1TG%+4|s&JN5-hGduoJ9x}m z`~CH3wJz$c&)IYK>^Vb8U4Q+5{jd6O-FxfSt-6l~nl_q-!F2MlwT!U66_Vmt6~kLq z0l?2zvQp&p*(aD6c!8kFdcOpym8sk_9{LoW$RzgzRquwg6rYCLLxLoiFO^T0H5#&V ziIW_sqQc$qy&}n{p{~!`vt&JU!F!c68s^GTYz7xgxxqE#;gD+g4BZ&zmkBnK8&YyZ zN>0P8$j6S^ z_DfDX$+`X0xL@&WsQqkFas~4wgBx}$ISt7Mr3WEL@%*?+caLq#UcTe!rvrtgp*k!g zCbghbUwdFnD>DzVLGne{8_XDon=YJqr{YJ4gXEX?KK52i<&9&d-(Rx+zkdD5qIZ&y ze7UAO+O}d@O?Ug^?r1F4zqo(pip49IRVU-sON3mNvM1VI?yoQofq+DGO6L|mJ!|^H zfyd^4^GJ!L+?>Ay(v+LY>`Wf|kMhv3v`z+f^OmGPEimh@@ID*`oTQ(k3d(a zBuZoHA5g47k2_H>Y5F`quIMKfU7x3YiazL~vryxX=1{wxusfqk$4=~MZs?B3>>c5@ zZkvTdojvhbDCvX~PADWK-9!oU!*(X#O-)D zON9GaQ{$Gvc4o)g`=T)xNhOk@r0uZ2PTL`wws-;_v4*Wp+gZ>4-b6I!^s#oko0#|6 z2YSQptgk1&-)6D69qEdLr%y3OV^Jp=NwApRN6bm5ov@^n=(b~M4o>WdYEDlW^`TIt zKOE|a#=_mvM{S1c7&&7n`{-<6L4=4bJ8SAbksy`&cDleH^x98B@&!8Oao^~}Vzj3`txL@w*8 zmi{!CeXu+>8 z2EWNZrTF!IRQIPA)rsFw_eo9Ho%^Jpw2s~HG`_cfJl$tWyvs$OuIRlk`X>~<-$k!e z^g}LsgQ9=VMc=IGgX@?`bj{YWB*Ggxbh@YLG?YUx)kMH^Idr;@=yV~6K0^}$_4!G< z_5FdW_4!Hk+lio(K0k>*QxggLB~l1r$fC%7eu)s>ltq!3`z1njHS`dK898){g-(`V zmWZEzI^E@$C8A}IJ<7E?bTzaSj4N~KlLSR({v3L74n3GdpPWN)$)V@oM0e%T%X0Yl z=FrP?=v_HYHPUm)Bhd{E%uC!8+vBhL%`yM)s%Zsdf(zd<6yLgEHm2YH zOfdaFg98_@w(JPh4c5IGJi6xZz%x2+bv0wxI;zX&JOLC3;OLqUpdfgZ|C+$6>&`SB zn%Q8YLsK+*p={0};(J9w@V_bem%mKl?vH}$tHGCkwJ!M5bx+WEJ^1!V&QvJ)x zn7^-djFqW>kiL;l@U}t+I#&7cA0i6FfBU~iNB^4q9{v!e;SSK?)f{p;eRlW(pl1U& zsQ&WZ^d!lK>yV`bHwF&g;Eor$_i{O6@+UY>BtZS^7*SJi5C1-dh0L3;D4VqzehH4J zUw-M`ImXc2*VBQE8Gd>^W%z7>9!=TVz*Pd7=Bt_3E1A@ACU6n@e*yi$bm02gzCaGxdfAG#lIfq_OmsSAnW~5>!>7@Sw~zfH`rUoFvR75dj7l6Q14;TqxwGh>}9m_B$e!=DCg_RtIr zo9V!ChKF*A>A;l?x5rbio()_hKQqnOGObrLsVmgxv%~%5I=UHLZJJE(=j%uB{~Ps* zD@R*C3}%|o5np5a4fHtbM`!3-N*>QakhJ&jK>%?+vq)CGE>PL96xfetn`NaBUP-5h z)2$cN%@;EGZ@nnaf-6v1PEzC^`GtGLBaHs)PeB2z7spc+Um%?3g@hM>L_!0vTH2F+ z%5>IZIRZJRa?vCBt3L%lp%P~RJ4M+G_aQq&88s~EQaMAZq`DVBKzGRMu7&R5bn0Td z^+LLt&Y9tl?e{-I5&5mILnHqQ#xuA84I0$nJ4u&rXo2u*9t6NJt`nBtLxn!{_3|pW!XMwARk%H`!gJS0M+X8Ije)=oBf}qo z$g04NvZvSLOc5bKm@a{3EKGjt%jwk5(yc@3=ASmD1B02s&*&-{7(#!}UKvG~g@!@u z1S9lBPDt4g+5MJ7$5#|5(G5x#i=0Wpfxw_KGF7n#7vZ86K$k~Oq`HtKrFtiS4ac_9{sE8B2A+X+r-M<8sYS z{$HM@bx%s&+&U2uVo)a%#q5c}vM0YU?tt=)^ueSnOq0gU1T#2Yj+X4ekSC*J6F8UK zpZ@#%*<&j@*r&yP@R$UOBJRs#oR=Nhp=Gzytq9zTz^w?}ion0y2+;gHrR{cSENtz^ z8;__HW)IozQH9tN=}pAjCq?Lj` zyx54wI>S~^yxWOe-6<+pi@)Zu6^=!^Y_M4lMDDc+aiUhcy+3ZXM-w(E!pQz;xF>Ff zt&VWQwj%K)GH}M?F)JC5#Vx!iftj#lgTZki1yc#zNjWe`jP23=cEXAF*fAo27i!wt zY%6KU9t~S|ve!;TQG~`6-q@&Fa>iPdVXND=Hf{?vGz50+2v~Nz)wt!M#;q0vtYpOQ z?2h846x?4J7wxy_ia0jLtZ+BpQ^mqgbbnYFBri8vwzV1F$E@uw^$$00mCTT6?6#b6 z60R*=5LqZ%WiJ#l5ybs?@6#TaArtCZ{r>&YxTQ=&D7jDt)XGg5OvC3bFtjBw*9t7O z!uxS(Q!s;Y+lfRRp3CFF79^Q5)3cgpbnpnmX8me(l-|+p`IphrCjeWoj*h+x_$J^* zz}deU9WB7{?mfWyfSuPyM>hbz0@x1t?t72}d>vz&KLvan@KwNbfENMvI|<{_ZOrH| zH)c*Q^c_=lTI(?c`*#Ae4TUtvf;A?LEyJ(>m!qS8@UhbJjioa-l@<5-4zYE&ufAvL z{CS`54%LVvR(7`6w9smd$(Ql<& z5x5nBTM@Vwfm;!{6@gn3xD|o_KO&&lKk4;OGXHTm?4by7-RKVRrILV9gWP#Mzn=as|S@8^`fUMr;S6ZmW)#W!70sYL_gpUAAO7yO-%Dbh2;lR_nq(ulqFWbJL4pTZ)6mTqm zg$VyHBtO$+w+h5Qliq(d7gG=HH|e3jWy*ud51BJz;=!_AC?7WOM!rq(513?V zM_D8C&zUnIyQkz3YLA)4D1YX*?VvwrzJ@$h^=afM%zuEMy~3rF=I??cM!RTlmMvU0kTU*rq^ipsNboQJtZ9iuz|`n$3$Ouh>SVR9YwtwRIn zc>fNRBF~^7+(^DJL%>o*Rg%u~c6MVw4Ma0~Pb8=U!mh4TEu zwaAM+d$r^hp!ag}ugK$9#DdQoXv?!k8NJE=0vHU+SmATX3ci7&x6w0;M4qQQYNzo9 zWUSy_WZqs`_jb09I1S2J0qOB>mkhtoGSJCrPzPWI;^f^X87dJwsXd2bC29DADa_xa z8CU_m?Dp=Ia#2k-=$L$rj1{~?T7PTKrM7&5#Irt+l~_Ro8Tphn@@;K|6?7B%=hCG& z#tTz>r?LW4>ur;QzZetTj4*ruMGAT`&XA2AGp(e*Lu{ud+q^6rm2g2a{}{R}?tz_W zB}c(+WGp3(HEDJ>i#7##izT_>Kay-(3iJ|>I6M_~Q1hXrR{SNb{<)0Ev@qy5h~>N* zUFkuNar}-WARE`cf2(TrrQA3^?P1jXhNOOSlT_&-G@kmE8rz8JLQ-@5YhEnUqkRRZ zW>d_}XM+3y{5Z9c)R@m~;GZRInZ*1&1D;d$gn6EM@$oWD*0WQ)C~BT(o_~DO0ro~E$>m3uLf z`w1M%lV{bUWHBcS9^?28FRo9tNabXeY{agz1MH+~!j7_jcCuRPXyFwwbaJ`GnxOr= zURmyDrKh3b>-&`QJwPZK#}^{Nd?~#A`t4GA7n?&vRpZ$r!aq>MO)12IY`Lm0E5p2&ck###bU1OhJE3p<28G5c*8!G)WDxaLEOo&NlVS?_^d?|`g zPNi!Oj+&mrEt1`4p7}}}~?eNfXcu2`Lc}@Y_sj!ww z5w=Ua&gM>{vv;X*NRL7EIL$cj*$u(fiWyf0gR@2~aW_ktr}VzL1*?l!6*pF{#JS^H zCMbranCN8%)yBFia22oStBMy^HCEnVWk8g3H=}nxD=uDJ?7<+Tu#6SY^^pbNIDPA? zNMq4-5-pY{&~?G$yKioe$>K^d+>cXpvSBn z!lyF$G+tA=H18$f8!OjUkJq66E7t-dHJ( zJ_=>iD~tuDmBpSpGv^So9M_H8(0F({Lxlrfp{mmGlol7uCR1~67jah+C@J2D>)gz- zpx}*)FzCyTIfj_Z3n4bF*F20C>*Y~e{CXqMsX;1Q!=*>o;wqjtM;4H7Nl9vbRNL6m;cXaY{ z&!Y~Xx`J0aymYfNIkk^Z_UwLxS9%s*7uQENo?=~Lnzr5PdII<4%!rm zC)tTMD3UlhLT%xs&G3#pvahjYW3=1G3;3jy9NUqIciyScxDAXj73;K#7wWNT@&HSu zV$Cq$3|5AXm7SKz=!s76a%{)j`9%DHP=u|B*r*sEYXH^@zys$%FE(R#bcZ{WYU87J zk?KR(vKWfQyHh>b&0m!&%nrdqr_%**BH?an6>Y$- zNVO?*Y%?V(>j@|JVJoH#8zK_fm+F<#qdlShvYDX+@GfEFeSMMwN1>(tmf~PgFq&Y> z!5Rj=c~kGw6tPIflF`l>UjI{2)P~J*a}J_WeTk@Ji{sgc&7pD+ClkjKuiSGKkk85R zep?>A>~7SZjaxQs-N|Uv=T6%9iN^0!5naMUJ%|`OLL!C^A*!K78Wi#EP1yTYC!&Me zFB~Eb)Stk*v9T!tB_dMj9^rmOwH*;w8d+$49NS*AZbDT;Z*`R|pq7&&h}og`Fcyel zg2HO3t8>p$Sc`j{RLow}X~(dvA_6p=h;*%y8`Q1Eoz`Lma80DHj&(&lySnj%;{6V7 z=G8p`Eut=~cFw9zwd3MF?ueoPQdAgr<~Gno4z|pqORZR@nl8>Vah_xYPazxI4;)Ix zQc1gg2}oi;FtN#Aq))Fn=9QQ@sC|iWZ%Az9Wf3UG@mAY-vz@COCm@R<)ar~9VyZuP z*`m2rm(yc}Z(<{{P#mIjR&;~v2&?Ie_t-TFyB{65qoyI=4o_;DQk{Crt2rDCccSyx zq>>5xCO}PRBvOM|hgK|G+#69J2k4BYYUE5(O*9tiPN63WeudPuVMFrGlo~pv$J43r zx7!`nT};#g;xxj^!lqr6*)H6xJjGY4|V&v*GS>a(f>B!=Tgtc0FC7#}c2*!~d;3^p`=m z@N=gX7}i*r1wY{*Uqk!qC-VOzK`&wM#|tk4JrVz+JoHA;%VGCe{dl`ApjXhWyrTP6 zbsOkYFlVRVA80As5jK(C|Dg0_CrgyTQ+fF5>3t$SuL(Uje_voY4}US@Igy@4f?jgd zqdCoNQ5@XyuLs@Ijm&{9LQf7s6?;LizypPQ{+edtDp*-o86J#8dODAugQC4N*xq`{ zSF8BHC-_U4`#JiDLVp#@&T%RJR~23F@78uNfnJXOd`{_C?Cd_Jf3G~z*qy3^X5S`? zXAz#^=sa>yPE>(T`cJs@FHrn?bgdr;X-bCr+n`?>RDf*|{K|{#HmLOLb{)yX z{~bXuVeW~S?~@)JFL(bx1G<%CPZ!VS(f>gn`fYHG;^Us0pve%TyJsNk1YKJjgIhtL zH-=_Qj}X6!M?3Z2MOXAH{qD&meXj{^*uAB`xv>HFPu$x>fnaFkw)*BkD7ax83q8=Z zb$xwPXzRv}+XFj7JL=ar1w!f*7Jl`G3HMhda>teOUY?Ir4vEG0GV-z9^kEEt&L=K@ z*9SuM*FEwn)*~SOg%8a);rBA+SVXh98yvF5!06^NC4Igls)n3dzv(j_Ipc)vm^Pnw z`Q?#(wQ^LdYbSJGewO5SvgpC6W^%VMXNW~jRbyP&H&`%Fs^us2BNS>+#zS}vX{YbE zV6X+>F}kNQn115W@^1S%1Eg`|LGc|HEi|!F8uO_^y=HW4caQKwp|&Kx`a%P0agMNY zHph)Yv!ls;y2aOIbmfE|>aWOXCbxGv4{o6lzJU`8Y}xR;zj&iRXOmB(9Pj3<&3)(_ zKh~Aw^L%pSKUg!ayNBoiOz^nMs*?wL@CX3tBqZ$8rC8jtt1*JDM)0xj8qcfMSyEdn ziZ5VA+gUXpPwYf56O3J9eA}nG{Xh&#CB!4PsKGMuBt7HhA|ccz?CvlLs8VmYLmJ^~ zwPWKgaptMQVVo_nh8E)4d=J$9(89kLozZq=`ET0MZ^{4v}gDQP%gqS+j`t8s~L>jr+>e!lMo zY9ZpyO^raXG&-*3hm?H{^>_-ioFcjX-wrD7s#*JDVKi|nN9lzoB`y&guxgv((U$|8`ZwI*6#uP@PXCF&_@|23b6y{MzLD;n49S2Wy9!bs#l@o4{v zM(J_v1%sx4x7}p5AM@<-Y_Pv5G6$% z)IW2RyZ?M1mAUeklGD)d3b;!>6R%RBL)+KmVGWOHhm{jrUi(CI%enUT^OA;o9hT;I z`~NK^uj9`w#i?LHwnEZf?y$cAne1ye{k*Ipy@kz9Zu|5;EmyvGp5)f>I928(xBb^p zmwWzCo-dg-v~pyr=(hjgK*LKLaSlhE#t{-Nb`Kez^23XzuA-}@S*Hxo#ANs!I8yoMj3CRbjs ze;Zcv&u1lNLCa}qLO56cgkSQVsFm=l1liommSn*PVbZ1j*Uxds>SVpX{%A2v7ZjxR zh-6=x%hqan_xVe_lr)^KOd(0w|re5`9G3NWZ0eh z#L6R2yXW0HiS?!XrNFoU5Aw9wf#luo>|7`1t6e9Iwx!`idE~#`Amz_Wkj=GRE_Asl zc=v9QA}7>^e;!ae2Xr{~^}h%--FKvf$~Q@PIFJ9Dm!=;kl0Upfa&%}%m4FLn{~P9c BlpX*8 delta 6353 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 EFWOq^Hvj+t From 5508532619e338a87aed5f47d6cb4a5750fb8af4 Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Fri, 13 Jun 2025 02:59:14 +0200 Subject: [PATCH 04/17] =?UTF-8?q?Ristrutturato=20in=20pi=C3=B9=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 11 +++ build/globals.d | 2 + build/globals.o | Bin 0 -> 1048 bytes build/logic.d | 4 + build/logic.o | Bin 0 -> 1824 bytes build/main.d | 3 + build/main.o | Bin 0 -> 3224 bytes build/windows.d | 5 ++ build/windows.o | Bin 0 -> 10080 bytes include/globals.h | 11 +++ include/logic.h | 15 ++++ include/windows.h | 20 +++++ makefile | 43 ++++------ newCounter | Bin 22760 -> 22336 bytes productPricesSettings.txt | 0 src/globals.c | 3 + src/logic.c | 28 +++++++ src/main.c | 66 +++++++++++++++ main.c => src/windows.c | 172 +++++++++++++++++++++----------------- 19 files changed, 280 insertions(+), 103 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 build/globals.d create mode 100644 build/globals.o create mode 100644 build/logic.d create mode 100644 build/logic.o create mode 100644 build/main.d create mode 100644 build/main.o create mode 100644 build/windows.d create mode 100644 build/windows.o create mode 100644 include/globals.h create mode 100644 include/logic.h create mode 100644 include/windows.h create mode 100644 productPricesSettings.txt create mode 100644 src/globals.c create mode 100644 src/logic.c create mode 100644 src/main.c rename main.c => src/windows.c (59%) diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..dc80d73 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "makefile.configureOnOpen": false, + "files.associations": { + "ncurses.h": "c", + "logic.h": "c", + "stdio.h": "c", + "globals.h": "c", + "windows.h": "c", + "stdlib.h": "c" + } +} \ No newline at end of file diff --git a/build/globals.d b/build/globals.d new file mode 100644 index 0000000..49d7c7a --- /dev/null +++ b/build/globals.d @@ -0,0 +1,2 @@ +build/globals.o: src/globals.c src/../include/globals.h +src/../include/globals.h: diff --git a/build/globals.o b/build/globals.o new file mode 100644 index 0000000000000000000000000000000000000000..98323c6ad05d53dd0923e2d7ccce08b5eb3f30a9 GIT binary patch literal 1048 zcmbtS%}T>S5T0oLsh)Z(=pi0N1zp=>FM<*%Z9NnbMDUuXOAWS3$!@`(>|=QF;G_5m zzKTzvv+WE`NAcpqfM+P%GfGsG3Ivr(cZyed1 zERM9f)z-#I-zfWJ7v{gRcB66bAGWXWj{Is}RaMomRciIhS*<>E74Yk0tYM%CR=|6A z950XR+<4qtLf0?A=hqU6#WqF>cjXmu(jTPVa9~sfO9yPl1KmlZ(8g&3pv+`w!!DxD z=J>#w)p!G{7upb1*BDSyIvnZ*xg@n(;aN_M4Wmb@`^i}0k48GP6CU9|xPxYQ=5?`2 zAZjk<{q14HajPsK3ljQfzBm6_kqZNh;{l6nn6U#D*q&kRA#J1&eOC)1;bYOLhyXP&^cb zAVQCN3;q>7NudYvAMor&2lSh^Ic7dGCGieQ)N?%BJM1sMU93=d_ulQ5vCTzxl)8{pI@2owon}3L^fyg|^@P<~P5zwcA|i_`5qDN-lAv zBk(>}`8lwUl&^;Fd#)tk4DGdX7VG0nR(9W#vTA? z8Nwv-Zdh}l0cW{@N#X@f2hvlp&wl!I)GOF`+{Ni=pYHZFcAnjFeHvYyx2$D?=ZRDu z-5X=qc#P?c)6>oW;I|k@9pURUU@U9!Mb;4AJB&(H+6cXnHtW&aR+z-38XGaI^=MPo zXg#b%v7)dX)Jm$bQBhP?*!bB0RmnM_svLaNO}=3ddW30LR`W-(?$u zIv653V+byNy|8fUi@bQdngpw?lX_Q|#j2}H;3cY&khc~j0eP!&Odj{GoiM6a75C-U zqC|Q8M(@T+5WX^gskY_u5pAk^vdtV+Qsw9C^`NTEPR^!WrsIv_tkRM*&eJr=wtP1N zPqKkC%?V)i2XmOd@p13q%DcO2aJ(Dfso#f=d^B-e+3Vlo1k|+oEkl&`jC;Jk_;{bF znZA3(T9{aD++P1a=Kz~Va!NiKTmBgm629np4u~x|(4W&z%C>WtIEMFZ@AJTL?0wni z@sjgU)8_v+{D#q@Y(8FLulxUQ3i^hK`^P^>_;UZf)&`|)8kKzvGlq3+K5E)`&k#K^ Y>(9YSiG6 z053Im;^}onZdoP_1}%0qc4&Ni^N%Cm4?q61S^6y@8@IjE=0mV;+-mH6-E=A?%Pzw< z7QR86R<7+XFf3f}AQk7@?rbuQV%93Q6@F)YkCxePIksqw?`^!l*KMbu*QZGzu+KrS zkCE=OXQ9{6knXgD(Cbf<_G~xlj@=`z1aY+8zNG8f+U?rf^|r{UJNhhUaRJ|dN0~3_ z$Z#u7El^^KSF{Yd(w2u&y{?VrWxb>gDx5L85|u5V6iO^g!{^ud>wzjubw%^3;IgjB z8XuG4yHUVrbR`fffEQ!0Ml!U5%VRuJf``@wYEkf-Ub31mMHu_>Z&Glf%2i2bR8DA5 za!hQ%D{@)$N?;_BfY*&)4n$3J!54&)R9{GnER|L~)JpT32q=xPk_@aRFG^*kjVvXE zVI^3W#s)R10LYfY%+E_6(qExE!@4v94Jl%zm*oqLogW)}mLESqb@2or8u5qxAwE1f zJTiECcm)3s@19e`wjvwW!Mqz_ZjXDp`Gd3u@vh7=Z?)e$e6Z)PEi!(T7#ielIKSA} z|53+SZ+GXL9+||voq}l>`}TYWFi_IFzxEYarH3t$)91Ji}3G$9Vxi zR=`gc@Y4l+w1A&4;4=mMwE}*rfX@~1Y5~^;e6@goP{2Pa;GY(7M*Cm+<+x*k3T#+5 ztSZ8}_#}r+s>({B*orWUP9l@5fn{`Dj78U96vKak;H74V$`ekDUw0gX7F)<@0=^ zbTN-l5=YGc>OVxjh`H}w()?PQ=x8pXtDj6_IZGNQgUPh1Z>9m=x7aPXaISxe7Tnm` zp#M2vP`a46#eIPNnK%C>1^K%2^}j>Dh?)2APamke&&VW}ygznfyZ8TbYUtiG-aqb1 z=kIvC+(=YP^B+$O!`mH*6a8fkbIeRO`U&!xZ~RSUrP(MP0wVI_x~5p CzZDDs literal 0 HcmV?d00001 diff --git a/build/windows.d b/build/windows.d new file mode 100644 index 0000000..f019f6a --- /dev/null +++ b/build/windows.d @@ -0,0 +1,5 @@ +build/windows.o: src/windows.c src/../include/windows.h \ + src/../include/logic.h src/../include/globals.h +src/../include/windows.h: +src/../include/logic.h: +src/../include/globals.h: diff --git a/build/windows.o b/build/windows.o new file mode 100644 index 0000000000000000000000000000000000000000..9a1144bd8887287a39fe2dfa5ee8b485c6c5b22c GIT binary patch literal 10080 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 +#include +#include +#include + +extern char productPricesFileLocation[64]; // Dichiarazione extern + +#endif \ No newline at end of file diff --git a/include/logic.h b/include/logic.h new file mode 100644 index 0000000..27a283a --- /dev/null +++ b/include/logic.h @@ -0,0 +1,15 @@ +#ifndef LOGIC_H +#define LOGIC_H + +#include +#include +#include +#include + +// TODO: QUI CI VA LA STRUCT DATI + +int getCount(); +void changeFile(); +int exists(const char *fname); + +#endif \ No newline at end of file diff --git a/include/windows.h b/include/windows.h new file mode 100644 index 0000000..ab4f2c1 --- /dev/null +++ b/include/windows.h @@ -0,0 +1,20 @@ +#ifndef WINDOWS_H +#define WINDOWS_H + +#include +#include +#include +#include + +int runMainMenu(); +void runOptionsMenu(); +void warningf(const char *fmt, ...); +void warning(char *string); +void statusf(const char *fmt, ...); +void status(char *msg); +WINDOW *create_newwin(int height, int width, int starty, int startx); +void destroy_win(WINDOW *local_win); +void print_menu(WINDOW *menu_win, int y, int x, int highlight); +void word_wrap_print(WINDOW *win, int start_y, int start_x, int max_width, const char *str); + +#endif \ No newline at end of file diff --git a/makefile b/makefile index d0ae140..c19a008 100644 --- a/makefile +++ b/makefile @@ -1,33 +1,26 @@ -# Makefile per un programma C con ncurses su Linux x64 - -# Variabili CC = gcc -CFLAGS = -Wall -g -std=c11 -NCLUDE_DIRS = ./ -LDLIBS = -lncurses -lncursesw +CFLAGS = -I./include -Wall -Wextra -MMD -MP +LDLIBS = -lncurses +SRC_DIR = src +BUILD_DIR = build +SOURCES = $(wildcard $(SRC_DIR)/*.c) +OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SOURCES)) +EXEC = newCounter -# Nome del programma -TARGET = newCounter +DEPS = $(OBJECTS:.o=.d) -# File sorgente -SRC_FILES = main.c +all: $(EXEC) -# Nome dell'eseguibile -EXECUTABLE = $(TARGET) +$(EXEC): $(OBJECTS) + $(CC) $^ -o $@ $(LDLIBS) -# Default target -all: $(EXECUTABLE) - -# Regole di compilazione -$(EXECUTABLE): $(SRC_FILES) - $(CC) $(CFLAGS) $(SRC_FILES) -o $(EXECUTABLE) $(LDLIBS) - -# Regole per la pulizia (rimuove l'eseguibile e i file oggetto) -clean: - rm -f $(EXECUTABLE) *.o - -# Regole per la creazione di file oggetto (opzionale, ma consigliata per una compilazione più veloce) -%.o: %.c +$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c + @mkdir -p $(@D) $(CC) $(CFLAGS) -c $< -o $@ +-include $(DEPS) +clean: + rm -rf $(BUILD_DIR) $(EXEC) + +.PHONY: all clean \ No newline at end of file diff --git a/newCounter b/newCounter index c508b7bd51cf66fb0f1f09e533db889ecf0bc455..9536579b86dac43bb34ea2e1b4ae68bb089f9a99 100755 GIT binary patch literal 22336 zcmeHP4|G)3nZJ`{5YUjIV3DFc5JXf$68;H@B!m|xH6eiz{8Q{W%)BHclX>aPn*?0b z1gE%8hqT$YDs4So+Ol1`+panNw`wg$t%UY?wsGw$+fth<+8LAXrkYx+)Y;#6-@TKU z$2^bc?AbkM&*nnj_rBl#zVCkbyMNw&Z{EAzYHf9%%f)2MXE!tAiZ3;h3Xw5TFHS%z z*o|x!j#sfO*);G495eGPOoCi973WW;(*;g2>3v`1+vx%!C#m$1DCs$+{#j;@q^#KF zNzYBEg16HHvrRckWq!82QZt{~==0ntW0G3+C^iF|Oud1+$#hKAyHr+2_>~7S(i;+b zLqbo|F%bw!Wjx6Y{WS=?c3OcvN)`Obm|d?==-KHKAulPFL5V2+eR~aY7gB|zj7ci> z8eca8bZ+-g@)bf)Qt4-d&?{JF3fSpkp(m*J?y*yp=hS``)KEy0ie}+4 zp)Nw*V%zp6me<1u$QPOKVlK|l07fZK@G_rd=irZ;gY+NW{`zzOHWK~p&pKj-8}1nU z!OC?n>{%HK?p?cjWhk&B6b#4quh@U%+7)Y8mqhiFa;~=ox@3>nySQSus|O4c;gn8a ze|W*=%i{Mg`o>=un#hGmHw=g=U{dBU!R5k79q>0C@J$Z(|JgyF>Z9P#o-T8+(+t5} zetyOQ|F#2O?_mFV2l-Y9`Lz!Cd4)~S875v%L0RXw;dCUR- zvIG7X2fWlF4%H6w&pP1OJJ`7a@(TX!Ne7UtUS0=0?ttHpau?f;gTDm$Y<2}3*kNYM z`RoK(!cPgD#yzDj{1HBE!Z(F|Sli{>8`7B9+tQ|oy-~v# zF}z+=G^b#v&oClhy}6ln?%mfCV4V@IIif{dS*I@$@Dt(rVbrq^7ab++jp8Vl>1zg35Pr%<3GqW%aAYn`MRH3Gy% zjflVf04fg){(WA5>ppL@FBoFl{-D8{^>&RUBOws47c-_`#HY;%6CKeox8009|9+ph zIT-eZg7;{w*&ov3FyzBjQ7zg@^Xggx{N~xV+L|p@-tv;wOrDjOtjV6QTFtgsHSKIv z8`pYw)oib>_pT`^Eh$^SetlVK`6`)r>sr8NCFP|^>q>7#o9Bst`E*6VRU{8rkUUNc zaGb_-387q*nz?jzah%TF{2%or7p??7=zDZMtH9r!U=VZtH1-*R#pVZb2`XS;6#V!9 z<{?}z^4U@Fl*pzo@`%r`yA?+_`$vI!zO(}Jd2CR~%k_=y-|RBdV(gSyzev1a47TaE z@gVsg8(vyw+Ihf+-z@Mx8-9zxkJ#|r1%A|q?-TfO8y*$7T=$}~sQpAbCDy})Uo-); zAq#%F1wU=U7h3RP3x2f)m-7XcDX-g?p9P;Q zLC_->{390ps0E*A!H-+;D=c`w1)p!hAG6>ewcrC5T;7XO_9+WaYX+HyEcjIt1U+rR z6$?IW!53NZlm*XqUA2f#o&Gl>@OIHv?|R~+(>+P|)0;7@4h z|2pwBZKeA-|7GH7DoOWn{`17s^p$Ss{AY-#DJ6Xu=kFt)rjm36=kFn&rjT?6=Oe_^ z)R8Xb{N2RUl#y0Azn6HLD$>QAzk_(1BGQcWJBg>MAwBj!fTbTJzL@x7&Tk=}rh@bk z=Qj{fQ$Tuv^X0_T&`S8=(52)gckcEaCh zn10ijnqxhh>y8GJz!jwqV`4L4pLDt7Dp$4 zij1Y!k>uCU5O^nV`jby6Vz0!2n zH2)4f9#qdGn~nHW?H~#De7x)YG-Ep*yX$du8yo4^U4>(Tv7V0I>u}6BO6k~rJ&rD8 z8jg7*3sJy}=&C&8m;y#-rS5=3BNz3J6!eX_`XDqd_HfDrS1jR1a7&Z!%TUK`P!j6d zq&t1nBqTMcj*_Q?>KKt^-B_||G#N`J)w2lA=P;vC0}rZaC^m!YFbPpR^H`BbF0=q5 zyoDmb+y8|pC|W1zfP6C~Prk>6n(RUp!>rK5B$RYlz(F$n7+7?*toOa`?eN{2KE)D(HnSdH(XdnM~h@sNre!r+C*ei@DR6VMsz{ zn0oaQPw$-P5CocKp5H*03-VBAHOll@3Z;t(3Vo9#P-vbRv{q(x%65dXZ2j!K+^pjw6g7yP`{XTe`PXqWKeyCTuQp{o1AepS$8zq^hh#xB&mK8 zZmdP~p<^9~!~N@V+N<`9ImPv7>MFzzrZk)<)WZ;p&!<{IJ|Vgnbw`MpfxVM-koyFc zeFFDiysCreGMPcOk1%SOzTSpB5|TYL)rtK0xr{NJqYA{R%s;?ZTS#_oOTeUm2~Q4o z9lMA+>?QH8W8E|l9Gf2dM7--TEBfrC$d0!ib|n#*BPX}I`_X8J?RERgpK{f0F6x#; zI1J&DkHh-r?k1G9@Kczfj(w`ThKsrqO^1_B$2>AQ~zFd3pXvOjdnh&ILTzo5R9z zr(T4B7%&G%>DLEO;>Yv&Rq+S6p-!H}gR~s;BzjvxY7>WOu~wVt-4B9`ol>-1?I~Jb z*H^T>>1fgNJNt{4YXe2g+lGpk$A*iRca2#_;2{rm$_54xT?_NH&>K8-1I|jx+g`QU zlQ={R8BgyaTJM3ok#oHy?MXh!ed;|#Yo8Nz$4fo^WV9qny+&y%b>O>!8Zm?8K@ny%hduK{onnwYl+QEYEJ zU9^6W1*Nc_co(u}*D0c+d6|Q$Rs7sdzvqyx0!x->d_wHs5z@Z@tNq~TZ-1zMkb+pY zAE3W=p~2i=Sk0Iist7ZMXa~fS?l|yX4^BRhlXwafZ|ocb{&lSAYZ7C80VTuTz~kty zxxmsgGout4WcWA?%NS!tn&=u$#8Qc-vx&OlB>p#@<*SxaNQU2{9&L6gx{JG;(Z9;a zsqaOfNc1+8k;AV)e_D5YKD=+YWWP!9jGj?I^ctA)%3?z!#rw57-eV1QPXhI%LokWqg zFwLAO#*@Sh(OdXxF*Uy#8}+ocKm9$_(YD!VE!n3l)O=HEDgsjxn2Nwu1g0V|6@jS; zOhsTS0#gx~iojF^rXuh^9|3yLD}rKf*JBX{?-jPui*QOn*P=>TH-OUldhb zw$#6jM~63o06Xx~V?bw>9UVbk5#>NKx{NjG(IB~t@CD(gtkwp$G-~=0GBZdR(V}-! z;Q~S$@u7*0AYP`t$A@Cknc8(KAA#bA%`lQ*+%VUtMl)^PAa!*m7=k&!zZITkCGk`f zvD%IbZdVsATBNAU6ki7#BZdOdVNkjr(H1EvLurU;Z9(3Pc=ai&2#|-JvA;9&wWW zR)Vh{8I#{ggch0dSD1v!?|JZ!9Z&Qg4yE}f$$r;E>n=(%|BvrybmE6-4Tpqx@_0JV z7nS0hR6@j}MSkn?ittZ<<1x=vV|a~XQW9oas@{ZYDM@KaoXGXFD30N+8lHxQVTpT0 z!P4&|qI~&HiYy;55%T)L2p7eV!kj-X1T%t{e&Dxoo`1i{$17Z%mv)6a|La74KW;C0 zt>_2Ug6J4+T9b=u3jWA?Q1TP7@!?TrTJ}g02;`TF~8sHVfJz z=>38|BI1${}-Hw1l0&}n!#5npSe*H2!npWH%SS1h@;M*xvtEkOJ;z#i0U!E{s|^ zz9qgJC%KxCS|JzyFvknoQ({8k_ng4K;UNFC1OAEw{+upFCXEo2p?RU24vjY z9qfFL&@fYUULqa}yl_|)dY2fs0yxa@FYkvlKF}`abv-Oif zZbuYmAy*0eavvK0%nSJ`2l04+T;m=TT`Vrt%?trb_tA+et(O&$S738l4 zPT$|BguGlIlnMD6LVlZB47*X_>%>CnHGx-fJM)+#>{JN+4lXYk3kf;kz1+@)`vE-a zApdiY7qSN7r(Ey+(m{TN?4$qK$M2tjD;EFc>1-_Ma`nS<2fTsfg{)BY6aH)r#`XyO zE26(eL;-g@*m(f>V(Em1euL!mFxtdALuP$T*nb}{K2ze)6zQZTr0?~Gq9uM7(p!Rl zP}&dx1Um}^^iIm~ZoPebWnE1b_6ER()~kBF)jKQeRIg|2PUhWKTfe2U)>~g)-Kg&J z?yB5Ut9r%81Qp`TfBV<{mK_e9L?W?p9o(qHqinJLfs-WPBEc#1f{hL;{SM?#5l-eheUUI0O4;2aq+HHj5rlBFW#3Fq(4?otJTRTkBqkSKOVwZ?X8DTH=3f>&{{Ux$;t0#7-a4Ol{BEu=y+{Z%Z=8TNF zN5%(=$UQuykUe79rK3uZg|S};ZTaCO<@HjG%q=p|?#Ouenh=RBR}}ICzFczdUw@TdDZP(KX^+R zxzmeN5$4t~PPqa6%o))Sc=^sS5e>h$dc`g+=5{eodXu+Znd~>U9m9-R-%f#z@=?f2 zq6gXx-(FB7V$xQ5h99c6l9q6+1dWE@`HTasBn$101+h<7Fu+Q%^^6v2XIv0F)U>ja zz=1G~n$(DxIrs%LO0CJo1mi_sL<{*yL7cUR46+D6OAHOSf+c(+DM6>9nWjW*^)^R* zZJM_=0A0xmw<@>PtT22nroPvQUrgaJ>C1Bz<7*50;e!s#IF#_>Ow;J6ti-RkVX%C- zJ5ajlIVZY}pfv)Pc|6H|*d(nGxFm8tBzgK4#H!zi^%*5emzZq!h-Jm3R0$5Z3fc0V z_5qYiBx_AIVDM#{F8v=83WcR-jD6Q3{K5k;oBwf_l#U%TjM6Tlm6}P#N zFq3Q^$$u6nR((b2Ny>i{m%^Yn^XyADeR;nj=^ordS(DV4*x%yBTE4uml~g`omGXA~ z|4!)3_{;k>Nee{(lln4#lK+lPUp`Nf^sp2Z)L#CNZ2EnxOhHK(WF0ecd-=}+wvK=M zevpc(mOa|be-Sye@F%M&pF7Ka7wzRqUeez{mzqfG%l)QKVLJdyQqJTic!`f7gZiG- zm(Qu>{+qJ@$o?tyWIq^(F15eZm-|HxYzByQtx2*+sW0iDkz>`D&%IJYe>!DalGKxw zKK8fjXP+ljno9i^T{=~4JlQ8(S^vfTYQNAgwaMG{3!#tyvb$!brM`Xqk}M@FwRJI` zKUB#HQ^XA{-Col(bXjjX{}3j9H#N-Tn8&1#$%#v3%5tUbY@FoMKQ1QT%WVoami-q^ C)R_?g literal 22760 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 BlpX*8 diff --git a/productPricesSettings.txt b/productPricesSettings.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/globals.c b/src/globals.c new file mode 100644 index 0000000..d524946 --- /dev/null +++ b/src/globals.c @@ -0,0 +1,3 @@ +#include "../include/globals.h" + +char productPricesFileLocation[64]="./productPricesSettings.txt"; \ No newline at end of file diff --git a/src/logic.c b/src/logic.c new file mode 100644 index 0000000..9aac599 --- /dev/null +++ b/src/logic.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +#include "../include/logic.h" +#include "../include/globals.h" + +FILE *products; + +int exists(const char *fname) { + FILE *file; + if ((file = fopen(fname, "r"))) + { + fclose(file); + return 1; + } + return 0; +} + +void changeFile(){ + +} + +int getCount(){ + + return 0; +} diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..53743a1 --- /dev/null +++ b/src/main.c @@ -0,0 +1,66 @@ +/* +* [Guida NCURSES](https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/intro.html) +* Product Manager +* +* Controllare se file esiste +* Listare prodotti con prezzo da file +* Aggiungere prodotto con prezzo a file +* Listare copie vendute di prodotto da file +* Aggiungere copie venduto di prodotto a file +* Cambiare nome dei file con interagisce +* Calcolare la somma delle entrate dati i file +*/ + +#include +#include +#include +#include + +#include +#include + +int main(){ + initscr(); + if(has_colors() == FALSE) + { endwin(); + warning("Your terminal does not support color"); + exit(1); + } + start_color(); + //initialize options + noecho(); + curs_set(0); + raw(); + mvprintw(LINES -1, COLS / 2 - 25, "Product Manager by Vincenzo Nikodem Cesqui Podiani"); + refresh(); + //initialize colors + init_pair(1, COLOR_RED, COLOR_BLACK); + init_pair(2, COLOR_BLACK, COLOR_BLUE); + init_pair(3, COLOR_BLACK, COLOR_YELLOW); + statusf(""); + + int running = 0; + while(running != 6){ + running = runMainMenu(); + switch(running) { + case 1: + warning("Questa e' una stringa molto lunga . . . Ma anche un test, che ti devo dire, ci proviamo a fare cose che non sono mai state fatte, oltretutto che divertimento ci sarebbe senza esperienze nuove?"); + break; + case 2: + break; + case 3: + break; + case 4: + break; + case 5: + runOptionsMenu(); + break; + case 6: + break; + } + } + + endwin(); + return 0; +} + diff --git a/main.c b/src/windows.c similarity index 59% rename from main.c rename to src/windows.c index 15dff74..a45b815 100644 --- a/main.c +++ b/src/windows.c @@ -1,37 +1,12 @@ -/* -* [Guida NCURSES](https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/intro.html) -* Product Manager -* -* Controllare se file esiste -* Listare prodotti con prezzo da file -* Aggiungere prodotto con prezzo a file -* Listare copie vendute di prodotto da file -* Aggiungere copie venduto di prodotto a file -* Cambiare nome dei file con interagisce -* Calcolare la somma delle entrate dati i file -*/ - #include #include #include #include -// Prototipi -int runMainMenu(); -void warning(char *string); -WINDOW *create_newwin(int height, int width, int starty, int startx); -void destroy_win(WINDOW *local_win); -void print_menu(WINDOW *menu_win, int y, int x, int highlight); -void word_wrap_print(WINDOW *win, int start_y, int start_x, int max_width, const char *str); -int getCount(); -void changeFile(); -int checkIfFileExists(); - -// Globali -char productPricesFileLocation[64]="./productPricesSetting.txt"; -char countFileLocation[64]="./count.txt"; -FILE *productPrices; -FILE *count; +#include "../include/windows.h" +#include "../include/logic.h" +#include "../include/globals.h" +#define MAX_LEN 64 char *mainMenu[] = { "Segna vendita", @@ -44,36 +19,6 @@ char *mainMenu[] = { int n_mainMenu = sizeof(mainMenu) / sizeof(char *); - - - -// Funzioni -int main(){ - initscr(); - //initialize options - noecho(); - curs_set(0); - raw(); - refresh(); - - int running = 0; - while(running != 6){ - running = runMainMenu(); - switch(running) { - case 5: - warning("Questa è una stringa molto lunga . . . Ma anche un test, che ti devo dire, ci proviamo a fare cose che non sono mai state fatte, oltretutto che divertimento ci sarebbe senza esperienze nuove?"); - break; - case 6: - break; - } - } - - endwin(); - return 0; -} - - - int runMainMenu(){ WINDOW *mainWin; int startx, starty, width, height; @@ -114,7 +59,7 @@ int runMainMenu(){ choice = highlight; break; default: - mvprintw(LINES - 2, 1, "Il tasto '%c' non e' un tasto valido . . .", c); + statusf("Il tasto '%c' non e' un tasto valido", c); refresh(); break; } @@ -122,7 +67,7 @@ int runMainMenu(){ if(choice != 0) /* User did a choice come out of the infinite loop */ break; } - mvprintw( LINES - 2 , 1, "Avvio opzione '%s' . . . ", mainMenu[choice - 1]); + statusf("Avvio opzione '%s'", mainMenu[choice - 1]); clrtoeol(); refresh(); destroy_win(mainWin); @@ -130,24 +75,109 @@ int runMainMenu(){ return choice; } +void runOptionsMenu(){ + WINDOW *optionsWin; + int startx, starty, width, height; + height = LINES / 2; + width = COLS / 2; + starty = 0; + startx = COLS / 2; + optionsWin = create_newwin(height, width, starty, startx); + + char input[MAX_LEN + 1]; + strcpy(input, productPricesFileLocation); + int ch, pos = strlen(input); + + mvwprintw(optionsWin, 1, 2, "Posizione file prodotti:"); + wattron(optionsWin, COLOR_PAIR(2)); + for (int i = 0; i < MAX_LEN; i++) { + mvwaddch(optionsWin, 2, 2 + i, ' '); + } + mvwprintw(optionsWin, 2, 2, "%s", input); + wmove(optionsWin, 2, 2 + strlen(input)); + wrefresh(optionsWin); + + pos = strlen(input); + + // Input nella finestra + curs_set(1); + while ((ch = wgetch(optionsWin)) != '\n') { + if (ch == KEY_BACKSPACE || ch == 127 || ch == '\b') { + if (pos > 0) { + pos--; + input[pos] = '\0'; + mvwaddch(optionsWin, 2, 2 + pos, ' '); + wmove(optionsWin, 2, 2 + pos); + } + } else if (pos < MAX_LEN && ch >= 32 && ch <= 126) { + input[pos++] = ch; + input[pos] = '\0'; + mvwaddch(optionsWin, 2, 2 + pos - 1, ch); + } + wrefresh(optionsWin); + } + curs_set(0); + wattroff(optionsWin, COLOR_PAIR(2)); + + if (exists(input)) { + statusf("Il file '%s' esiste e verra' utilizzato al posto di '%s'", input, productPricesFileLocation); + strcpy(productPricesFileLocation, input); + } + else { + warningf("Il file '%s' non esiste, utilizzo il vecchio file '%s'", input, productPricesFileLocation); + } + + werase(optionsWin); + destroy_win(optionsWin); +} + +void warningf(const char *fmt, ...) { + char buf[256]; + va_list args; + va_start(args, fmt); + vsnprintf(buf, sizeof(buf), fmt, args); + va_end(args); + warning(buf); +} + void warning(char *string){ WINDOW *warningWin; int startx, starty, width, height; - height = LINES / 2 - 2; + height = LINES / 2 - 3; width = COLS / 2; starty = LINES / 2; startx = 0; warningWin = create_newwin(height, width, starty, startx); + wbkgd(warningWin, COLOR_PAIR(1)); - mvwprintw(warningWin, 2, 2, "ATTENZIONE! E' avvenuto un errore . . . "); + mvwprintw(warningWin, 2, 2, "ATTENZIONE!!! E' avvenuto un errore! "); word_wrap_print(warningWin, 4, 3, width - 5, string); + mvwprintw(warningWin, height - 1, width /2, " Premi un tasto per continuare . . . "); wrefresh(warningWin); getch(); + werase(warningWin); destroy_win(warningWin); } +void statusf(const char *fmt, ...) { + char buf[256]; + va_list args; + va_start(args, fmt); + vsnprintf(buf, sizeof(buf), fmt, args); + va_end(args); + status(buf); +} + +void status(char *msg) { + attron(COLOR_PAIR(3)); + mvprintw(LINES -2, 0, " %-*s", COLS -1, msg); + attroff(COLOR_PAIR(3)); + refresh(); +} + + WINDOW *create_newwin(int height, int width, int starty, int startx) { WINDOW *local_win; @@ -160,7 +190,7 @@ WINDOW *create_newwin(int height, int width, int starty, int startx) void destroy_win(WINDOW *local_win) { - wborder(local_win, ':', ':', '.', '.', '+', '+', '+', '+'); + wborder(local_win, ':', ':', '.', '.', ' ', ' ', ' ', ' '); wrefresh(local_win); delwin(local_win); } @@ -240,17 +270,3 @@ void word_wrap_print(WINDOW *win, int start_y, int start_x, int max_width, const mvwprintw(win, y, x, "%s", word_start); } -int checkIfFileExists(){ - - return 0; -} - -void changeFile(){ - -} - -int getCount(){ - - return 0; -} - From 750f7a9149bf420bd064bf54d6dcbfbbd246ea91 Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Fri, 13 Jun 2025 03:28:22 +0200 Subject: [PATCH 05/17] Aggiustati dettagli estetici e cambiate funzioni di print varie --- build/windows.o | Bin 10080 -> 10120 bytes include/windows.h | 4 ++-- makefile | 4 ++-- newCounter | Bin 22336 -> 0 bytes productManager | Bin 0 -> 22392 bytes src/windows.c | 22 +++++++++++++--------- 6 files changed, 17 insertions(+), 13 deletions(-) delete mode 100755 newCounter create mode 100755 productManager diff --git a/build/windows.o b/build/windows.o index 9a1144bd8887287a39fe2dfa5ee8b485c6c5b22c..014ce381c08df23312cc5ee96682fc7b325fb62b 100644 GIT binary patch delta 3303 zcmaJ@4NO&K7(U+>h09NutKi`%$l+J~!(DA5S`y^3OPfE;VdYG^8MCW`AeSFax*^&; z-bnB*+pFkPeR4ATsM=Af~8Z6dwzx#x^GoxOMGJ>T~}@BjCm z@4LN=cPwen5<6O^?6nDLw_O3dh)Jxw6VR^e9ql)gMOSyQsbVNle9;}yf_k_94;%=O z^XuARL;c`rAxVyHJ0(f7Cc8ckO~MG-wL3H!g_HWFsDcqB-zsz9uWhU!T<=>#+`kU_ zI^T5S{u1PCeL2Ma%aFh3izDuT7I~yE7r6@CMb(V|OVX{M>ciktV|}kwJ^K2&`)w0# z?}Z5)w2pb*?hX|9P&Mwhr^0nHDG*PZO`Gq#1B-(0CSz8pck1oONDhBR9F53ci@*Hu zvfI9}*9pH{U(|{AJywuF@%hFMF{Mk_`UBc|UF!{KIKFyHGg3IE4U!);=ydB^@OmCL zfhLY`q$gFMY7HZO@z&7pi*z??o#J|&sp_7Ft=9$v#eD&7P!x3KYW?-jMy*#o5a<>K zy14+?u4$>zi?0T%d$Fb-y~C}a4YeaU>`Mt~x1cLZoqG$-Z_U#Nw;U#~TAvkO^+j1j zdv#Gj>zjw+p5RVlYILT*Pu!gOP!2Z}Ez`*Ahch&)A_Z!MskrTgWBXV4hlg<*v>G~6 zt5Is?NEmmZ9+xNv%bX+y%mTHZLY+*HQ1wQc&8JVo?dWZfPmlDLtDg0~(v9UFpSQ-N zuJ)=`8_GARUbSpPO=($axleu7tJZkS)KYcX()<;LOS0QOi%~^b#*C>|;7Q8?;iz(y z*wAtQW3g}9o{1SVY6UbpiX2I}G$XPExZ-d*-k=05J=-Qoi>(~j{~x`ZB04+*x*t>E zMC=Yx0)@^zF#x)ATKrf^NY^6Cfg~9=_+AV}PFWNaS61PibdK9eLy{(wUnH-AR^W)x z=5RwOT?xIUIznArO?0(syV6A8G37>mIChN+0Uwc-_}1XZ4E}?`&lkr@?O< zJV;y_Hhnga4*9Y&iGY@IvTzt&C9X`x3Ml8QF(FN(qd1&ppmQuVB7_>f#bF+##LX0L z!_QKKKTjOqj4Oz$t=;IUD5==!E%(7sadq~xnp$I03kC6O;b?qv_?l8*nWwG}F2!$F z-VQmI!tfo1&%NOg0UQ`FD|;DA+s#7HKsTa240SMc4G38lbq3!DE?HI%nd?MRVwvV) z@F04Wp*+fMXp!YYC+#~VdXc@ALn4#Yl6B)lG~JXx7;82RV61rzb)vTAt-wH^V<^vL zITR(xN*#+xTgohY@+b^87iW{$H3a9bFcBg~`*H{08$z-PmGwBf>ltDF>P9 zXD~TG0iF)YAt%YHEN430_7(6X$%@xRDgS8Zxe{6st!K8$4Ar4MNsd`)o@|s=3JfL5 za4#uZDPvNV*=&WBNwV@TLlYSK0Tdy+-$W@J3T^f4OK3o}gV|;<^t9pm0z>(Z{DV-} z4TkbP9cSJsR6{27SqKM`W$_~9BmdACAEa^N5vHHT^o4ozk)O#-K8wkDy$himy%m`# z)l2JbodxTd6<@OkCg(N2Z+QFU5#Ek6EAH(_rcWP&)$QM*MU|B>+E7ST(G+|v^boWo zdXAy|bW4H(Rd&s$t%O9j9BpQDetLclDJgQyS%%7>rJPi(d;Mi{hD3d$rx{XGWyQL8 z_oIYp1T7-eT=8B58$k!40a5Fpglc|amhEw9O_jwpIGuV&{0i-9Id+v2MS1~5dX6n2 z2Ii*Ew delta 3229 zcmZ`+eQZ-z6o0pajcy%X*~i;s16~JoAPQ-M5MeMUJk#>IX3nUXKtVz_VPABE=;oL+ zO7mE-IT$b`#-TxjVnX-`L?A<=5Q0bvMocgc<&Q2jW|Kx{#LRQ<-jhRmzfB!(P!j zee5{h9sNq{_<{V9WqH8&$&}{Mps{56*c-y<7U*jYZ}+1M&go@ zB=t*1iYAQE7l<0e1C>|}UARvv6?#Osm)Vg*d+Cg12fB?uF;HNs2IgSrjFefMG>w$F z{)}<8!_#ft6_4V~m4OB+(7olRk?5%w(b|OBdY6ieeiMlPAUoVWJQDGm#vuHiqc0jn z`@zLVs{I6cHIjCCJ(6QDovk74(PE6ZfIEd6mv4De+?)4!5){1DHqCBLOA%376)8|7 zXohpHQs1MZvLE>im>t;nTq?+vg}{hQ12wmMzL#W5ut5)Rjcjgd2uJGL!uqBXMz1>~uKo?aL^WJqV%gxMK1YfvA z?wQ!^M=~99^8D^D3T5j#+F@m0bN=ne^nMbqtO+388YJ>|i%MwrREpbh%rgh}c?!fT zhPka6{Vc~AZ?Lo1Fi_&nI(nF@1v8_MyP+6g|4w|$rsTc9AqWy z!L^?rKBR*(?n%kdN`6uDtCHW4{AbC3lRQaWyN{OStx0Zv<^LQWN*#P;@>NklT$_ry zlV%M)%1E+zIQt0oKWU-yYzZo|W4Nra?EV zC*^kQ`jj=N>z{*TMXL5KLunt{-jZ+!(P4(V85#nQs)~)0?}jQ>)%Ii6L=+_thwbMh zXh!rfLwS^I(5tG!Aq%C<$=F_$glsadi3w0di0Ewnz9Co$E zP&HZg&l>}68$-T_th56R<#9iSIOg^>^rB9j>6Eazzkn!F{Rs=Ds(EMcGdUGE&e|Or z5H3;0MDQcmAcnk5uAhPnC2DYq^^}wG6c#JUCD?KsG6c`OBu?oRzNeNAq%BEUCj1n=tXohv*n#^hB%^gty3_)V@p6xRkd1%^8VC= zAJKM(sx0o?5JuFrP|Au@u>12N#1K8oY-cj`g!KF!L-`K;p3vZr4CQ-xgvou(=X~pZ zMKzW)`Em$NQ?>WTK=%{s|Ae8lm~E2Dxz8!!(N*DxJJZx)h4tp44$vO3&xaQ+IpxFe z=2j->RlhC0^^D=|GiJrTon-p-(AfRI0=>Gby+f)(1iKUJ}{S zSOXUjwZCPaO+(`_RQ5m|g@Ne{o&ECTSy7r`_Kby&K^JVCvDA@r;WtweoSreuIc#Np z69#516xYE!vr<$;7&-oZKwb)Wkn7;}Nx84m(eH&rzNOC3>1~R13kG}(oxA8nL|O;4 K%gIf+y!=1HlFl{& diff --git a/include/windows.h b/include/windows.h index ab4f2c1..f500aa0 100644 --- a/include/windows.h +++ b/include/windows.h @@ -15,6 +15,6 @@ void status(char *msg); WINDOW *create_newwin(int height, int width, int starty, int startx); void destroy_win(WINDOW *local_win); void print_menu(WINDOW *menu_win, int y, int x, int highlight); -void word_wrap_print(WINDOW *win, int start_y, int start_x, int max_width, const char *str); +void wwrap_print(WINDOW *win, int start_y, int start_x, const char *str); -#endif \ No newline at end of file +#endif diff --git a/makefile b/makefile index c19a008..f2dddec 100644 --- a/makefile +++ b/makefile @@ -5,7 +5,7 @@ SRC_DIR = src BUILD_DIR = build SOURCES = $(wildcard $(SRC_DIR)/*.c) OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SOURCES)) -EXEC = newCounter +EXEC = productManager DEPS = $(OBJECTS:.o=.d) @@ -23,4 +23,4 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c clean: rm -rf $(BUILD_DIR) $(EXEC) -.PHONY: all clean \ No newline at end of file +.PHONY: all clean diff --git a/newCounter b/newCounter deleted file mode 100755 index 9536579b86dac43bb34ea2e1b4ae68bb089f9a99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22336 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 C)R_?g diff --git a/productManager b/productManager new file mode 100755 index 0000000000000000000000000000000000000000..7f368489bbaad266d971f8d2ac9d807d7178bf79 GIT binary patch literal 22392 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 x!KK@8diE~sE$1J?r0=GNd7Mla2Be?KiOXbj Date: Fri, 13 Jun 2025 04:24:43 +0200 Subject: [PATCH 06/17] Aggiunto logo all'avvio --- build/main.o | Bin 3224 -> 4752 bytes build/windows.o | Bin 10120 -> 10104 bytes productManager | Bin 22392 -> 22424 bytes src/main.c | 23 +++++++++++++++++------ src/windows.c | 2 +- 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/build/main.o b/build/main.o index 6565e063f071227f85c25ed1edc3fa6215a9aa30..bbe69c6c68f6f1aa148882a51734082520103cfa 100644 GIT binary patch literal 4752 zcmbuC-)|K~6vt=VQWT+9z#kDK|_UQJtm1p_8pxA#taSMJ@t?9TSK z5YuRlp)oa0B#{>$^vT2*V|*|q3djTapwU0Vh?WQSiNqQ_-`Sb&bZ-}ko_1!=eCB-5 z%+CJ2Q+)$3wKxtl=CBu7+B1}~&O1}TN4Y($gRNnQiZj0yr>}Ni0aMlVAI^K{<%7yE z&aMD2&RkO6bI6=Vp2gU=VClfwHZTmFYoSU7TddWvBp>3^e9B9w{CaV;_`#B8T#1onB>| z??{@JbMtL;^UfRvwZ|tFQ_K7QA~rBt-pqFwe&6W)^z*gZeSd3m;lghloy$b(|CqJT zuEE;Pj%Jm`UlTHY#VO9-jmViFXD+2XG57jKK*o*)amb|zYo6~`c{vaf_XEkJxLyxJ z$xA^s2pMN=e=H*DaV|^miKwDTKk#`J_yMoE9!=v)K><>dilz#Mj3rHoz_K?k zLh03n4?wY$W@JS0NchKTol#wc9=Vh;4#vfc>R_qjw_=YN%LK2=^qaayXSHd}P1Ht{ z3b;bLemj$*whn$e(Q;~@ zs%@byN_;iigq7MBE}gF_z6mV5@}{UfV5{wzTU$k*+GNtlWxAR6=4uk;E`-z=%N@sw zCeslrOn2ZbwHi;NRIS4oMObelBn8g1>X4hvt>dV%{&fyW$&?_ek`8=p<(M{AlZSEC zWZFr(ro-tWNwzNx%5h2ZLDzT3M94=b`Kz8^q9;+nhrFXfS=4y1h>pb`-xriU*Y_Cf z@9lk#Ki)rdXfyBLUg$1#^Q~Q5w|8yZx}7n+200bHxF~|PFy}lN-j*;Y(_f!p<{Ur3 zoQY0n!|Ii{%~9|J#8F_oA>Q55`F>09n)cRR4uz<(U22rEV=73Gw^T8lYe?0`{=B|i zKE>o@XvDiS2>)~d)_aURKq;qlTj&T6*n4I zUmg(?e!1cKtl@?}eQ_``;YmiH1))p=lw`Q>dLi=zQK|&26o=7pBqR&n2CLI&iW~^W zf<66E$v7INwv0I%p%@KCRAFK457HV2g&)J;TbEwoN2=SqciV)9G_l7Zu%HT)zX894UD z@L51IaQvh&{1hOW*$1;PpCnktuZJzZp2kd`XDn`C5B*ktJnKyS5sTkr@v6n`eTXcM z>*^{M*a^+C&U>kt{O?%t_Pifi+@AN0#gTtN{la4Gb1VOSR(?)C4Eu&+tVcVBo97=Z zM3Xh?j!-MZq^%e)6jiq%#e`&qvMXIy7>OcQpck;}l!6+59IyiYo)HClcRoo^fYMRj zAM@h^{Rp97338G&$RsMmqoG?9W=a36<)p?I;NG{bM|Zx|`(ws3UABP+aBg}`fNpo- z<|XUGW|N@{Ev_{f_8RsW6>uE}r0lQkM4D&u7UIbHU-jLjMNa!1Q~7BfH2Kc4?aZ_fX6b7MZP0}tzk;Tdk8RTwvV@uUprao0Z}&gX)F1o%vLa z{d}k_$R)x^vYT;;AIBkn4k`|FLpYRw8%ezgkPWl_B}6<890a0B68fMx1Ok{rF%T|; zIaD0vP!1r58DxhfE`}r?ge1;BIhId(@(jKkz$8$}Z_Xvb1~IgNY4Rq1Gp4zWlNC9{ zCJAUjS(6+k3e1lD@1PTWJ4iy&IM4FC6hn$%L4#Mu+<6x diff --git a/build/windows.o b/build/windows.o index 014ce381c08df23312cc5ee96682fc7b325fb62b..e4b04df50bcea9f66c26734928288e4781a3404e 100644 GIT binary patch delta 961 zcmZ{jL1+_E5Qa0UZH#R+yHs9RjP0v7o198TP$@K4u||c8C+kIA50Yc+K|Ohk8Z~Gb z#Pe3X2!de?f(NbOq2R@U;Gu`Imr{>jG=ft9x7~%I&>v>9%(wr%H*a4aUh2+1E79F{ z`E*8YH0L*~&HX8;`uJ?O+UUIR!E?~eJnE&sppaWj@3RS&>Am^;=`*>$o?OtMe?_#; zZEKuXIke8v5|{09s`FLkxu9V`AhOvSbg34c9L!|tC{Gs@U1SUS3NI9tb1h?5Or_F@ z0mR?UE!|`v^j1uFfeZ_Jk2|1~yHSD+)riD(26J(AEyrH}w1) zK}*8>OVnjgcMo2I%v$mUCOO1fGch$MVD7;`gwb`jMwD|~c;$>wBJYbGyzR*QQP5s= zOlJJXK05yqoy&qQatCy!-|S&)&j;|Ecx@)FoRYafkeNu*I!}PUj_LM^J_nvw(cvXBt9h|FMavwb^p>@2Y@X}>2cjt$#Q*>R delta 925 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 MDw7RXvuMo!0SQGQ`~Uy| delta 3080 zcmZWr4Nw&48Q$Hy+_q^YJ-`>}BkRSe-56={a7r!(6LhNA&XFP|=!RJmnE1I*jBK?&AKH;N6b2=_* znea@8y}*Pg%SIFC8mUV-mw0c+TMLii;jvFXS6bX^s>GLBP@cl7!AFS>?9@>Nxg0ut1CIpkcJ2HQWB&c7N#7vL|eV&~%= zCo7%WVoY0^p^cR>YrV=aJEj$F%yLY?plxEH4VsBDO{-CzGU_6RBpgccTDK)3zgFe{{It9`5JE!5yPf+xBWQQW*)(oLC_%SLERJfGXNR z@DX#e1pU8Hl?H zdZu@$wvFyN-%iY#haysU|I*+K-F$zIDmv%UzT_<5iy*ChCM*9k`|81_L$(rlv*aCg zDLIe-oDyA`RqvNFlU)FrWTVsZsAtWnR_1}I-VtN*KeVO=#*|U-)MBIQHJ3l}U6>}c z{5w^wqk}HDu&k8MxYF|wA z3N!bw@32ll1p3hl-bkYwCl^R1!gdgNByF=Sjq^ItDZ^fu9 znwj0~aVINe6+Jb9fC62Snu9xUiX;Ns+m1aV&mw;SW94SfM@~moR3- z8|6pr*)!o*FKYYgpyyNJgCW|Go;|;PNY}@=zO3vxuZoR7nXngvnxIIUDz2XhD$;dT z{5gG|n(g&5)(Z9#sH7FC>r^Ezw1qjI zN;Vo`XGs}B0&_vG-Zok>wrMKMsETjko68DxPcZp!Q&Um7C;H(kaFspS(@^5bAs!`M9`5I_h(m{1aZNpjrKKc7w?;khH&Ka&+=|^pOM> zowXCuLFqCdlty_~Jc0j!5@~dLV;S}`OUh{Pqr1K=el>ahE&N65^k?&H=!U=AwdLmc z@jCzDIFHbxjCFj74rF8re~G6rGTgD7;TS%1g5x4LGaS>%KV9Avc#KvQ&Z9u!bR=AO zo^RNV?&9%F`?sziVX{Zpn<1SSb^S8rI!HVA)^m_qkeeYFK>q!bu5W~#eOcGvfLwbO zagb%2uAgM{Ylvs_KEz|A9)Zk)oYRkZ$lpS46u2nv&~+rBp`ssqwp`Hl9F*i1L^DQQ z7JhiW+^TNMFU}EW_0XDPudt+twnG&4(0j$+%uLYz8Om_w)8gM0D&wMTtN0&9$8h+E z;JWc!f00ItJyD}j_w|ye#1oYU?}JyUw8WD$AL`cs=z97O61X2ESO@&YtIRd(HK_R- zy$AJus9}v-p&o(StI;=5yPo9;NrN$J`?#b=In_kUUH>)@GcUBX1}K;sFhS+<*Ht2SyL=)mFdLQ zTKIal^YDCU3T`cM#@TOic+$eR85Q3$#un;A^}iWqm2e+SL{j4drrhreT9z*H7mtE zHhW~%62Fb#MX%K6#*Xca7CKa0CD?2)7_Otu`$&qy)UWc=_3AH`sLFz{tw #include +void printLogoBG(); + int main(){ initscr(); + if(has_colors() == FALSE) { endwin(); warning("Your terminal does not support color"); exit(1); } start_color(); + //initialize colors + init_pair(1, COLOR_RED, COLOR_BLACK); + init_pair(2, COLOR_BLACK, COLOR_BLUE); + init_pair(3, COLOR_BLACK, COLOR_BLUE); + //initialize options noecho(); curs_set(0); raw(); - mvprintw(LINES -1, COLS / 2 - 25, "Product Manager by Vincenzo Nikodem Cesqui Podiani"); + printLogoBG(); + statusf(" "); refresh(); - //initialize colors - init_pair(1, COLOR_RED, COLOR_BLACK); - init_pair(2, COLOR_BLACK, COLOR_BLUE); - init_pair(3, COLOR_BLACK, COLOR_YELLOW); - statusf(""); + int running = 0; while(running != 6){ + refresh(); running = runMainMenu(); switch(running) { case 1: @@ -64,3 +70,8 @@ int main(){ return 0; } + +void printLogoBG(){ + wwrap_print(stdscr, LINES / 2 - 3, COLS / 2 - 5," ######### \n ################### \n ######## ##### \n ####### ### \n ###### ### \n ###### ### ## \n ############ # ### ## \n ################ ### # \n ############ ##### # \n ############## \n ######### \n ## \n ####### \n ## ## \n ## ## ###### ## ## # ## ## \n ###### ##### ######## #### ## ## ## # ## \n ## ## ## ## ## ## ## ##### ## ## ## # ## ## \n ## ## #### ## ## ## #### ####### ##### ##### ##### "); + mvprintw(LINES -1, COLS / 2 - 25, "Product Manager by Vincenzo Nikodem Cesqui Podiani"); +} diff --git a/src/windows.c b/src/windows.c index 9508ada..e413f60 100644 --- a/src/windows.c +++ b/src/windows.c @@ -155,7 +155,7 @@ void warning(char *string){ mvwprintw(warningWin, 2, 2, "ATTENZIONE!!! E' avvenuto un errore! "); wwrap_print(warningWin, 4, 3, string); - mvwprintw(warningWin, height - 1, width /2, " Premi un tasto per continuare . . . "); + mvwprintw(warningWin, height - 1, 3, " Premi un tasto per continuare . . . "); wrefresh(warningWin); getch(); From 619774c8090a0d2b3fb4baf6e1dd6ae3ab58045d Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Wed, 18 Jun 2025 10:20:43 +0200 Subject: [PATCH 07/17] Aggiunto ambiente di testing funzioni slegate a ncurses --- tests/makefile | 21 +++++++++++++++++++++ tests/test.c | 6 ++++++ tests/test_runner | Bin 0 -> 18776 bytes 3 files changed, 27 insertions(+) create mode 100644 tests/makefile create mode 100644 tests/test.c create mode 100755 tests/test_runner diff --git a/tests/makefile b/tests/makefile new file mode 100644 index 0000000..5cb06d0 --- /dev/null +++ b/tests/makefile @@ -0,0 +1,21 @@ +CC = gcc +CFLAGS = -Wall -Wextra -g -DTEST_MODE +INCLUDES = -I../include +SRC_DIR = ../src +TEST_EXE = test_runner + +TEST_SRCS = test.c +SRC_FILES = $(SRC_DIR)/logic.c + +all: $(TEST_EXE) + +$(TEST_EXE): $(TEST_SRCS) + $(CC) $(CFLAGS) $(INCLUDES) -o $@ $(SRC_FILES) $^ + +run: $(TEST_EXE) + ./$(TEST_EXE) + +clean: + rm -f $(TEST_EXE) *.o + +.PHONY: all run clean diff --git a/tests/test.c b/tests/test.c new file mode 100644 index 0000000..8a3c4d6 --- /dev/null +++ b/tests/test.c @@ -0,0 +1,6 @@ +#include "logic.h" + +int main(){ + + return 0; +} diff --git a/tests/test_runner b/tests/test_runner new file mode 100755 index 0000000000000000000000000000000000000000..079c8ee0ef9262446cc68ac1661e759498ec7866 GIT binary patch literal 18776 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 literal 0 HcmV?d00001 From f18d0cf043b2b964904ed4151436cd1a883abd53 Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Wed, 18 Jun 2025 10:36:09 +0200 Subject: [PATCH 08/17] Preparato ambiente di testing allo sviluppo --- include/globals.h | 3 +-- tests/makefile | 2 +- tests/test.c | 3 ++- tests/test_runner | Bin 18776 -> 19448 bytes 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/globals.h b/include/globals.h index a429d6e..24dae02 100644 --- a/include/globals.h +++ b/include/globals.h @@ -4,8 +4,7 @@ #include #include #include -#include extern char productPricesFileLocation[64]; // Dichiarazione extern -#endif \ No newline at end of file +#endif diff --git a/tests/makefile b/tests/makefile index 5cb06d0..4cac637 100644 --- a/tests/makefile +++ b/tests/makefile @@ -5,7 +5,7 @@ SRC_DIR = ../src TEST_EXE = test_runner TEST_SRCS = test.c -SRC_FILES = $(SRC_DIR)/logic.c +SRC_FILES = $(SRC_DIR)/logic.c $(SRC_DIR)/globals.c all: $(TEST_EXE) diff --git a/tests/test.c b/tests/test.c index 8a3c4d6..e046322 100644 --- a/tests/test.c +++ b/tests/test.c @@ -1,6 +1,7 @@ #include "logic.h" +#include "globals.h" int main(){ - + printf("%s", productPricesFileLocation); return 0; } diff --git a/tests/test_runner b/tests/test_runner index 079c8ee0ef9262446cc68ac1661e759498ec7866..89edac377795442d61c2fc578c690e1f83ed32e0 100755 GIT binary patch delta 1597 zcmZ`(ZD?Cn7(VCRdy{)}(==J^ZtiBc)U}wcBWY>Ym^4|^Rh!$jKm0)djQwcSuEdqL zYg3#bXk<(~*1^^n*&qxBaX*IO)+^G9pkuiCf#L^Bl}?yWSO$LN-{z0S_uQLQta#v@ z_kEuC^PZ2pvPkcorYA$}&Yn{{ep1SmSfdO+I<8z`Hu}hXnQmqG!P3p&UMnA{u*%J^ zqTk3PPrp|_YQ8J9GG8cTJIb~oA+s!Q!kd0-e5Bw>2F>3RCUzaNqBZW7n2>saq5G zs#Qzdf5rUP*XCIaI>feFLQGeXQO|bn)9dlR!ulEQg~J87A+$lLV^F;x6EQL<5F%qtlfKi!w>joD z$dbFztC+C^qP=rhdH9mgCDWUy43}r3^%|dpgK(2BdjXKPI-lbLI-+}x zgUFX~I=gU56PXufa>H>%N*;CLAa(CY@F7muGq|Y4J<1ysB~GuEG0#OyH0{+eqLrxX zZdJf-5Gft-Q$IG^LI(U1l@Ldi2%d!6qsG+%e_BuKSUF0vew%_|_ajC<##xV%{~M!( zX+{6Vbr*PlKUqu|BFaXatH1&TKj7)Jcyp+21z9ftM5dU#0Dir{?uHEJV4VJfKhTG7a)bzVn ztWHj5>bxzl!J(u!aIa=v-v-sZw?H(L}$ z^Gqfv(C6V&Uqq?z=_*wEvQ#nS4@a0%-^3tvW;JLPy>O=AtJGU5!o~hHEkdO~t&}?K zk1WC=(GNq}R%LUi&3ppSW@D~jcG>7KgZH!Du6+;LFh$|7Y`1bIZo_Ga8!<&r+UN@_ q*Mia7v{GXN)+4}AMh6)_Hrkax`J=*d7Va7`*NI*m9iWit-SRi&`z(|I delta 1096 zcmZ8fZAepL6n@`#yKS$!wfWKA)zYgNt`yyxx|vRABilz1iwYAYB+8;Fq!0UmNQ0sx zaGpL8e`H91B2>D8`lCRKf`TYA$co4x!HPbR{LznaoqO-5;DvkM^E~G~=e+ma^Y<2g z-%tCTtThl{|C!HHqCK-F9vcLyK7MyY_hR;oGsv;nDidL&o}%&cw|r<)NXJ z+2w$qXx0xRE8m2B8RmEuA)#x+6&SQR%^e!3X@i%x`tmgh$O+HR&;|dCN_0b)zaF=Q zuKE`cB=aWFCiW(i$!EfRCAjUE3WTs#O?p0|Hb|UYNG3I}{Rtt;NBdf9zroxuuP_D= zb{thQWJaw;YGSk1c98`wE83L&;$K;GTH%!F|LX6;tA-Nz+2H9n7@@(R3pPA=_;V#mEkbN0OV*r4Qvp4G zk#2&RQKWmI*eJRuF(wlSaRe5VH0LZ@8}iO&e6OmNZeTQa3ze?$1@55sx2BbdFOcT-^AWsh6vOkW=<>S}-05s$S^60% zv4FgtNW>M;iS+VX!QCX%Jm_c=YsymEq0|?dQrZow7Vo*dS0nN=E>I3_g(<9Z3}%{S z#SqA%%DU!Eruc%gfp)>}mMWee(lo?dw$MyvrlpGU^i&)W3zvZ}Y~$$;PGp*>6XIxt zU=NFM-e`m$;Zi>A(l2EJDdNo-tJcvU3T=^EK3uEAIp{Lx!2L)mzwXtUT`&{z^6zyz s8q(qw(bBxWjXIOiHjt1KgeKS*E$65FdgL?=M7 Date: Wed, 18 Jun 2025 12:58:21 +0200 Subject: [PATCH 09/17] Cambiata estensione file di lettura da txt a fpm --- productPricesSettings.fpm | 0 src/globals.c | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 productPricesSettings.fpm diff --git a/productPricesSettings.fpm b/productPricesSettings.fpm new file mode 100644 index 0000000..e69de29 diff --git a/src/globals.c b/src/globals.c index d524946..049e0a6 100644 --- a/src/globals.c +++ b/src/globals.c @@ -1,3 +1,4 @@ #include "../include/globals.h" -char productPricesFileLocation[64]="./productPricesSettings.txt"; \ No newline at end of file +char productPricesFileLocation[64]="./productPricesSettings.fpm"; +char countFileLocation[64]="./count.fpm" From 2f3ef9736cd4ebdc429865a0c04d3b165c6d4309 Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Tue, 14 Oct 2025 14:36:30 +0200 Subject: [PATCH 10/17] 14-10-25 --- build/globals.o | Bin 1048 -> 1152 bytes build/logic.o | Bin 1824 -> 1720 bytes include/logic.h | 7 ++++--- productManager | Bin 22424 -> 22496 bytes src/globals.c | 2 +- src/logic.c | 4 ---- src/main.c | 21 ++++++++++++--------- tests/test.c | 1 + 8 files changed, 18 insertions(+), 17 deletions(-) diff --git a/build/globals.o b/build/globals.o index 98323c6ad05d53dd0923e2d7ccce08b5eb3f30a9..4a0c38a030b23a75d980d7f2dea6ce1dafeeadb8 100644 GIT binary patch delta 131 zcmbQi(ZD%DgNcD@qLvK6wI*2IGv$J6Y^mXMpriPGl3FEWoP4IBT*ct3Bg3h#DY& z$K;)?_M9(3YJebOG9#Ng=L9AQ&tS46kmtY%;oX?r2;@mX<@6^X1o93*c_l#mno0ZS!c_l!328PLQOjUvj zU?u|t6OaaBzsWn9?lVSCp2=*^IAiifW_!k&lLcAq85c|r1d|hi #include -// TODO: QUI CI VA LA STRUCT DATI +struct product { + char +}; int getCount(); -void changeFile(); int exists(const char *fname); -#endif \ No newline at end of file +#endif diff --git a/productManager b/productManager index 908193500cb3097ab05d8dbaba96bd2563dfbbdb..1702200b66b0cc70dae224b28a01eabd5b9bed19 100755 GIT binary patch delta 3203 zcmZuz3s6+o89wLY1r|hDVA%(c-L-&_s0&&v3kXG7xJ0esGfuDrmDpga7$swEqtsa~ z-CouZe<#IEY|{=+Y?^57Cbn23kcZ$TjbZu-He}Qh@EX!7kWg1eZ~t@e0g>d+?EU}q z{onsQ=ia?7C+U@wv^j%TJ(qdeFlHp$H3mlNGR%$8S975ZS6MUk)ehKC+l@1G_0^<= z3SqaQNe4+2^avN@vki0J{4nZx`>5xo#LC+T&n=0$`Bvb~kPkx^kkvXdob%74G!iQb z=QvMA_Hx{@I`F5k^bl)D#e;s$i}ZCjj6|5NA5XLXkz0Gg8ELj&nP&ZfTNS8?e0H)T z5d)^_LACotMGQ}$f@4LoGc!XSb15OJ>8DEw`D)AjX!`+;BKembEhI$pi-+N{*o^R6 zZL#PFAjjs>jnEaFA!HT8NbIhLzcBu$ch^b20m=JCjFNFrRh5NzRnKPW|9K&?OKhgUP8{j!+XczFNbUuiMFzj{2DwHQM zLOUZWCs0%NAgH{7OU(I@o>MDPIgDE+$>I%cl+}@qye`i;a~#@d0t#2t|kZL z^Bj@IO>oj|5sGu+f;l67fg64Oo;M`lzgP%wkQL6BUCMRTeV!&v^Ej9-$-?CzP+L4L zgXI>x`PNN5M?tmTD9N7V=Wt9~1zy;1iKi+&Z*fSQri98y-P!z?n^u+p+dl~Lor1{C;nC=xM%AO{Fx$r>TVW_v3l>Fg;yh3?hD>Lg2E@XLl&fQb; z=b`TNw0ifpMnoTsQYQ{>>tUOz;RNIHq1-|LgB|s`IF*~<;iL0M)o3RQ_wAy-Z{Noj zH4ne3hq1IRRnoDdq1ov9_I=N-(>z^lHoU&UF|AfOVzbe8aMJcyVdEH7C#U7_M1y|t z*)f!SdwXSZAI6;AXRjjoJc=wyXuzgr z4obeBGwdP8UD2Cq{YonX4P8pFri=UW{l=C@r zC%#R{84Qds4~);;2S;)L#77aAOms%u${QInUe0kL@Kq2Sj0~qy?8Q!*Aa-KyNx+}arGD9mQ6N3)9r+dfU z_r3&Y?bg%+boP4ssn;`3Ww9fh5VvPMx~TvUA&bdcdJJyaQ)vREIF8d}(B(*@X84bz z%slVE_n*Sv$*1tou+mvcAAwh$sq{QtbXvn6MqcxUcLT%Dm|1Y8C?X(aZ3%1m1-27| zzq7rndX~w5t79_OhswDj{YdOp{x-|C^@2F02o{REo%&>*8T#E!&pTm6@R#$ zBna6#bLa)wm}95Ia5N`Td=b%4p$#=w@;F>Vtq--8a0|6@)SAHRP85@{fMeiBEg!Wi z*yv6Stwe40HOO__LZ3m^)DJJXZQ_fl?t(UCo<;3_xP;6;)aU@*M&>xG;e!EN?#m(I zh|YkHB@$Hvh5}be$d(=3z!;qtIp4Lp?&HKs{z_4q9V{SwwMi zn2Q3-fF~I-i&Dz+{*b@&M)PGp5plLl62r2$MqHc3_eQn+Lz=Gxd zLcsaG#X?|1xif@z!=5!R!^ELg;MAH%+63;kF5~cGJ<)_rf<0?phRM(Vz^S#36rU9L tdY55hXNKXa^@WI?T3;x{EQQha1%|3JJ<1@sH!O}QS*5QMDBLbj`9F5~25kTU delta 3268 zcmZWs4Nw&48QyPkgNOVbaNHdn+#Mo;6bq;+KSc<_!V%*S21sqRiA}9`G#$01X;KU_ zr!kl18t}CVGfAcrMN=Ck(^1A)B_rxt>=dj~sNnYbb{BHconhbi zd*0`LpZELO+hyP|Yd_3dGnuU|>xyZ@ENIsRnOTmhHbNiOQZ+`yVfrYSnpu~5QIS5H zvQ#6!XxgiT!d~hV&nEajI_}F`dZOaD%U0c^8&4-XJ;`4Nj)t8HThLvj6K5OzldxvN zE}Sy(Sq8q{zz1pqABSgz*>}vyYkgEFzD6SvR(tD==pT$|JGtjr?fYg#|7t`JQO%q; zraF>PaGs&g&16R$&j`WMQCwu!L#~BP5LC;r7Yo9jpME#Sxl^Nf{EJtY3WCQkt)i#n zGG}LLgGbXyiTggYQ*T_RI9x&_ala5-*U~fbmL~TDRSjlOsH%6E?d)zy4ekJd^sNq5 z@%08r!v&!WN3INM?@o^xSl^Q$V&%pwi`HE*=$QOgMUuAShBF zz;81>Hx%gt5O0uq{1(}T*cZNDz0bp#M(bKGm~_qKy_Ks-ABE=nAg zSJtwa+APjU2_!x*KR~*iIG=7>BAJWsT7DDXhXd}DFAddrpTES0mMT(r5xtd|?tIw^ z{G`WsK^Oiz4hGsE1e+JyOcxVti>mlYnI%HU4Z0_UU#Iie8+`wN(TyV28^g=A(K>(r zV;D_M+b8c;q{Qh+d$0Ts-vdROD5MkC%#808Ld7q4czox17mcHQj(pe~9DwhWThPjn zDAtye-_K);e5jKbI4ctZhVm4-)xT2Yq~rV;@%U|e%x+0+9K#8fTbXxz zYw0VeJ^p1KC_74T*j%3a5Xnd2d%H#7iD@Nv-qVG7xs4(0ao}iBKgGYJdo~YC9 zoIZUm4)R1}_3ohHuI`2+%yamA#v1#h);efGlHK(=N3^{SI#FpT4Xi(X%X*GBB_*>f zv^&W)YdPYy&+&=4>KpoD%Dm!D->9noeDKri@on!{q8ICM=nN~V%neX1wCN;{}pilFqBK*|x;hvDtd1`f>Vryx2 zN(TES?MO+O?_MMb#!BFqg7dH3#tukk;EH7~?*5k_c$8(M&?V|giO(AO50{cIE}WTo zN)PlP!0S}gL`s&Zj!y*oXvD}n0_DlZHmw?DM;^nc^G?ewQYAn1;b z{y2AIcoTn4&Gvfj479>l@;B`_Pyi4%D zq9gFe;bl`FJO`TDL?iHu;Wd)EFj-myuaxrOHNwlIn!@CH@4&l*NxXv0DLwHeP0#`8 z7~-p_4LO(K?WZG!$rPsrzs9r+Gry>MHO_VI zZlXTfYR|$$9VbKy8{+j^c*APf0xh}%(O4)7hN2M^)=*xhm2Ki2rqH@dtGyjevk)T) zxjJXEw}YJ1bkb01NztR)j=(K5X0*eoZzKzUGx+_fI$zrjxc!>S|9=sV0guI(;_!?< zA82(1x*(hFbw*8BoL+PCyUj`NDrx)C5%oS<0%4R=mR2eX;V5nW^Im3R}sPe3#tvxr0 zGkVWsO^L%dgITl*9W&;f3fx5_VmvG0JhqzO^IinX=h0}a=o&-GYv2(EzRkefc$Rb+ z(KM~r=ag4%HJvlq-at)tni$x%^r{%~+{Sf3->|;&XPegtHY_g?1N&CG!q{2rc@qB| z7{_>+#-7~G_EK|gj(Id+SD3WL)Ki-iHT4fe5u(Jx;{&mETNs{|=K37d diff --git a/tests/test.c b/tests/test.c index e046322..c9cc818 100644 --- a/tests/test.c +++ b/tests/test.c @@ -3,5 +3,6 @@ int main(){ printf("%s", productPricesFileLocation); + return 0; } From 7c7859dc9041dc4fe929e2584f6a22ec4f0936b3 Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Wed, 15 Oct 2025 18:49:45 +0200 Subject: [PATCH 11/17] Commit di recap --- build/logic.o | Bin 1720 -> 1720 bytes build/main.o | Bin 4752 -> 4752 bytes build/testLogic.d | 4 ++++ build/testLogic.o | Bin 0 -> 1592 bytes build/windows.o | Bin 10104 -> 10104 bytes git | 7 +++++++ git.pub | 1 + include/logic.h | 7 +++++-- makefile | 4 ++++ productManager | Bin 22496 -> 0 bytes productPricesSettings.fpm | 0 productPricesSettings.txt | 0 src/logic.c | 42 ++++++++++++++++++++++++++++++++++++-- src/testLogic.c | 14 +++++++++++++ 14 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 build/testLogic.d create mode 100644 build/testLogic.o create mode 100644 git create mode 100644 git.pub delete mode 100755 productManager delete mode 100644 productPricesSettings.fpm delete mode 100644 productPricesSettings.txt create mode 100644 src/testLogic.c diff --git a/build/logic.o b/build/logic.o index 0c36febabd29aa0594675e0c9fe725cba3359632..93bc5bd02907288dacc3a5f87bc20fc2c97a4877 100644 GIT binary patch delta 23 ecmdnNyMuSaN**IULj@xPBU1wlL*tEGnb`nUtOkVu delta 23 ecmdnNyMuSaN*+T!Lj@xPBU1wtBh!srnb`nUkOqSQ diff --git a/build/main.o b/build/main.o index bbe69c6c68f6f1aa148882a51734082520103cfa..e6b6b9a0b7efe11bdf20b66cfbbd5874d5af4851 100644 GIT binary patch delta 25 gcmbQBIze?q7dwxUo}q$~fsv_!g`x50Y3#qa0A30QQUCw| delta 25 gcmbQBIze?q7dwxko}q$~fsv_!iIM5%Y3#qa0A1_{Pyhe` diff --git a/build/testLogic.d b/build/testLogic.d new file mode 100644 index 0000000..5a0fa52 --- /dev/null +++ b/build/testLogic.d @@ -0,0 +1,4 @@ +build/testLogic.o: src/testLogic.c src/../include/logic.h \ + src/../include/globals.h +src/../include/logic.h: +src/../include/globals.h: diff --git a/build/testLogic.o b/build/testLogic.o new file mode 100644 index 0000000000000000000000000000000000000000..f6118ee19c768f7f95913659704aa1e046ce7793 GIT binary patch literal 1592 zcmbtTv2GJV5S_C_0wNA3q5y^B8X!opvK>VV6zIT$xQHksr9^OXHi?0|v+fqjNkfO^ z0*MOo3HgMS2nzBA`~eazJyMw2n{n2wqk)n3X6DVj+1Z`Fw~sfT)Pev+0(byto}d87 zwKF@iW&{h+fUVy6NALYPLVDwGKS__jFfjg(&@n+4x7M?-Mi&Nd>;SBHyZ6K8^`~36 z!}hA`sCL+Cbyizz?G$clztby*LlW%*l7(jD6)q2?@gM~~8Wg60VLnLBF3fQ)8dDwD@6%E)F-~_!cPaQ)#wB0w^_G)A>*R+{ zzVj3SRB@1)cpJ6JOT8~vu3yK>=#c@n6Pp;+c2R)Jv(o8jNupDXrJ2zRXMDFXasL(j zd+8fB%(J1+%>i<#lHPy5o5zXfPX15PdFae^Mpq(sWKI&3`w@Q$4Z71v0M;j*_=5e5 zs0os{Cii}mahjDYx$8K#zyBSKQO$qlw~@WQyWX0eA9-@S`%JAfS$d>$b z5)i)VM;H)Wa!7x49mn=_H!((U-tYetbNs&i^Ss17s_FAjn7_tal+UMEST+A;E+})R z`Cq^#e8H>swtMkGkE{bQkDB)J`Bc-NJyDLBAClt;!xQ8(T2=gr`!|!!((w6z08{LF Ae*gdg literal 0 HcmV?d00001 diff --git a/build/windows.o b/build/windows.o index e4b04df50bcea9f66c26734928288e4781a3404e..5558db7c13c3be180ba1e04e189337a90906808f 100644 GIT binary patch delta 25 gcmez2_rq_4IzNw*o}q$~fsv_!g`x3gV}4f&0B-aL7XSbN delta 25 gcmez2_rq_4IzNx0o}q$~fsv_!iIM4MV}4f&0B+U?6#xJL diff --git a/git b/git new file mode 100644 index 0000000..b2cd66e --- /dev/null +++ b/git @@ -0,0 +1,7 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACDoGTp2mFxRu8ExX/qqNfnG0OUg147jqrAhjLkX0hKBxwAAAJhqlG87apRv +OwAAAAtzc2gtZWQyNTUxOQAAACDoGTp2mFxRu8ExX/qqNfnG0OUg147jqrAhjLkX0hKBxw +AAAEC0ZNFQCTPlQrSl0voBkhX5SA6ZjIOTQ1sUiWLOtBhnZugZOnaYXFG7wTFf+qo1+cbQ +5SDXjuOqsCGMuRfSEoHHAAAAFHJleGVyZWZAcG9ydGF0aWxlbnpvAQ== +-----END OPENSSH PRIVATE KEY----- diff --git a/git.pub b/git.pub new file mode 100644 index 0000000..576c8a4 --- /dev/null +++ b/git.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOgZOnaYXFG7wTFf+qo1+cbQ5SDXjuOqsCGMuRfSEoHH rexeref@portatilenzo diff --git a/include/logic.h b/include/logic.h index 0e959a3..1e29679 100644 --- a/include/logic.h +++ b/include/logic.h @@ -7,10 +7,13 @@ #include struct product { - char + float cost; + int numberSold; + char name; }; int getCount(); -int exists(const char *fname); +int existsFile(const char *fname); +void createFile(const char *fname); #endif diff --git a/makefile b/makefile index f2dddec..d67b264 100644 --- a/makefile +++ b/makefile @@ -6,6 +6,7 @@ BUILD_DIR = build SOURCES = $(wildcard $(SRC_DIR)/*.c) OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SOURCES)) EXEC = productManager +EXECTEST = test DEPS = $(OBJECTS:.o=.d) @@ -20,6 +21,9 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c -include $(DEPS) +test: + $(CC) $(CFLAGS) src/logic.c src/testLogic.c -o $(EXECTEST) + clean: rm -rf $(BUILD_DIR) $(EXEC) diff --git a/productManager b/productManager deleted file mode 100755 index 1702200b66b0cc70dae224b28a01eabd5b9bed19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22496 zcmeHPeRx#WnLm>-5YdpJKv7XH6a*B;gzpc51h_D1351WJw&*a-+#~~&xpC%B0<1B( zBdyaRHfwDcyV~-!wCi@;E>COS>RJri68iD9;i+rWmbR%P&NOT{ZDUOpo&CM%o-?^~ zldJBtf9&ql9LRmo`#bN)`99~~x%afGn>QA?Tug>SwuTX>Tx}v1B4JOBh=5eEZr2b5m6C zcKZ56Q%+Kup7U2`rZXFzKi~xlpmy~=^AWDB%tt4(ZRXB=%B&gKe@v0G| zxIKT8uMqN*%6!%cz2Guaz)p_}JxQg%ZP26oe7`|k+%*FXDfKezAyi6zAN%*7YApPl@`3VR7 zNeBFP2m3EN$TvC2uW`Uh)ngqV4qW4QtHjt8dgJzL?>U8a|&X zI-+2U-!P&+y{?Y6?A>1>ESc^Xx3=rYz5!Mn2M-5%m!z}7=VVkSAs5_Vz z3AThHED(>zd@;>n^_tP>KX8DxAOhV`BxLxS{Gljp>rv#CHTYw`fF9PPG1j6*{V|QL z-@17RYiw?ch9X7_3u<99xL-TiUYG|+Sql>iHY{k}lMeqWtG6lU6ikiqKoCXFPcVGy4WGipH8Q==aynqv`eyAElA z1Abp!DB=%?4r#0|5Y~}l$VaHaTC9cU-K7Ks%-E*QRqNLK7J3#l8C&RCl8Y}|%(kqr z-M&NJar;u=63Nt*3I;GJ+lB27OQ;NCyKUy~m*@Nhtv<_C_Z&E0P zHDWA#SYYw%LRh-Su*U@dl^BSE6HFd$GKMN@IU$buJe#JrSRaIv-I2~#b&oZBctvEWokGR(E$ zvW+RN%!13k6yeJ)xY(K#%qlGSl^iiIUJHJe1+TH-)=knK7JPz5Ufv&3{ghbn28(>D z1#hz86D{}w3og1iPd#kG#gO3mgBG0jjWTpt@W~PcJ!ZkDSn%T(e5wV1!h&P9%7v2_ z{JI><*taeC^%lI-g3Eh4Nc-n$n*WrE({y~fU zUt9D~B{#n5O%G_*5}^V^B1A)V=e2f*wP5noDtFXz`0PeVA<&H0tY)6mUya(*H4G-NX;Ie#

@#kPmVBCDabydGC0W{od2RU+XR5 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 diff --git a/productPricesSettings.fpm b/productPricesSettings.fpm deleted file mode 100644 index e69de29..0000000 diff --git a/productPricesSettings.txt b/productPricesSettings.txt deleted file mode 100644 index e69de29..0000000 diff --git a/src/logic.c b/src/logic.c index 888e26f..76f18f7 100644 --- a/src/logic.c +++ b/src/logic.c @@ -6,9 +6,18 @@ #include "../include/logic.h" #include "../include/globals.h" -FILE *products; +/* +* TODO: Listare prodotti con prezzo da file +* TODO: Aggiungere prodotto con prezzo a file +* TODO: Listare copie vendute di prodotto da file +* TODO: Aggiungere copie venduto di prodotto a file +* TODO: Cambiare nome dei file con interagisce +* TODO: Calcolare la somma delle entrate dati i file +*/ -int exists(const char *fname) { +char *products; + +int existsFile(const char *fname) { FILE *file; if ((file = fopen(fname, "r"))) { @@ -18,7 +27,36 @@ int exists(const char *fname) { return 0; } +void createFile(const char *fname) { + FILE *file; + file = fopen(fname, "w"); + fclose(file); +} + +char* getProducts(const char *fname) { + FILE *file; + + if((file=fopen(fname, "r"))==NULL) { + printf("Errore nell'apertura del file"); + exit(1); + } + +// TODO QUESTO CODICE NON E' MIO, RICONTROLLARE FUNZIONAMENTO fread() + + while(!feof(file)){ + n = fread(buffer, sizeof(char), sizeof(buffer), file); + for (i=0; i +#include +#include +#include + +#include "../include/logic.h" +#include "../include/globals.h" + +int main() { + printf("%d", exists("qwestoeuntest")); + createFile("qwestoeuntest"); + printf("%d", exists("qwestoeuntest")); + return 0; +} From d82b5466b0743d2de4ccc9982b76b65f545b22f3 Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Wed, 15 Oct 2025 19:04:35 +0200 Subject: [PATCH 12/17] Rimossi file inutili --- git | 7 ------- git.pub | 1 - tests/makefile | 21 --------------------- tests/test.c | 8 -------- tests/test_runner | Bin 19448 -> 0 bytes 5 files changed, 37 deletions(-) delete mode 100644 git delete mode 100644 git.pub delete mode 100644 tests/makefile delete mode 100644 tests/test.c delete mode 100755 tests/test_runner diff --git a/git b/git deleted file mode 100644 index b2cd66e..0000000 --- a/git +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW -QyNTUxOQAAACDoGTp2mFxRu8ExX/qqNfnG0OUg147jqrAhjLkX0hKBxwAAAJhqlG87apRv -OwAAAAtzc2gtZWQyNTUxOQAAACDoGTp2mFxRu8ExX/qqNfnG0OUg147jqrAhjLkX0hKBxw -AAAEC0ZNFQCTPlQrSl0voBkhX5SA6ZjIOTQ1sUiWLOtBhnZugZOnaYXFG7wTFf+qo1+cbQ -5SDXjuOqsCGMuRfSEoHHAAAAFHJleGVyZWZAcG9ydGF0aWxlbnpvAQ== ------END OPENSSH PRIVATE KEY----- diff --git a/git.pub b/git.pub deleted file mode 100644 index 576c8a4..0000000 --- a/git.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOgZOnaYXFG7wTFf+qo1+cbQ5SDXjuOqsCGMuRfSEoHH rexeref@portatilenzo diff --git a/tests/makefile b/tests/makefile deleted file mode 100644 index 4cac637..0000000 --- a/tests/makefile +++ /dev/null @@ -1,21 +0,0 @@ -CC = gcc -CFLAGS = -Wall -Wextra -g -DTEST_MODE -INCLUDES = -I../include -SRC_DIR = ../src -TEST_EXE = test_runner - -TEST_SRCS = test.c -SRC_FILES = $(SRC_DIR)/logic.c $(SRC_DIR)/globals.c - -all: $(TEST_EXE) - -$(TEST_EXE): $(TEST_SRCS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ $(SRC_FILES) $^ - -run: $(TEST_EXE) - ./$(TEST_EXE) - -clean: - rm -f $(TEST_EXE) *.o - -.PHONY: all run clean diff --git a/tests/test.c b/tests/test.c deleted file mode 100644 index c9cc818..0000000 --- a/tests/test.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "logic.h" -#include "globals.h" - -int main(){ - printf("%s", productPricesFileLocation); - - return 0; -} diff --git a/tests/test_runner b/tests/test_runner deleted file mode 100755 index 89edac377795442d61c2fc578c690e1f83ed32e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19448 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 From 7eee20414c370ad0564e89b7b0f9874babeeb118 Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Wed, 15 Oct 2025 19:09:35 +0200 Subject: [PATCH 13/17] Controllato funzionamento existsFile() createFile() in logic.c --- src/logic.c | 4 ++-- src/testLogic.c | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/logic.c b/src/logic.c index 76f18f7..967334d 100644 --- a/src/logic.c +++ b/src/logic.c @@ -34,7 +34,7 @@ void createFile(const char *fname) { } char* getProducts(const char *fname) { - FILE *file; +/* FILE *file; if((file=fopen(fname, "r"))==NULL) { printf("Errore nell'apertura del file"); @@ -50,7 +50,7 @@ char* getProducts(const char *fname) { count++; } fclose(file); - +*/ } int getCount(){ diff --git a/src/testLogic.c b/src/testLogic.c index 6430a56..ccbf9c7 100644 --- a/src/testLogic.c +++ b/src/testLogic.c @@ -7,8 +7,11 @@ #include "../include/globals.h" int main() { - printf("%d", exists("qwestoeuntest")); + /* Working + printf("%d", existsFile("qwestoeuntest")); createFile("qwestoeuntest"); - printf("%d", exists("qwestoeuntest")); + printf("%d", existsFile("qwestoeuntest")); + */ + return 0; } From b5d9009ce15894986464136bc081c5274c912a4c Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Thu, 16 Oct 2025 14:59:27 +0200 Subject: [PATCH 14/17] Test spiegazione francesco --- build/globals.o | Bin 1152 -> 1152 bytes build/logic.o | Bin 1720 -> 2048 bytes build/testLogic.o | Bin 1592 -> 1224 bytes build/windows.o | Bin 10104 -> 10112 bytes gino.txt | 1 + productManager | Bin 0 -> 22568 bytes src/logic.c | 12 ++++-------- src/windows.c | 2 +- src/testLogic.c => testLogic.c | 0 9 files changed, 6 insertions(+), 9 deletions(-) create mode 100644 gino.txt create mode 100755 productManager rename src/testLogic.c => testLogic.c (100%) diff --git a/build/globals.o b/build/globals.o index 4a0c38a030b23a75d980d7f2dea6ce1dafeeadb8..d2bfa40f567c6cc4644c759f87b1c517e40772a2 100644 GIT binary patch delta 23 ecmZqRY~Y-5p2tYfP{GK+$kf2X(0JqRrOW_N!v^>O delta 23 ecmZqRY~Y-5p2twnP{GK+$kf2Z$aLfFrOW_Nrv~-_ diff --git a/build/logic.o b/build/logic.o index 93bc5bd02907288dacc3a5f87bc20fc2c97a4877..a65a17f72e60a793893d8885093c4af6dea4e297 100644 GIT binary patch delta 479 zcmdnN+aNGOgQ68$6qi2!Gx2CLp?g5dUV$Qm=FtQ?f?nL9tM#N z3`Gp(6KBd!+)-j_3gSBQ3A8ae^RgB2uyX*pGC&*y5(ffq5CM~SL&(=mR%KkxC_DKg zqd227h_uuKDimU1WN-)R00OYdP#Pp&0~Upv2xL0~F-W|9GAEO|nOkN~DnnX+L24dD zT5?W)aVkS{QEFmIDp)){wIrY@KczIeq?iH7cFr%&D*>A}*^S9dG7M@k6Od*G;(z}k zAa!yglQ?7P*PhAayXuG@yyMPu|INpK;RUnat*#5+K8XV8Y~^%;t=jCJVCI zGv1gS$YRfV10un|GI=J8Ipdwl7lATACJVBH$Us(mP7Owgf*F%%vYKAlCqa*W^exb50Hx2(JX_0C@n7US!As delta 251 zcmZn=*ugtNgUNzXv|mStp^_`P)U8pb7zl9L0O#2Mv5B&Qls zR)~R-!F}>hCUr4}wETk9JchL7oc!WchV;}D=ls&VlF4GsUXxca8%*Y4xxpAT`5}ur zrw0?*Tn3NHimc|0lO`Wzl%DLt#xuErRf2KGptMsJRA{71_kWrEiq=bQCvIdh0e@SXZ34>lrVo4%{UQ%)K@c_h literal 1592 zcmbtTv2GJV5S_C_0wNA3q5y^B8X!opvK>VV6zIT$xQHksr9^OXHi?0|v+fqjNkfO^ z0*MOo3HgMS2nzBA`~eazJyMw2n{n2wqk)n3X6DVj+1Z`Fw~sfT)Pev+0(byto}d87 zwKF@iW&{h+fUVy6NALYPLVDwGKS__jFfjg(&@n+4x7M?-Mi&Nd>;SBHyZ6K8^`~36 z!}hA`sCL+Cbyizz?G$clztby*LlW%*l7(jD6)q2?@gM~~8Wg60VLnLBF3fQ)8dDwD@6%E)F-~_!cPaQ)#wB0w^_G)A>*R+{ zzVj3SRB@1)cpJ6JOT8~vu3yK>=#c@n6Pp;+c2R)Jv(o8jNupDXrJ2zRXMDFXasL(j zd+8fB%(J1+%>i<#lHPy5o5zXfPX15PdFae^Mpq(sWKI&3`w@Q$4Z71v0M;j*_=5e5 zs0os{Cii}mahjDYx$8K#zyBSKQO$qlw~@WQyWX0eA9-@S`%JAfS$d>$b z5)i)VM;H)Wa!7x49mn=_H!((U-tYetbNs&i^Ss17s_FAjn7_tal+UMEST+A;E+})R z`Cq^#e8H>swtMkGkE{bQkDB)J`Bc-NJyDLBAClt;!xQ8(T2=gr`!|!!((w6z08{LF Ae*gdg diff --git a/build/windows.o b/build/windows.o index 5558db7c13c3be180ba1e04e189337a90906808f..10862d1752fec60abae84e1b3fb77fd4ff0ac9c8 100644 GIT binary patch delta 154 zcmez2*Wf=vgRxGb00o5CbE_1XczxcnqN!cqShd7H1R&lPX|RZ}LZ=h#8n| zGg(nYoY5J?o*W<|!RP}P4FQwUV9^aC|5)5Ib5bX-6HQ`bVA#wj#>B@cu~|^Xo{_O& dbD*j{BNKzt=dW3X3!HgGmK2sWtf{P{at# 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 G?Ee>AwanH4 literal 0 HcmV?d00001 diff --git a/src/logic.c b/src/logic.c index 967334d..653b437 100644 --- a/src/logic.c +++ b/src/logic.c @@ -13,6 +13,8 @@ * TODO: Aggiungere copie venduto di prodotto a file * TODO: Cambiare nome dei file con interagisce * TODO: Calcolare la somma delle entrate dati i file +* TODO: Aggiungere la possibilità di aggiungere gli acquisti non compiuti con intenzioni di acquisto. +* e.g. persona vuole acquistare maglietta S ma non c'è la taglia */ char *products; @@ -36,12 +38,7 @@ void createFile(const char *fname) { char* getProducts(const char *fname) { /* FILE *file; - if((file=fopen(fname, "r"))==NULL) { - printf("Errore nell'apertura del file"); - exit(1); - } - -// TODO QUESTO CODICE NON E' MIO, RICONTROLLARE FUNZIONAMENTO fread() + file = fopen(fname, "r") while(!feof(file)){ n = fread(buffer, sizeof(char), sizeof(buffer), file); @@ -49,8 +46,7 @@ char* getProducts(const char *fname) { if (buffer[i] == c) count++; } - fclose(file); -*/ + fclose(file);*/ } int getCount(){ diff --git a/src/windows.c b/src/windows.c index e413f60..550bc05 100644 --- a/src/windows.c +++ b/src/windows.c @@ -122,7 +122,7 @@ void runOptionsMenu(){ curs_set(0); wattroff(optionsWin, COLOR_PAIR(2)); - if (exists(input)) { + if (existsFile(input)) { statusf("Il file '%s' esiste e verra' utilizzato al posto di '%s'", input, productPricesFileLocation); strcpy(productPricesFileLocation, input); } diff --git a/src/testLogic.c b/testLogic.c similarity index 100% rename from src/testLogic.c rename to testLogic.c From a0314628bd55e24883e5c12d601384d3bca79d33 Mon Sep 17 00:00:00 2001 From: Moretti Date: Thu, 16 Oct 2025 15:02:31 +0200 Subject: [PATCH 15/17] rimosso file inutile come me --- gino.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 gino.txt diff --git a/gino.txt b/gino.txt deleted file mode 100644 index 458ca50..0000000 --- a/gino.txt +++ /dev/null @@ -1 +0,0 @@ -fanculo moretti From e8d5e7d2b1ba2b2ef7dfaba4f0380cff023931c1 Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Fri, 31 Oct 2025 14:37:16 +0100 Subject: [PATCH 16/17] aggiunto file .gitignore --- .gitignore | 1 + .vscode/settings.json | 11 ----------- 2 files changed, 1 insertion(+), 11 deletions(-) create mode 100644 .gitignore delete mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..722d5e7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index dc80d73..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "makefile.configureOnOpen": false, - "files.associations": { - "ncurses.h": "c", - "logic.h": "c", - "stdio.h": "c", - "globals.h": "c", - "windows.h": "c", - "stdlib.h": "c" - } -} \ No newline at end of file From fac33176edbf93c81eee597fcf74d63eff66e85a Mon Sep 17 00:00:00 2001 From: Vincenzo Nikodem Cesqui Podiani Date: Fri, 31 Oct 2025 15:40:55 +0100 Subject: [PATCH 17/17] rimosso dal branch il file di samuele --- counter.c | 741 ------------------------------------------------------ 1 file changed, 741 deletions(-) delete mode 100644 counter.c diff --git a/counter.c b/counter.c deleted file mode 100644 index d66e92a..0000000 --- a/counter.c +++ /dev/null @@ -1,741 +0,0 @@ -#include -int main(void){ - - char control; - int selector; - int num; - int add; - int sp, sp5, sg, sg3, spi, spi5, c, c5, sh, sh2, t, t3, bo, bo3, bi, bi3, mh, mh3, p, o, b, shv, shv2, mhv, mhv3; - float p_sp = 0.5; - int p_sp5 = 2; - int p_sg = 1; - int p_sg3 = 2; - int p_spi = 1; - int p_spi5 = 4; - int p_c = 3; - int p_c5 = 10; - int p_sh = 3; - int p_sh2 = 5; - int p_t = 6; - int p_t3 = 12; - int p_bo = 5; - int p_bo3 = 11; - int p_mh = 10; - int p_mh3 = 25; - int p_p = 3; - int p_o = 1; - int p_b = 1; - int p_shv = 3; - int p_shv2 = 5; - int p_mhv = 10; - int p_mhv3 = 25; - float r_sp, tot; - float r_sg, r_spi, r_c, r_sh, r_t, r_bo, r_bi, r_mh, r_p, r_o, r_b, r_shv, r_mhv; - FILE *ptRsp = NULL; - FILE *ptWsp = NULL; - FILE *ptRsp5 = NULL; - FILE *ptWsp5 = NULL; - FILE *ptRsg = NULL; - FILE *ptWsg = NULL; - FILE *ptRsg3 = NULL; - FILE *ptWsg3 = NULL; - FILE *ptRspi = NULL; - FILE *ptWspi = NULL; - FILE *ptRspi5 = NULL; - FILE *ptWspi5 = NULL; - FILE *ptRc = NULL; - FILE *ptWc = NULL; - FILE *ptRc5 = NULL; - FILE *ptWc5 = NULL; - FILE *ptRsh = NULL; - FILE *ptWsh = NULL; - FILE *ptRsh2 = NULL; - FILE *ptWsh2 = NULL; - FILE *ptRt = NULL; - FILE *ptWt = NULL; - FILE *ptRt3 = NULL; - FILE *ptWt3 = NULL; - FILE *ptRbo = NULL; - FILE *ptWbo = NULL; - FILE *ptRbo3 = NULL; - FILE *ptWbo3 = NULL; - FILE *ptRbi = NULL; - FILE *ptWbi = NULL; - FILE *ptRbi3 = NULL; - FILE *ptWbi3 = NULL; - FILE *ptRmh = NULL; - FILE *ptWmh = NULL; - FILE *ptRmh3 = NULL; - FILE *ptWmh3 = NULL; - FILE *ptRp = NULL; - FILE *ptWp = NULL; - FILE *ptRo = NULL; - FILE *ptWo = NULL; - FILE *ptRb = NULL; - FILE *ptWb = NULL; - FILE *ptRshv = NULL; - FILE *ptWshv = NULL; - FILE *ptRshv2 = NULL; - FILE *ptWshv2 = NULL; - FILE *ptRmhv = NULL; - FILE *ptWmhv = NULL; - FILE *ptRmhv3 = NULL; - FILE *ptWmhv3 = NULL; - - while(1){ - printf("0 sticker piccoli\n50 sticker piccoli x5\n1 sticker grandi\n31 sticker grandi x3\n2 spillette\n52 spillette x5\n3 clipper\n53 clipper x5\n4 shopper\n24 shopper x2\n5 tazza\n35 tazza x3\n6 maglietta bordò\n36 maglietta bordò x3\n7 maglietta bianca\n37 maglietta bianca x3\n8 maglietta high\n38 maglietta high x3\n9 portachiavi\n10 occhiali da sole\n11 blocco note\n12 borse vecchie\n212 borse vecchie x2\n13maglietta high vecchia\n313 maglietta high vecchia x3\n100 resoconto\n198456 reset file\n"); - if( control = scanf("%d", &selector) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - switch(selector){ - case 0: - ptRsp = fopen("sp","r"); - if (ptRsp == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRsp,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRsp); - ptWsp = fopen("sp","w"); - fprintf(ptWsp,"%d",num); - fclose(ptWsp); - break; - case 50: - ptRsp5 = fopen("sp5","r"); - if (ptRsp5 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRsp5,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRsp5); - ptWsp5 = fopen("sp5","w"); - fprintf(ptWsp5,"%d",num); - fclose(ptWsp5); - break; - case 1: - ptRsg = fopen("sg","r"); - if (ptRsg == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRsg,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRsg); - ptWsg = fopen("sg","w"); - fprintf(ptWsg,"%d",num); - fclose(ptWsg); - break; - case 31: - ptRsg3 = fopen("sg3","r"); - if (ptRsg3 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRsg3,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRsg3); - ptWsg3 = fopen("sg3","w"); - fprintf(ptWsg3,"%d",num); - fclose(ptWsg3); - break; - case 2: - ptRspi = fopen("spi","r"); - if (ptRsg == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRspi,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRspi); - ptWspi = fopen("spi","w"); - fprintf(ptWspi,"%d",num); - fclose(ptWspi); - break; - case 52: - ptRspi5 = fopen("spi5","r"); - if (ptRspi5 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRspi5,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRspi5); - ptWspi5 = fopen("spi5","w"); - fprintf(ptWspi5,"%d",num); - fclose(ptWspi5); - break; - case 3: - ptRc = fopen("c","r"); - if (ptRc == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRc,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRc); - ptWc = fopen("c","w"); - fprintf(ptWc,"%d",num); - fclose(ptWc); - break; - case 53: - ptRc5 = fopen("c5","r"); - if (ptRc5 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRc5,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRc5); - ptWc5 = fopen("c5","w"); - fprintf(ptWc5,"%d",num); - fclose(ptWc5); - break; - case 4: - ptRsh = fopen("sh","r"); - if (ptRsh == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRsh,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRsh); - ptWsh = fopen("sh","w"); - fprintf(ptWsh,"%d",num); - fclose(ptWsh); - break; - case 24: - ptRsh2 = fopen("sh2","r"); - if (ptRsh2 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRsh2,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRsh2); - ptWsh2 = fopen("sh2","w"); - fprintf(ptWsh2,"%d",num); - fclose(ptWsh2); - break; - case 5: - ptRt = fopen("t","r"); - if (ptRt == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRt,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRt); - ptWt = fopen("t","w"); - fprintf(ptWt,"%d",num); - fclose(ptWt); - break; - case 35: - ptRt3 = fopen("t3","r"); - if (ptRt3 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRt3,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRt3); - ptWt3 = fopen("t3","w"); - fprintf(ptWt3,"%d",num); - fclose(ptWt3); - break; - case 6: - ptRbo = fopen("bo","r"); - if (ptRbo == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRbo,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRbo); - ptWbo = fopen("bo","w"); - fprintf(ptWbo,"%d",num); - fclose(ptWbo); - break; - case 36: - ptRbo3 = fopen("bo3","r"); - if (ptRbo3 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRbo3,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRbo3); - ptWbo3 = fopen("bo3","w"); - fprintf(ptWbo3,"%d",num); - fclose(ptWbo3); - break; - case 7: - ptRbi = fopen("bi","r"); - if (ptRbi == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRbi,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRbi); - ptWbi = fopen("bi","w"); - fprintf(ptWbi,"%d",num); - fclose(ptWbi); - break; - case 37: - ptRbi3 = fopen("bi3","r"); - if (ptRbi3 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRbi3,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRbi3); - ptWbi3 = fopen("bi3","w"); - fprintf(ptWbi3,"%d",num); - fclose(ptWbi3); - break; - case 8: - ptRmh = fopen("mh","r"); - if (ptRmh == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRmh,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRmh); - ptWmh = fopen("mh","w"); - fprintf(ptWmh,"%d",num); - fclose(ptWmh); - break; - case 38: - ptRmh3 = fopen("mh3","r"); - if (ptRmh3 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRmh3,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRmh3); - ptWmh3 = fopen("mh3","w"); - fprintf(ptWmh3,"%d",num); - fclose(ptWmh3); - break; - case 9: - ptRp = fopen("p","r"); - if (ptRp == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRp,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRp); - ptWp = fopen("p","w"); - fprintf(ptWp,"%d",num); - fclose(ptWp); - break; - case 10: - ptRo = fopen("o","r"); - if (ptRo == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRo,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRo); - ptWo = fopen("o","w"); - fprintf(ptWo,"%d",num); - fclose(ptWo); - break; - case 11: - ptRb = fopen("b","r"); - if (ptRb == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRb,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRb); - ptWb = fopen("b","w"); - fprintf(ptWb,"%d",num); - fclose(ptWb); - break; - case 12: - ptRshv = fopen("shv","r"); - if (ptRshv == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRshv,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRshv); - ptWshv = fopen("shv","w"); - fprintf(ptWshv,"%d",num); - fclose(ptWshv); - break; - case 212: - ptRshv2 = fopen("shv2","r"); - if (ptRshv2 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRshv2,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRshv2); - ptWshv2 = fopen("shv2","w"); - fprintf(ptWshv2,"%d",num); - fclose(ptWshv2); - break; - case 13: - ptRmhv = fopen("mhv","r"); - if (ptRmhv == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRmhv,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRmhv); - ptWmhv = fopen("mhv","w"); - fprintf(ptWmhv,"%d",num); - fclose(ptWmhv); - break; - case 313: - ptRmhv3 = fopen("mhv3","r"); - if (ptRmhv3 == NULL){ - printf("file non aperto\n"); - break; - } - fscanf(ptRmhv3,"%d", &num); - printf("quantità venduta?\n"); - if( control = scanf("%d", &add) != 1){ - if(control == EOF) break; - scanf("%*[^\n\r]"); - break; - } - num = num + add; - fclose(ptRmhv3); - ptWmhv3 = fopen("mhv3","w"); - fprintf(ptWmhv3,"%d",num); - fclose(ptWmhv3); - break; - case 100: - ptRsp = fopen("sp","r"); - fscanf(ptRsp,"%d",&sp); - fclose(ptRsp); - ptRsp5 = fopen("sp5","r"); - fscanf(ptRsp5,"%d",&sp5); - fclose(ptRsp5); - ptRsg = fopen("sg","r"); - fscanf(ptRsg,"%d",&sg); - fclose(ptRsg); - ptRsg3 = fopen("sg3","r"); - fscanf(ptRsg3,"%d",&sg3); - fclose(ptRsg3); - ptRspi = fopen("spi","r"); - fscanf(ptRspi,"%d",&spi); - fclose(ptRspi); - ptRspi5 = fopen("spi5","r"); - fscanf(ptRspi5,"%d",&spi5); - fclose(ptRspi5); - ptRc = fopen("c","r"); - fscanf(ptRc,"%d",&c); - fclose(ptRc); - ptRc5 = fopen("c5","r"); - fscanf(ptRc5,"%d",&c5); - fclose(ptRc5); - ptRsh = fopen("sh","r"); - fscanf(ptRsh,"%d",&sh); - fclose(ptRsh); - ptRsh2 = fopen("sh2","r"); - fscanf(ptRsh2,"%d",&sh2); - fclose(ptRsh2); - ptRt = fopen("t","r"); - fscanf(ptRt,"%d",&t); - fclose(ptRt); - ptRt3 = fopen("t3","r"); - fscanf(ptRt3,"%d",&t3); - fclose(ptRt3); - ptRbo = fopen("bo","r"); - fscanf(ptRbo,"%d",&bo); - fclose(ptRbo); - ptRbo3 = fopen("bo3","r"); - fscanf(ptRbo3,"%d",&bo3); - fclose(ptRbo3); - ptRbi = fopen("bi","r"); - fscanf(ptRbi,"%d",&bi); - fclose(ptRbi); - ptRbi3 = fopen("bi3","r"); - fscanf(ptRbi3,"%d",&bi3); - fclose(ptRbi3); - ptRmh = fopen("mh","r"); - fscanf(ptRmh,"%d",&mh); - fclose(ptRmh); - ptRmh3 = fopen("mh3","r"); - fscanf(ptRmh3,"%d",&mh3); - fclose(ptRmh3); - ptRp = fopen("p","r"); - fscanf(ptRp,"%d",&p); - fclose(ptRp); - ptRo = fopen("o","r"); - fscanf(ptRo,"%d",&o); - fclose(ptRo); - ptRb = fopen("b","r"); - fscanf(ptRb,"%d",&b); - fclose(ptRb); - ptRshv = fopen("shv","r"); - fscanf(ptRshv,"%d",&shv); - fclose(ptRshv); - ptRshv2 = fopen("shv2","r"); - fscanf(ptRshv2,"%d",&shv2); - fclose(ptRshv2); - ptRmhv = fopen("mhv","r"); - fscanf(ptRmhv,"%d",&mhv); - fclose(ptRmhv); - ptRmhv3 = fopen("mhv3","r"); - fscanf(ptRmhv3,"%d",&mhv3); - fclose(ptRmhv3); - r_sp = sp*p_sp + (sp5/5)*p_sp5; - r_sg = sg*p_sg + (sg3/3)*p_sg3; - r_spi = spi*p_spi + (spi5/5)*p_spi5; - r_c = c*p_c + (c5/5)*p_c5; - r_sh = sh*p_sh + (sh2/2)*p_sh2; - r_t = t*p_t + (t3/3)*p_t3; - r_bo = bo*p_bo + (bo3/3)*p_bo3; - r_bi = bi*p_bo + (bi3/3)*p_bo3; - r_mh = mh*p_mh + (mh3/3)*p_mh3; - r_p = p*p_p; - r_o = o*p_o; - r_b = b*p_b; - r_shv = shv*p_shv + (shv2/2)*p_shv2; - r_mhv = mhv*p_mhv + (mhv3/3)*p_mhv3; - tot = r_sp + r_sg + r_spi + r_c + r_sh + r_t + r_bo + r_bi + r_mh + r_p + r_o + r_b + r_shv + r_mhv; - printf("resoconto vendite\nsticker piccoli %d di cui in bundle %d con un guadagno di %.02f euro\nsticker grandi %d di cui in bundle %d con un guadagno di %.02f euro\nspillette %d di cui in bundle %d con un guadagno di %.02f euro\nclipper %d di cui in bundle %d con un guadagno di %.02f euro\nshopper %d di cui in bundle %d con un guadagno di %.02f euro\ntazze %d di cui in bundle %d con un guadagno di %.02f euro\nmagliette bordò %d di cui in bundle %d con un guadagno di %.02f euro\nmagliette bianche %d di cui in bundle %d con un guadagno di %.02f euro\nmagliette high %d di cui in bundle %d con un guadagno di %.02f euro\nportachiavi %d con un guadagno di %.02f euro\nocchiali da sole %d con un guadagno di %.02f euro\nblocco note %d con un guadagno di %.02f euro\nborse vecchie %d di cui in bundle %d con un guadagno in euro di %.02f euro\nmagliette high vecchie %d di cui in bundle %d con un guadagno di %.02f euro\nguadagno totale di %.02f\n", sp+sp5, sp5, r_sp, sg+sg3, sg3, r_sg, spi+spi5, spi5,r_spi, c+c5, c5, r_c, sh+sh2, sh2,r_sh, t+t3, t3, r_t, bo+bo3, bo3, r_bo, bi+bi3, bi3, r_bi, mh+mh3, mh3,r_mh, p, r_p, o, r_o, b, r_b, shv+shv2, shv2, r_shv, mhv+mhv3, mhv3, r_mhv, tot); - break; - case 198456: - ptWsp = fopen("sp","w"); - fprintf(ptWsp,"0"); - fclose(ptWsp); - ptWsp5 = fopen("sp5","w"); - fprintf(ptWsp5,"0"); - fclose(ptWsp5); - ptWsg = fopen("sg","w"); - fprintf(ptWsg,"0"); - fclose(ptWsg); - ptWsg3 = fopen("sg3","w"); - fprintf(ptWsg3,"0"); - fclose(ptWsg3); - ptWspi = fopen("spi","w"); - fprintf(ptWspi,"0"); - fclose(ptWspi); - ptWspi5 = fopen("spi5","w"); - fprintf(ptWspi5,"0"); - fclose(ptWspi5); - ptWc = fopen("c","w"); - fprintf(ptWc,"0"); - fclose(ptWc); - ptWc5 = fopen("c5","w"); - fprintf(ptWc5,"0"); - fclose(ptWc5); - ptWsh = fopen("sh","w"); - fprintf(ptWsh,"0"); - fclose(ptWsh); - ptWsh2 = fopen("sh2","w"); - fprintf(ptWsh2,"0"); - fclose(ptWsh2); - ptWt = fopen("t","w"); - fprintf(ptWt,"0"); - fclose(ptWt); - ptWt3 = fopen("t3","w"); - fprintf(ptWt3,"0"); - fclose(ptWt3); - ptWbo = fopen("bo","w"); - fprintf(ptWbo,"0"); - fclose(ptWbo); - ptWbo3 = fopen("bo3","w"); - fprintf(ptWbo3,"0"); - fclose(ptWbo3); - ptWbi = fopen("bi","w"); - fprintf(ptWbi,"0"); - fclose(ptWbi); - ptWbi3 = fopen("bi3","w"); - fprintf(ptWbi3,"0"); - fclose(ptWbi3); - ptWmh = fopen("mh","w"); - fprintf(ptWmh,"0"); - fclose(ptWmh); - ptWmh3 = fopen("mh3","w"); - fprintf(ptWmh3,"0"); - fclose(ptWmh3); - ptWp = fopen("p","w"); - fprintf(ptWp,"0"); - fclose(ptWp); - ptWo = fopen("o","w"); - fprintf(ptWo,"0"); - fclose(ptWo); - ptWb = fopen("b","w"); - fprintf(ptWb,"0"); - fclose(ptWb); - ptWshv = fopen("shv","w"); - fprintf(ptWshv,"0"); - fclose(ptWshv); - ptWshv2 = fopen("shv2","w"); - fprintf(ptWshv2,"0"); - fclose(ptWshv2); - ptWmhv = fopen("mhv","w"); - fprintf(ptWmhv,"0"); - fclose(ptWmhv); - ptWmhv3 = fopen("mhv3","w"); - fprintf(ptWmhv3,"0"); - fclose(ptWmhv3); - break; - - } - } -}