All pastes #945500 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-03-16 23:36 UTC
rendered paste body
/*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 <stdio.h>
#include <stdlib.h>

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);
}