Select Git revision
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)
}