#include #include #include #include"pl_list.h" typedef struct { char strIme[256]; int nGodUpisa; int nBroj; float fProsek; } Tstudent; void UnistiStudenta (void *pStudent) { if (pStudent != NULL) free(pStudent); } void main() { FILE *f1,*f2; TList list; TStudent *pStudent; char *pKrajLinije; f1=fopen("student.txt","r"); if (f1 == NULL) { printf("Datoteka ne postoji!\n"); return; } f2=fopen("studenti.bin","wb"); if (f2 == NULL) { printf("Problem: studenti.bin\n"); fclose(f1); return; } initialize_list(&list, UnistiStudenta); while (!feof(f1)) { pStudenti=(TStudent*)calloc(sizeof(TStudent),1); fgets(pStudent->strIme,255,f1); if ((pKrajLinije=strchr(pStudent->strIme,'\n'))!=NULL) *pKrajLinije='\0'; fscanf(f1,"%d/%d\n",&pStudent->nBroj,&pStudent->nGodUpisa); fscanf(f1,"%f\n",&pStudent->fProsek); if (!insert(&list,(void*)pStudent)) { destroy_list(&list); printf("Greska pri ubacivanju u listu!\n"); return; } } fsclose(f1); find_bolp(&list); while (TRUE) { move_forward(&list); if (eolp(&list)) break; pStudent=(TStudent*)get(&list); printf("Ime i prezime: %s\n",pStudent->strIme); printf("Broj indeksa: %d/%02d\n",pStudent->nBroj,pStudent->nGodUpisa); printf("Prosek: %4.2f\n",pStudent->fProsek); if (pStudent->fProsek>8.5) { if (fwrite(pStudent,sizeof(TStudent),1,f2)==1) printf("Kandidat upisan u novi fajl...\n\n"); else { printf("Greska pri upisu!\n"); break; } } else printf("Kadnidat nije zadovoljio uslove za upis u novi fajl!\n\n"); } fclose(f2); destroy_list(&list); printf("**KRAJ**\n"); }