Skip to content
Snippets Groups Projects
Select Git revision
  • main
1 result

bane.cpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    bane.cpp 2.04 KiB
    /**
     * @file bane.cpp
     * @author Andreas Blakli
     */
    
    #include "bane.h"
    
    using namespace std;
    
    /**
     * Constructor for Bane, lager ett nytt bane objekt.
     *
     */
    Bane::Bane() : Rute() {
    }
    
    /**
     * Destructor for Bane objekt.
     *
     */
    Bane::~Bane() {
    }
    
    /**
     * Leser inn bane data fra CLI.
     *
     * @see lesData3 lesInt().
     */
    void Bane::lesData() {
        antallVogner = lesInt("Antall vogner", MIN_ANTALL_VOGNER, MAX_ANTALL_VOGNER);
        baneLengde = lesInt("Banelengde", MIN_BANELENGDE, MAX_BANELENGDE);
    }
    
    /**
     * Skriver bane data til terminal.
     *
     */
    void Bane::skrivData() {
        cout << "\n\t..::Bane info::.." << '\n';
        cout << "\n\tAntall vogner: " << antallVogner << '\n'
             << "\tBanelengde: " << baneLengde;
    }
    
    /**
     * Skriver at typen er av bane til terminal.
     *
     */
    void Bane::skrivType() {
        cout << "Bane";
    }
    
    /**
     * Skriver bane data til terminal.
     *
     * @see Rute::skrivDataForlengs().
     */
    void Bane::skrivDataForlengs() {
        skrivData();
        Rute::skrivDataForlengs();
        cout << "\n\n";
    }
    
    /**
     * Skriver bane data til terminal.
     *
     * @see Rute::skrivDataBaklengs().
     */
    void Bane::skrivDataBaklengs() {
        skrivData();
        Rute::skrivDataBaklengs();
        cout << "\n\n";
    }
    
    /**
     * Leser inn bane fra fil.
     *
     * @param inn - Inn data fil-stream.
     *
     * @see HjelpeFunksjoner::splittStreng().
     * @see Rute::lesFraFil().
     */
    void Bane::lesFraFil(ifstream& inn) {
        int i = 0;
        string heleLinjen = "";
        getline(inn, heleLinjen);
        vector<string> linjenSplittet = hjelp.splittStreng('*', heleLinjen);
        for (const auto& val : linjenSplittet) {
            switch (i) {
                case 0:
                    antallVogner = stoi(val);
                    break;
                case 1:
                    baneLengde = stoi(val);
                    break;
            }
            i++;
        }
        Rute::lesFraFil(inn);
    }
    
    /**
     * Skriver banen til fil.
     *
     * @param ut - Ut data fil-stream.
     *
     * @see Rute::skrivTilFil().
     */
    void Bane::skrivTilFil(ofstream& ut) {
        ut << "Bane" << '\n'
           << antallVogner << '*'
           << baneLengde << '*'
           << '\n';
        Rute::skrivTilFil(ut);
    }