Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Deklarirati strukturu zaposlenik koja ima članove: ime, prezime, adresa, plaća i strukturu automobil.
- Struktura automobil ima članove: marka, model, registracija i cijena.
- Unijeti jedan cijeli broj n koji označava broj zaposlenika.
- Nakon toga učitati s tipkovnice podatke za n zaposlenika te ih zatim zapisati u datoteku zaposlenik.dat.
- Učitavati redom podatke iz datoteke zaposlenik.dat te ukoliko cijena automobila pojedinog
- zaposlenika premašuje njegovu 10-to godišnju plaću,zapisati
- podatke o tom zaposleniku u datoteku korumpirani.dat te na ekran ispisati koliko ima korumpiranih zaposlenika.
- VLP će provjeravati razultat broja korumiranih zaposlenika,
- no svaki vas kod ce biti pregledan naknadno od strane asistenata kolegija.
- Obvezan je rad s datotekama kako biste ostvarili puni broj bodova.
- Primjer ulaznih podataka:
- 2
- Pero
- Peric
- Osjecka 1
- 3000
- Hyundai
- Getz
- OS111SS
- 30000
- Ivo
- Ivic
- Zagrebacka 1
- 1500
- Opel
- Astra
- ZG222II
- 50000
- prototip funkcija fread i fwrite:
- size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
- size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
- */
- #include<stdio.h>
- #include<stdlib.h>
- struct automobil{
- char marka[20];
- char model[20];
- char registracija[10];
- int cijena;
- };
- struct zaposlenik{
- char ime[20];
- char prezime[20];
- char adresa[50];
- int placa;
- struct automobil auto_;
- };
- int main()
- {
- int n, i, br=0;
- FILE *f1;
- FILE *f2;
- printf("Broj zaposlenika: ");
- scanf("%d", &n);
- getchar();
- struct zaposlenik zaposlenici[n];
- f1=fopen("zaposlenik.dat", "w+");
- if(f1==NULL)
- {
- perror("Greska pri otvaranju.");
- }
- for(i=0;i<n;i++)
- {
- printf("Ime:\n");
- scanf("%s", zaposlenici[i].ime);
- printf("Prezime:\n");
- scanf("%s", zaposlenici[i].prezime);
- getchar();
- printf("Adresa:\n");
- scanf ("%[^\n]%*c", zaposlenici[i].adresa);
- printf("Placa:\n");
- scanf("%d", &zaposlenici[i].placa);
- getchar();
- printf("Marka:\n");
- scanf("%s", zaposlenici[i].auto_.marka);
- printf("Model:\n");
- scanf("%s", zaposlenici[i].auto_.model);
- printf("Registracija:\n");
- scanf("%s", zaposlenici[i].auto_.registracija);
- printf("Cijena:\n");
- scanf("%d", &zaposlenici[i].auto_.cijena);
- getchar();
- fwrite(&zaposlenici[i], sizeof(struct zaposlenik), 1, f1);
- }
- rewind(f1);
- f2=fopen("korumpirani.dat", "w");
- if(f2==NULL)
- {
- perror("Greska pri otvaranju.");
- }
- for(i=0;i<n;i++)
- {
- fread(&zaposlenici[i], sizeof(struct zaposlenik), 1, f1);
- if(zaposlenici[i].placa*10>zaposlenici[i].auto_.cijena)
- {
- br++;
- fwrite(&zaposlenici[i], sizeof(struct zaposlenik), 1, f2);
- }
- }
- fclose(f1);
- fclose(f2);
- printf("REZULTATI:\n%d", br);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement