All pastes #961707 Raw Edit

Untitled

public text v1 · immutable
#961707 ·published 2008-03-29 02:55 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 yparxei
int menu2();      //Diamorfwmeno gia pliri leitourgia
void dimiourgia();
void provoli();
void anazitisi();
void diorthwsi();
void delete();
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 4:{
                          diorthwsi();
                          break;
                         }
                   case 5:{
                          delete();
                          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,k;
    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;
                   fseek(x,k-1sizeof(struct oikonomika),SEEK_CUR);
                   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);
       fwrite(&o,sizeof(struct oikonomika),1,x);
       vrethike=1;
       break;
      }
    }
       if(vrethike==0)
               printf("H egrafi pou zitises de vrethike! \n");
    fclose(x);
}