Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
2.3 kB
1
Indexable
Never
#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;
    }
}
Leave a Comment