Advertisement
filip710

2016KOL2_Z1_GRUPA A

Jul 6th, 2016
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.02 KB | None | 0 0
  1. /* Deklarirati strukturu zaposlenik koja ima članove: ime, prezime, adresa, plaća i strukturu automobil.
  2. Struktura automobil ima članove: marka, model, registracija i cijena.
  3. Unijeti jedan cijeli broj n koji označava broj zaposlenika.
  4. Nakon toga učitati s tipkovnice podatke za n zaposlenika te ih zatim zapisati u datoteku zaposlenik.dat.
  5. Učitavati redom podatke iz datoteke zaposlenik.dat te ukoliko cijena automobila pojedinog
  6. zaposlenika premašuje njegovu 10-to godišnju plaću,zapisati
  7. podatke o tom zaposleniku u datoteku korumpirani.dat te na ekran ispisati koliko ima korumpiranih zaposlenika.
  8.  
  9. VLP će provjeravati razultat broja korumiranih zaposlenika,
  10. no svaki vas kod ce biti pregledan naknadno od strane asistenata kolegija.
  11. Obvezan je rad s datotekama kako biste ostvarili puni broj bodova.
  12.  
  13. Primjer ulaznih podataka:
  14. 2
  15. Pero
  16. Peric
  17. Osjecka 1
  18. 3000
  19. Hyundai
  20. Getz
  21. OS111SS
  22. 30000
  23. Ivo
  24. Ivic
  25. Zagrebacka 1
  26. 1500
  27. Opel
  28. Astra
  29. ZG222II
  30. 50000
  31.  
  32. prototip funkcija fread i fwrite:
  33. size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
  34. size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
  35.  */
  36.  
  37. #include<stdio.h>
  38. #include<stdlib.h>
  39. struct automobil{
  40.     char marka[20];
  41.     char model[20];
  42.     char registracija[10];
  43.     int cijena;
  44. };
  45. struct zaposlenik{
  46.     char ime[20];
  47.     char prezime[20];
  48.     char adresa[50];
  49.     int placa;
  50.     struct automobil auto_;
  51. };
  52.  
  53.  
  54. int main()
  55. {
  56.     int n, i, br=0;
  57.     FILE *f1;
  58.     FILE *f2;
  59.     printf("Broj zaposlenika: ");
  60.     scanf("%d", &n);
  61.     getchar();
  62.     struct zaposlenik zaposlenici[n];
  63.  
  64.     f1=fopen("zaposlenik.dat", "w+");
  65.  
  66.     if(f1==NULL)
  67.     {
  68.         perror("Greska pri otvaranju.");
  69.     }
  70.  
  71.     for(i=0;i<n;i++)
  72.     {
  73.         printf("Ime:\n");
  74.         scanf("%s", zaposlenici[i].ime);
  75.         printf("Prezime:\n");
  76.         scanf("%s", zaposlenici[i].prezime);
  77.         getchar();
  78.         printf("Adresa:\n");
  79.         scanf ("%[^\n]%*c", zaposlenici[i].adresa);
  80.         printf("Placa:\n");
  81.         scanf("%d", &zaposlenici[i].placa);
  82.         getchar();
  83.         printf("Marka:\n");
  84.         scanf("%s", zaposlenici[i].auto_.marka);
  85.         printf("Model:\n");
  86.         scanf("%s", zaposlenici[i].auto_.model);
  87.         printf("Registracija:\n");
  88.         scanf("%s", zaposlenici[i].auto_.registracija);
  89.         printf("Cijena:\n");
  90.         scanf("%d", &zaposlenici[i].auto_.cijena);
  91.         getchar();
  92.         fwrite(&zaposlenici[i], sizeof(struct zaposlenik), 1, f1);
  93.     }
  94.     rewind(f1);
  95.  
  96.     f2=fopen("korumpirani.dat", "w");
  97.  
  98.     if(f2==NULL)
  99.     {
  100.         perror("Greska pri otvaranju.");
  101.     }
  102.  
  103.     for(i=0;i<n;i++)
  104.     {
  105.         fread(&zaposlenici[i], sizeof(struct zaposlenik), 1, f1);
  106.         if(zaposlenici[i].placa*10>zaposlenici[i].auto_.cijena)
  107.         {
  108.             br++;
  109.             fwrite(&zaposlenici[i], sizeof(struct zaposlenik), 1, f2);
  110.         }
  111.     }
  112.     fclose(f1);
  113.     fclose(f2);
  114.     printf("REZULTATI:\n%d", br);
  115.  
  116.     return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement