Guest User

Untitled

a guest
Apr 20th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.65 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <conio.h>
  5. #include <ctype.h>
  6.  
  7. typedef struct zamestnanec {
  8.     char meno[32];
  9.     char priezvisko[32];
  10.     int typ;
  11.     double mzda;
  12.     int datum;
  13.     struct zamestnanec *dalsi;
  14. } ZAMESTNANEC;
  15.  
  16.  
  17. ZAMESTNANEC *Nacitaj(FILE *fr,ZAMESTNANEC *zam)
  18. {
  19.     int c,dlzka,n=0;
  20.     ZAMESTNANEC *prvy = (ZAMESTNANEC *) malloc (sizeof(ZAMESTNANEC));
  21.     char x;
  22.     if (zam != NULL){
  23.             prvy = zam;
  24.             while(zam){
  25.                 prvy=prvy->dalsi;
  26.                 free(zam);
  27.                 zam=prvy;
  28.             }
  29.     }
  30.  
  31.     while ((c = getc(fr)) != EOF) {
  32.         ungetc(c, fr);
  33.         ZAMESTNANEC *p = (ZAMESTNANEC *) malloc (sizeof(ZAMESTNANEC));
  34.         fgets(p->meno,32,fr);
  35.         dlzka = strlen(p->meno);
  36.         if (p->meno[dlzka - 1] == '\n')
  37.             p->meno[dlzka - 1] = '\0';
  38.         fgets(p->priezvisko,32,fr);
  39.         dlzka = strlen(p->priezvisko);
  40.         if (p->priezvisko[dlzka - 1] == '\n')
  41.             p->priezvisko[dlzka - 1] = '\0';
  42.         fscanf(fr,"%d\n",&p->typ);
  43.         fscanf(fr,"%lf\n",&p->mzda);
  44.         fscanf(fr,"%d\n",&p->datum);
  45.         fscanf(fr,"%c\n",&x);
  46.         if (zam != NULL){             // akt uz ukazuje na nejaky prvok
  47.             p->dalsi = zam->dalsi;
  48.             zam->dalsi = p;
  49.             zam=p;
  50.         }
  51.         else if(zam == NULL) { // ak sa vklada prvy zaznam
  52.             prvy=p;
  53.             zam = p;
  54.         }
  55.         n++;
  56.     }
  57.     zam->dalsi=NULL;            //koniec zoznamu
  58.     printf("Nacitalo sa %d zaznamov.\n",n);
  59.     rewind(fr);
  60.     return prvy;
  61. }
  62.  
  63.  
  64.  
  65. int main()
  66.     {
  67.         FILE *fr=NULL;
  68.         ZAMESTNANEC *zam = NULL;
  69.         while(1){
  70.         switch(getchar()){
  71.     default:
  72.  
  73.  
  74.     break;
  75.  
  76.     case 'N':{
  77.         if ((fr = fopen("zamestnanci.txt", "r")) == NULL){
  78.             printf("Zaznamy neboli nacitane\n");
  79.             break;
  80.             }
  81.  
  82.     zam=Nacitaj(fr,zam);
  83.  
  84.  
  85.     break;
  86.  
  87.  
  88.  
  89.      }
  90.        /* case 'V':{
  91.  
  92.     Vypis(zam);
  93.  
  94.  
  95.     break;
  96.  
  97.  
  98.  
  99.      }
  100.         case 'A':{
  101.  
  102.     Aktualizacia(zam);
  103.  
  104.  
  105.     break;
  106.  
  107.  
  108.  
  109.      }
  110.         case 'Z':{
  111.  
  112.     Zmazanie(zam);
  113.  
  114.  
  115.     break;
  116.  
  117.  
  118.  
  119.      }
  120.         case 'P':{
  121.  
  122.     zam=Pridaj(zam);
  123.  
  124.  
  125.     break;
  126.  
  127.  
  128.  
  129.      }*/
  130.         case 'K':{
  131.             ZAMESTNANEC *prvy = (ZAMESTNANEC *) malloc (sizeof(ZAMESTNANEC));
  132.             if (zam != NULL){
  133.             prvy = zam;
  134.             while(zam){
  135.                 prvy=prvy->dalsi;
  136.                 free(zam);
  137.                 zam=prvy;
  138.             }
  139.         }
  140.             fclose(fr);
  141.  
  142.     return 0;
  143.  
  144.     break;
  145.  
  146.  
  147.  
  148.      }
  149.         }
  150.         }
  151.     }
Add Comment
Please, Sign In to add comment