rendered paste body#include <stdio.h>#include <stdlib.h>#include <string.h>struct oikonomika{int im,mi,ye;float poso;char onoma[15];};int menu(); //Auto to menu einai diamorfwmeno an to arxeio den yparxeiint menu2(); //Diamorfwmeno gia pliri leitourgiavoid dimiourgia();void provoli();void anazitisi();void diorthwsi();void delete2();struct oikonomika o;int vret; //an vrethike i oxi i eggrafi sto delete2(); O logos pou xrisimopoietai edw, einai oti se topiki dilwsi evgaze sfalmaFILE *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 4:{ diorthwsi(); break; } case 5:{ delete2(); 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("\n4) Diorthwsi"); printf("\n5) Diagrafi"); printf("\n0) Exodos"); printf("\n\nTi theleis na kaneis? "); scanf("%d",&z); scanf("%c",&buffer); }while(z<0 || z>5); 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; //otan ekanes alli eisagwgi evgaze provlima sto buffer 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; //leei sto menu oti yparxei k emfanizei menu2 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++; //aukson arithmos 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; //epityxeia i apotyxeia anazitisis 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);}void diorthwsi(){ int i,m,y; int k=0; //metraei tis grammes pou tha metakinithei o deiktis prin ti diorthwsi int vrethike=0; //an vrethike i oxi i eggrafi char logos[15]; printf("Me vasi poia imerominia theleis na ginei i diorthwsi? Dwse imera,mina kai xronia: \n"); scanf("%d%d%d",&i,&m,&y); printf("\n Se ti ta ksodepses?\n"); scanf("%s",&logos); x=fopen("oikonomika.dat","rb"); while(!feof(x)){ fread(&o,sizeof(struct oikonomika),1,x); if(feof(x)) break; k++; if(o.im==i && o.mi==m && o.ye==y && strcmp(o.onoma,logos)==0) { x=fopen("oikonomika.dat","rb+"); vrethike=1; printf("Dwse ta nea stoixeia:\n"); 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); fseek(x,(k-1)*sizeof(struct oikonomika),SEEK_CUR); //fseek(x,-sizeof(struct oikonomika),SEEK_CUR); fwrite(&o,sizeof(struct oikonomika),1,x); vrethike=1; break; } } if(vrethike==0) printf("H egrafi pou zitises de vrethike! \n"); fclose(x);}void delete2(){ { int i,m,y; char logos[15]; printf("Me vasi poia imerominia theleis na ginei i diagrafi? Dwse imera,mina kai xronia: \n"); scanf("%d%d%d",&i,&m,&y); printf("\n\nSe ti ta ksodepses?\n"); scanf("%s",&logos); x=fopen("oikonomika.dat","rb+"); while(!feof(x)){ fread(&o,sizeof(struct oikonomika),1,x); if(feof(x)) break; vret=0; //test //printf("Times struct afa%d%d%d%sbiv\n",o.im,o.mi,o.ye,o.onoma); //test //printf("Times dikes mou afa%d%d%d%sbiv\n",i,m,y,logos); if(o.im==i && o.mi==m && o.ye==y && strcmp(o.onoma,logos)==0) { //x=fopen("oikonomika.dat","rb+"); vret=1; fseek(x,0,SEEK_CUR); // fwrite(&o,0,1,x); } } } if(vret==0) printf("H egrafi pou zitises de vrethike! \n"); fclose(x);}