///////////////////////////////////////////////////////////////////////
// ITS – Visoka Škola Strukovnih Studija Za Informacione Tehnologije
// https://www.its.edu.rs/
// Predmet: Osnove Programiranja – Programski jezik C
// Program na koji iz datoteke igraci.txt čita podatke o igračima, pronalazi
// igrača sa najvećim brojem ostvarenih
// poena i na standardnom izlazu ispisuje ime tog igrača i broj ostvarenih
// poena.
// Smatrati da datoteka igraci.txt postoji.
/*Zbog formatiranja teksta neke printf funkcije su prelomljene u vise redova, obratiti paznju pre kompajliranja programa*/
#include <stdio.h>
// Maximalna duzina imena igraca
#define MAX_IME_PREZIME 30
// Maximalan broj igraca
#define MAX_IGRACI 100
// struktura za cuvanje podataka o igracu
typedef struct igrac
{
char ime[MAX_IME_PREZIME];
int visina;
int tezina;
int brKoseva;
int brAsistencija;
int brUkradenihLopti;
int brBlokada;
float ukupanBrBodova;
}Igrac;
// niz struktura za cuvanje podataka o igracu
Igrac igraci[MAX_IGRACI];
// inicijalizacija, broj trenutno ucitanih igraca i broj bodova
int br_igrac = 0;
int brBodova = 0;
// najbolji igrac na turniru
Igrac najbolji;
// ucitavanje igraca iz fajla
int ucitaj_igraca(FILE* f, Igrac* i)
{
fscanf (f, "%s%d%d%d%d%d%d", i->ime, &(i->visina), &(i->tezina), &(i->brKoseva), &(i->brAsistencija), &(i->brUkradenihLopti), &(i->brBlokada));
if(feof(f))
return 0;
return 1;
}
// funkcija ukupanBrBodova izracunava ukupan broj bodova za igraca i najboljeg igraca
float ukupanBrBodova(Igrac i)
{
float poeniKoseva = i.brKoseva * 1;
float poeniAsistencije = i.brAsistencija * 0.5;
float poeniUkradenihLopti = i.brUkradenihLopti * 0.3;
float poeniBlokada = i.brBlokada * 0.2;
i.ukupanBrBodova = poeniKoseva + poeniAsistencije + poeniUkradenihLopti + poeniBlokada;
if(i.ukupanBrBodova > brBodova)
{
brBodova = i.ukupanBrBodova;
najbolji = i;
}
return i.ukupanBrBodova;
}
void ispisi_igrace()
{
int r;
printf("IGRACI TURNIRA: V T K A U B BROJ BODOVA!nl!***********************************************!nl!");
for(r=0; r<br_igrac; r++)
printf("%-10s %d %d %d %d %d %d %f !nl!", igraci[r].ime,igraci[r].visina,igraci[r].tezina,igraci[r].brKoseva,igraci[r].brAsistencija,igraci[r].brUkradenihLopti,igraci[r].brBlokada, ukupanBrBodova(igraci[r]));
printf("!nl!NAJBOLJI IGRAC TURNIRA:!nl!************************************************");
printf("!nl!!nl!%-10s !tab!%d %d %d %d %d %d !tab! %f !nl!!nl!",
najbolji.ime, najbolji.visina,najbolji.tezina,najbolji.brKoseva,
najbolji.brAsistencija,najbolji.brUkradenihLopti,najbolji.brBlokada,
najbolji.ukupanBrBodova);
printf("***************************************!nl!");
printf("LEGENDA:!nl!");
printf("V – Visina Igraca:!nl!");
printf("T – Tezina Igraca:!nl!");
printf("K – Broj Ostvarenih Koseva Igraca:!nl!");
printf("A – Broj Asistencija Igraca:!nl!");
printf("U – Broj Ukradenih Lopti Igraca:!nl!");
printf("B – Broj Blokada Igraca:!nl!!nl!");
}
main()
{
FILE* f;
char ime_datoteke[256];
printf("U kojoj datoteci se nalaze podaci o igracima: ");
scanf("%s", ime_datoteke);
// provera otvaranja
if((f = fopen(ime_datoteke, "r")) == NULL)
{
printf("Greska prilikom otvaranja datoteke %s!nl!", ime_datoteke);
return ;
}
// Ucitavanje igraca
while(ucitaj_igraca(f, &igraci[br_igrac]))
br_igrac++;
// ispis podataka svih igraca i pronalazenje najboljeg
ispisi_igrace();
// zatvaramo fajl
fclose(f);
}