Advertisement
weeez

bead1

Oct 17th, 2015
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.02 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <fcntl.h> // for open()
  4. #include <errno.h> // for perror()
  5. #include <sys/types.h>
  6. #include <sys/stat.h>
  7. #include <string.h> //for strcpy()
  8. #include <unistd.h> //for file write()
  9.  
  10.  
  11. struct Kivansag {
  12.   double date;
  13.   char name[100];
  14.   char city[100];
  15.   char address[100];
  16.   char gift[100];
  17. };
  18.  
  19. const char *FILE_NAME = "kivansagok";
  20.  
  21. int isCorrect(char *answer);
  22. int isGift(char *choice);
  23.  
  24. int main(){ //23
  25.   int list_size = 0;
  26.   FILE *list;
  27.   FILE *fileContents;
  28.   struct Kivansag gifts[1000];
  29.  
  30.   if((fileContents= fopen(FILE_NAME, "rb")) == NULL){
  31.     if(errno == ENOENT){//if "kivansagok" file doesn't exists
  32.       printf("A file megnem letezik! Letrehozas...\n");
  33.       list = fopen(FILE_NAME,"wb");      
  34.       fwrite(&list_size, sizeof(list_size),1,list);
  35.       fclose(list);      
  36.     }else{
  37.       printf("Valami nagy hiba tortent! \n");
  38.       exit(1);
  39.     }
  40.     }else{
  41.     fread(&list_size, sizeof(list_size),1,fileContents);
  42.     if(list_size > 0){
  43.         int i; 
  44.  
  45.  
  46.        
  47.         for(i = 0; i < list_size; i++){
  48.           struct Kivansag kivansag;
  49.           fread(&kivansag, sizeof(kivansag),1,fileContents);
  50.           gifts[i] = kivansag;
  51.         }
  52.  
  53.     }
  54.     fclose(fileContents);  
  55.  
  56.      
  57.       char answer[10];
  58.       int check = 0;
  59.       do{
  60.      
  61.         printf("\n*********************************************************\n");
  62.         printf("Udv a Mikulas kivansag kezelojen! Az alabbiak kozul valaszthat:\n"
  63.         "  (1) Uj kivansag felvete (Regit felulirja ! )\n"
  64.         "  (2) Kivansagok listazasa\n"
  65.         "  (3) Szures adott varosra\n"
  66.         "  (4) Szures adott ajandekra\n"
  67.         "  (5) Kilepes\n");
  68.         fgets(answer,10, stdin);
  69.  
  70.         check = isCorrect(answer);
  71.  
  72.         if(check < 1 || check > 5){
  73.           printf("\nHibas adatbevitel!\n");
  74.         }else{   
  75.           if(check == 1){
  76.             int volt_e = 0;
  77.             int position = 0;
  78.             struct Kivansag kivansag;
  79.             printf("Kerem adja meg a nevet!\n");
  80.             fgets(kivansag.name,sizeof(kivansag.name),stdin);
  81.             char *pos;
  82.             if ((pos=strchr(kivansag.name, '\n')) != NULL)
  83.                 *pos = '\0';
  84.                
  85.             int i;
  86.             for(i = 0; i < list_size; i++){        
  87.                if(strcmp(kivansag.name,gifts[i].name)==0){
  88.                    volt_e = 1;
  89.                    position = i;
  90.                }           
  91.             }
  92.                
  93.            
  94.             printf("Kerem adja meg a varosat!\n");
  95.             fgets(kivansag.city,sizeof(kivansag.city),stdin);
  96.             if ((pos=strchr(kivansag.city, '\n')) != NULL)
  97.                 *pos = '\0';
  98.            
  99.             printf("Kerem adja meg a pontos cimet!\n");        
  100.             fgets(kivansag.address,sizeof(kivansag.address),stdin);
  101.             if ((pos=strchr(kivansag.address, '\n')) != NULL)
  102.                 *pos = '\0';
  103.            
  104.             char choice[10];
  105.             printf("Kerem valasszon ajandekot!\n"
  106.               "  (1) baba\n"
  107.               "  (2) auto\n"
  108.               "  (3) labda\n"
  109.               "  (4) kirako\n"
  110.               "  (5) szinezo\n"
  111.               "  (6) konyv\n");
  112.             fgets(choice, 10, stdin);
  113.             int result = isGift(choice);
  114.             while(result == -1){
  115.                 printf("Kerem valasszon ajandekot!\n"
  116.                   "  (1) baba\n"
  117.                   "  (2) auto\n"
  118.                   "  (3) labda\n"
  119.                   "  (4) kirako\n"
  120.                   "  (5) szinezo\n"
  121.                   "  (6) konyv\n"              
  122.                 );
  123.                 fgets(choice, 10, stdin);  
  124.                 result = isGift(choice);
  125.             }
  126.             switch(result){
  127.               case 1:
  128.                 strcpy(kivansag.gift,"baba");
  129.                 break;
  130.               case 2:
  131.                 strcpy(kivansag.gift,"auto");
  132.                 break;
  133.               case 3:
  134.                 strcpy(kivansag.gift,"labda");
  135.                 break;
  136.               case 4:
  137.                 strcpy(kivansag.gift,"kirako");
  138.                 break;
  139.               case 5:
  140.                 strcpy(kivansag.gift,"szinezo");
  141.                 break;
  142.               case 6:
  143.                 strcpy(kivansag.gift,"konyv");
  144.                 break;
  145.               default:
  146.                 printf("\nvalami hiba lesz itt\n");
  147.                 break;
  148.             }
  149.             if(volt_e == 1){
  150.                gifts[position]= kivansag;
  151.                 list = fopen(FILE_NAME, "wb");
  152.                 fwrite(&list_size, sizeof(list_size),1,list);
  153.                 fwrite(&gifts, sizeof(gifts),1,list);
  154.                 fclose(list);
  155.             }else{
  156.                 ++list_size;           
  157.                 gifts[list_size-1] = kivansag;
  158.                 //printf("teszt: %s", gifts[0].name);
  159.                 list = fopen(FILE_NAME, "wb");
  160.                 fwrite(&list_size, sizeof(list_size),1,list);
  161.                 fwrite(&gifts, sizeof(gifts),1,list);
  162.                 fclose(list);
  163.             }
  164.           }
  165.           if(check == 2){
  166.             list = fopen(FILE_NAME, "rb");
  167.             fread(&list_size, sizeof(list_size),1,list);
  168.             fread(&gifts, sizeof(gifts), 1,list);
  169.             int i;
  170.             for(i = 0; i < list_size; i++){
  171.                printf("Datum: %f Nev: %s Varos: %s Pontos cim: %s Ajandek: %s\n",gifts[i].date,gifts[i].name,gifts[i].city,gifts[i].address,gifts[i].gift);
  172.             }
  173.             printf("Listaelemek szama: %d",list_size);         
  174.           }
  175.          
  176.         }
  177.       } while(check != 5);
  178.    
  179. }
  180.  
  181.  
  182.      
  183.   return 0;
  184. }//30
  185.  
  186. int isCorrect(char answer[10]){
  187.    if(*answer >48 && *answer < 54){
  188.      if(*answer == 49) return 1;
  189.      if(*answer == 50) return 2;
  190.      if(*answer == 51) return 3;
  191.      if(*answer == 52) return 4;
  192.      if(*answer == 53) return 5;
  193.    }
  194.    
  195.    return -1;
  196. }
  197.  
  198. int isGift(char answer[10]){
  199.    if(*answer >48 && *answer < 55){
  200.      if(*answer == 49) return 1;
  201.      if(*answer == 50) return 2;
  202.      if(*answer == 51) return 3;
  203.      if(*answer == 52) return 4;
  204.      if(*answer == 53) return 5;
  205.      if(*answer == 54) return 6;
  206.    }
  207.    
  208.    return -1;
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement