/*Gnwsta bugs 1) Den yparxei elegxos gia to an i eisagwgi einai gramma 2) Stin anazitisi otan exei ena emfanisi ena apotelesma to emfanizei 2 fores */ #include #include struct oikonomika{ int im,mi,ye; float poso; char onoma[15]; }; int menu(); //Auto to menu einai diamorfwmeno an to arxeio den yparxei int menu2(); //Diamorfwmeno gia pliri leitourgia void dimiourgia(); void provoli(); void anazitisi(); struct oikonomika o; FILE *x; int flag2=0; char buffer; int main(void){ int y; //flag tha xrisimipoiithei gia to menu x=fopen("oikonomika.dat","rb"); if(!x) flag2=1; y=1; while(y!=0) { if(flag2==1) y=menu(); else y=menu2(); switch(y){ case 1:{ dimiourgia(); break; } case 2:{ provoli(); break; } case 3:{ anazitisi(); break; } case 0:{ printf("\nTelos programmatos\n"); break; } default:{ printf("\nLathos epilogi\n"); break; } } } return 0; } int menu(int z) { do{ printf("\n1) Dimiourgeia neas kataxwrisei"); printf("\n0) Exodos"); printf("\n\nTi theleis na kaneis? "); scanf("%d",&z); scanf("%c",&buffer); }while(z<0 || z>1); return z; } int menu2(int z) { do{ printf("\n1) Dimiourgeia neas kataxwrisei"); printf("\n2) Provoli kataxwrisewn arxeiou"); printf("\n3) Anazitisi"); printf("\n0) Exodos"); printf("\n\nTi theleis na kaneis? "); scanf("%d",&z); scanf("%c",&buffer); }while(z<0 || z>3); //while (z!=((z > 47)&&(z < 52))); // } //while z != ((z > 47)&&(z < 52)) { printf("Lathos epilogh"); scanf pali } //while ( z!=((z > 47)&&(z < 52)) ) return z; } void dimiourgia() { int telos; int flag; x=fopen("oikonomika.dat","ab"); if(!x) { x=fopen("oikonomika.dat","wb"); flag=1; } do{ printf("\n Gia poia imerominia thes na kataxwriseis ta eksoda sou? "); printf("\n Dwse mera: "); do{ scanf("%d",&o.im); }while(o.im<1 || o.im>31); printf("\n Dwse mina: "); do{ scanf("%d",&o.mi); }while(o.mi<1 || o.mi>12); printf("\nDwse year: "); scanf("%d",&o.ye); printf("\n Ti agorases? "); scanf("%s",o.onoma); printf("\n Posa lefta ksodepses? "); scanf("%f",&o.poso); fwrite(&o,sizeof(struct oikonomika),1,x); printf("Thes na kaneis k alli eisagwgi?\n 1.NAI\n0.OXI\n"); do{ scanf("%d",&telos); }while(telos<0 || telos>1); }while(telos==1); flag2=0; fclose(x); } void provoli() { int v=0; x=fopen("oikonomika.dat","rb"); printf("\na/a Hmerominia Antikeimeno Poso\n"); do{ fread(&o,sizeof(struct oikonomika),1,x); v++; if(!feof(x)) printf("%d) %d:%d:%d %-10s %.2f\n",v,o.im,o.mi,o.ye,o.onoma,o.poso); }while(!feof(x)); fclose(x); } void anazitisi() { int i,m,y,c=0; //i c gia ton a/a int epit=1; x=fopen("oikonomika.dat","rb"); printf("\nMe vasi poia imerominia thes na anazitiseis? Dwse imera,mina kai xronia: "); scanf("%d%d%d",&i,&m,&y); printf("\na/a Hmerominia Antikeimeno Poso\n"); do{ fread(&o,sizeof(struct oikonomika),1,x); if(!x) break; //Xwris auto to teleutaio apotelesma tha emfanistei 2 fores if(o.im==i && o.mi==m && o.ye==y) { printf("%d %d:%d:%d %-10s %.2f\n",c,o.im,o.mi,o.ye,o.onoma,o.poso); epit=0; } c++; }while(!feof(x)); //while(!feof(x) && (epit==1)); if(epit==1) printf("De vrethike kapoio apotelesma\n"); fclose(x); }