/* Zadatak 2 - Tip 1 */ /* By Igor Kovacic */ #include #include #include int dodaj(char *predmet, int ocjena); int citajmax(void); unsigned long citajznak(void); int main(){ short sel, ocjena, max, k; unsigned long brznak; char predmet[80+1]; while(1) { printf("1 - Dodaj predmet u datoteku\n"); printf("2 - Ispisi najvecu ocjenu\n"); printf("3 - Ispisi broj znakova u datoteci\n"); printf("0 - Izlaz iz programa\n"); printf("\nOdaberi opciju: "); do{ scanf("%d", &sel); } while(sel<0 || sel>3); switch (sel) { case 0: printf("\n\nIzlazite iz programa!\n\n"); getche(); return 0; break; case 1: printf("\n\nDodavanje predmeta u datoteku\n\n"); printf("Ime predmeta: "); fgets(predmet, sizeof(predmet), stdin); printf("\n%s", predmet); printf("Ocjena: "); scanf("%d", &ocjena); k=dodaj(predmet, ocjena); if(k==0) printf("\n\nPodaci su uspjesno spremljeni!\n\n"); else printf("\n\nDoslo je do pogreske kod upisivanja!\n\n"); break; case 2: printf("\n\nIspis najvece ocjene iz datoteke\n"); max=citajmax(); printf("Najveca ocjena je: %d\n\n", max); break; case 3: printf("\n\nIspis broja znakova u datoteci\n"); brznak=citajznak(); printf("Broj znakova u datoteci je: %ld\n\n", brznak); break; } } } int dodaj(char *predmet, int ocjena){ FILE *dat; int k; dat=fopen("student.txt", "a"); if (dat==NULL){ printf("Ne mogu otvoriti datoteku!\n"); getche(); return 1; } fprintf(dat, "%s\n%d\n", predmet, ocjena); k=fclose(dat); return k; } int citajmax(void){ FILE *dat; int max=1, br=0; char temp[100]; dat=fopen("student.txt", "r"); if (dat==NULL){ printf("Ne mogu naci datoteku!\n"); getche(); return 1; } while(fscanf(dat, "%81[^\n]%*c", temp)>=0){ br++; if(br%2==0) if(atoi(temp)>=max) max=atoi(temp); } fclose(dat); return max; } unsigned long citajznak(void){ FILE *dat; char a; unsigned long br=0; dat=fopen("student.txt", "r"); if (dat==NULL){ printf("Ne mogu naci datoteku!\n"); getche(); return 1; } while((a=fgetc(dat))!=EOF) br++; fclose(dat); return br; }