/*Gnwsta bugs */ #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"); //O logos pou to anoigei einai gia na doume apla an yparxei if(!x) flag2=1; y=1; while(y!=0) { if(flag2==1) y=menu(); //Auto to menu einai diamorfwmeno an to arxeio den yparxei else y=menu2();//Diamorfwmeno gia pliri leitourgia 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); 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{ printf("\n Dwse mera: "); scanf("%d",&o.im); scanf("%c",&buffer); }while(o.im<1 || o.im>31); do{ printf("\n Dwse mina: "); scanf("%d",&o.mi); scanf("%c",&buffer); }while(o.mi<1 || o.mi>12); do{ printf("\nDwse year: "); scanf("%d",&o.ye); scanf("%c",&buffer); }while(o.ye<2000 || o.ye>2100); printf("\n Ti agorases? "); scanf("%s",o.onoma); printf("\n Posa lefta ksodepses? "); scanf("%f",&o.poso); fwrite(&o,sizeof(struct oikonomika),1,x); o.im=NULL; o.mi=NULL; o.ye=NULL; printf("Thes na kaneis k alli eisagwgi?\n 1.NAI\n0.OXI\n"); do{ scanf("%d",&telos); scanf("%c",&buffer); }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=1; //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(feof(x)) break; 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)); if(epit==1) printf("De vrethike kapoio apotelesma\n"); fclose(x); }