// zadatak 12, primjer ispit$%^NO CARRIER (c) KreatoR '97 // travelling through the time, moving slowly in the sand // knowledge is the weapon against the hunger in the land #include #include #include #include void fatal(char *msg) { fputs(msg,stderr); exit(1); } void main() { FILE *f_in1, *f_in2, *f_out; struct zapis_arta_devize { long sifra_arta; char naziv_arta[40+1]; int kolicina, sifra_valute; float devizna_cijena; } art_devize; struct zapis_arta_kune { long sifra_arta; char naziv_arta[40+1]; int kolicina; float cijena_kune; } art_kune; float ukupna_vrijednost_kune=0.0, tecaj; clrscr(); if ((f_in1=fopen("skladiste","rb"))==NULL) fatal("Ne mogu otvoriti 'skladiste'!\n"); if ((f_in2=fopen("tecaj","rb"))==NULL) fatal("Ne mogu otvoriti 'tecaj'!\n"); if ((f_out=fopen("dskladiste","wb"))==NULL) fatal("Ne mogu otvoriti 'dskladiste'!\n"); while (fread(&art_devize, sizeof art_devize, 1, f_in1)==1) { fseek(f_in2, (long)((art_devize.sifra_valute-1)*sizeof(float)), SEEK_SET); fread(&tecaj, sizeof tecaj, 1, f_in2); art_kune.sifra_arta=art_devize.sifra_arta; strcpy(art_kune.naziv_arta,art_devize.naziv_arta); art_kune.kolicina=art_devize.kolicina; art_kune.cijena_kune=art_devize.devizna_cijena*tecaj; if (fseek(f_out, (long)((art_kune.sifra_arta-1)*sizeof art_kune), SEEK_SET)!=0) fatal("Nije uspjelo pozicioniranje u 'dskladiste'!\n"); fwrite(&art_kune, sizeof art_kune, 1, f_out); ukupna_vrijednost_kune+=art_kune.cijena_kune*art_kune.kolicina; } fclose(f_in1); fclose(f_in2); fclose(f_out); printf("Ukupno robe u kn... %f",ukupna_vrijednost_kune); }