Skip to content
Snippets Groups Projects
Select Git revision
  • ebe2962b227f9ac4dd29e8c5a9fede6116208309
  • master default protected
2 results

go.mod

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    This project manages its dependencies using Go Modules. Learn more
    buss.cpp 2.45 KiB
    /**
     * Kode-fil for buss-klassen
     * 
     * @file buss.cpp
     * @author Sondre Sand & Frederik Simonsen
     */
    #include <iostream>
    #include <fstream>
    #include "buss.h"
    #include "const.h"
    #include "LesData3.h"
    using namespace std;
    
    /**
     * Oppretter en ny Buss, nullstiller alle dens datamedlemmer.
     * Faktiske reelle verdier knyttet til bussen, leses inn i lesData
     * 
     * @see Rute::Rute()
     */
    Buss::Buss() {
        antSitt = antStaa = 0;
        leddbuss = false;
    }
    
    /**
     * Leser inn en buss sine datamedlemmer fra fil
     * 
     * @param inn Filen det leses fra
     * @see Rute::Rute(...)
     */
    Buss::Buss(ifstream & inn) : Rute(inn) {
        // Leser alle datamedlemmene, forkaster '\n':
        inn >> antSitt >> antStaa >> leddbuss; inn.ignore();
    }
    
    /**
     * Leser inn alle datamedlemmer for en aktuell buss (virtuell)
     * 
     * @see Rute::lesData()
     */
    void Buss::lesData() {
        char bussType; // Hjelpevariabel for å lese om leddbuss eller ei
        // Leser inn datamedlemmene:
        antSitt = lesInt("Antall sitteplasser på bussen", MINSITT, MAXSITT);
        antStaa = lesInt("Antall ståplasser på bussen", MINSTAA, MAXSTAA);
        bussType = lesChar("Leddbuss? (J/N)");
        
        while (bussType != 'J' && bussType != 'N') { // Looper ved ulovlig svar:
            cout << "\nUlovlig valg, prøv igjen.\n";
            bussType = lesChar("Leddbuss? J eller N");
        }
        
        if (bussType == 'J') { // Oppdaterer om faktisk leddbuss eller ei:
            leddbuss = true;
        } else if (bussType == 'N')
            leddbuss = false;
        Rute::lesData(); // Rute leser resterende data
    }
    
    /**
     * Skriver ut all informasjon om en buss til bruker (virtuell)
     * 
     * @see Rute::skrivBeskrivelse()
     */
    void Buss::skrivBeskrivelse() {
        cout << "Bussen har " << antSitt << " sitteplasser, " << antStaa
             << " ståplasser og er " << (leddbuss ? "" : "ikke")
             << " en leddbuss.\n";
        Rute::skrivBeskrivelse(); // Rute skriver egen informasjon
    }
    
    /**
     * Skriver ut egen rutetype (buss) til bruker (virtuell)
     * 
     * @see Rute::skrivData()
     */
    void Buss::skrivData() const {
        cout << "(buss):   ";
        Rute::skrivData();
    }
    
    /**
     * Skriver ut bussens datamedlemmer til fil (virtuell)
     * 
     * @param ut Filen det skrives til 
     * @see Rute::skrivTilFil(...)
     */
    void Buss::skrivTilFil(ofstream & ut) {
        ut << "U\n"; // Skriver ut rutetype, U for Buss
        Rute::skrivTilFil(ut); // Rute skriver egne datamedlemmer
        ut << antSitt << ' ' << antStaa // Skriver egne datamedlemmer
           << ' ' << leddbuss << '\n'; // Leddbuss (1), ikke leddbuss (0)
    }