Untitled
unknown
plain_text
2 years ago
2.3 kB
8
Indexable
#include "Turnaj.h"
#include <fstream>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iomanip> // pre std::setprecision
void Turnaj::nacitajZoSuboru(const std::string& nazovSuboru) {
std::ifstream vstupnySubor(nazovSuboru);
std::string meno_klubu, krajina;
int pocet_bodov;
if (!vstupnySubor.is_open()) {
throw std::runtime_error("Nepodarilo sa otvorit subor: " + nazovSuboru);
}
while (vstupnySubor >> meno_klubu >> krajina >> pocet_bodov) {
Ucastnik ucastnik(meno_klubu, krajina);
for (int i = 0; i < pocet_bodov; ++i) {
int vysledok;
vstupnySubor >> vysledok;
ucastnik.pridajVysledok(vysledok);
}
ucastnici.push_back(ucastnik);
}
}
void Turnaj::vypocitajVysledky() {
for (auto& ucastnik : ucastnici) {
ucastnik.vypocitajBodovAUspech();
}
}
void Turnaj::vypisUcastnikov() const {
std::vector<Ucastnik> kopie_ucastnici = ucastnici;
std::sort(kopie_ucastnici.begin(), kopie_ucastnici.end(), [](const Ucastnik& a, const Ucastnik& b) {
return a.getPocetBodov() > b.getPocetBodov();
});
for (const auto& ucastnik : kopie_ucastnici) {
std::cout << ucastnik.getMenoKlubu() << " (" << ucastnik.getKrajina() << ") "
<< ucastnik.getPocetBodov() << " " << std::fixed << std::setprecision(2)
<< ucastnik.getPercentualnaUspesnost() << "% [";
for (auto vysledok : ucastnik.getVysledky()) {
std::cout << vysledok << " ";
}
std::cout << "]" << std::endl;
}
}
void Turnaj::ulozDoSuboru(const std::string& nazovSuboru) const {
std::ofstream vystupnySubor(nazovSuboru);
if (!vystupnySubor.is_open()) {
throw std::runtime_error("Nepodarilo sa otvorit subor: " + nazovSuboru);
}
for (const auto& ucastnik : ucastnici) {
vystupnySubor << ucastnik.getMenoKlubu() << " (" << ucastnik.getKrajina() << ") "
<< ucastnik.getPocetBodov() << " " << std::fixed << std::setprecision(2)
<< ucastnik.getPercentualnaUspesnost() << "% [";
for (auto vysledok : ucastnik.getVysledky()) {
vystupnySubor << vysledok << " ";
}
vystupnySubor << "]" << std::endl;
}
}Editor is loading...
Leave a Comment