All pastes #963616 Raw Edit

Untitled

public c v1 · immutable
#963616 ·published 2008-03-30 18:13 UTC
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);}