diff --git a/bane.cpp b/bane.cpp index b3cc2fea6fb211151bbb020edc898eddefb9f1c4..28a27142a985e2b39147824ad6e4b0b2a557bafe 100644 --- a/bane.cpp +++ b/bane.cpp @@ -12,47 +12,66 @@ using namespace std; /** - * Bane() Nullstiller alle datamedlemmer. Faktisk innlesning skjer i lesData + * Oppretter en ny Bane. Nullstiller alle dens datamedlemmer. + * Faktisk innlesning av reelle verdier skjer i lesData() + * + * @see Rute::Rute() */ Bane::Bane() { antVogner = lengde = 0; } -//TODO: Fyll på mer her etter som header-fila tar form +/** + * Oppretter en ny Bane fra fil. Leser inn dens datamedlemmer + * + * @param inn Filen det leses fra + * @see Rute::Rute(...) + */ Bane::Bane(ifstream & inn) : Rute (inn) { - inn >> antVogner >> lengde; inn.ignore(); + // Leser inn antall vogner på banen og lengden på banesettet: + inn >> antVogner >> lengde; inn.ignore(); // Forkaster '\n' } /** - * lesData() + * Leser inn alle datamedlemmer for en bane (virtuell) + * + * @see Rute::lesData() */ void Bane::lesData() { antVogner = lesInt("Antall vogner på banen", MINVOGNER, MAXVOGNER); lengde = lesInt("Lengde på banesettet (meter)", MINLENGDE, MAXLENGDE); - Rute::lesData(); + Rute::lesData(); // Ruten leser egne data } /** - * skrivData + * Skriver ut all informasjon om en bane til bruker i run-time (virtuell) + * + * @see Rute::skrivBeskrivelse() */ -void Bane::skrivData() const { - cout << "(bane): "; - Rute::skrivData(); +void Bane::skrivBeskrivelse() { + cout << "Banen har " << antVogner << " vogner og banesettet er " + << lengde << " meter langt.\n"; + Rute::skrivBeskrivelse(); // Rute skriver egne datamedlemmer } + /** - * skrivTilFil(...) + * Skriver ut rutetype (bane) til bruker (virtuell) + * + * @see Rute::skrivData() */ -void Bane::skrivTilFil(ofstream & ut) { - ut << "A\n"; - Rute::skrivTilFil(ut); - ut << antVogner << ' ' << lengde << '\n'; +void Bane::skrivData() const { + cout << "(bane): "; + Rute::skrivData(); // Rute skriver egne datamedlemmer } /** - * skrivBeskrivelse() + * Skriver ut alle datamedlemmer for en bane til fil (virtuell) + * + * @param ut - Filen det skrives til + * @see Rute::skrivTilFil(...) */ -void Bane::skrivBeskrivelse() { - cout << "Banen har " << antVogner << " vogner og banesettet er " - << lengde << " meter langt.\n"; - Rute::skrivBeskrivelse(); +void Bane::skrivTilFil(ofstream & ut) { + ut << "A\n"; // Skriver ut A for rutetype Bane + Rute::skrivTilFil(ut); // Rute skriver egne data + ut << antVogner << ' ' << lengde << '\n'; // Skriver egne data } \ No newline at end of file diff --git a/bane.h b/bane.h index 429d080929f2380a01e317ea6cf2d13a308c42f9..58924d39fc7cfc4046c0af31b8ceb279a4406c63 100644 --- a/bane.h +++ b/bane.h @@ -21,10 +21,9 @@ class Bane : public Rute { Bane(); Bane(std::ifstream & inn); virtual void lesData(); + virtual void skrivBeskrivelse(); virtual void skrivData() const; virtual void skrivTilFil(std::ofstream & ut); - virtual void skrivBeskrivelse(); - }; #endif \ No newline at end of file diff --git a/buss.cpp b/buss.cpp index 0919cb34051fcc3aa93c105361735fbdc11d8efd..5e9ec152cf4bdadcd41d149637aff90b3f96cdf7 100644 --- a/buss.cpp +++ b/buss.cpp @@ -12,65 +12,82 @@ using namespace std; /** - * Buss() Nullstiller alle datamedlemmer, blir lest inn reelle verdier i lesData + * 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; } -// TODO: Fyll inn mer her etter som header-fila tar form +/** + * 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(); } /** - * lesData() + * Leser inn alle datamedlemmer for en aktuell buss (virtuell) + * + * @see Rute::lesData() */ void Buss::lesData() { - char bussType; - + 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') { + 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') { + if (bussType == 'J') { // Oppdaterer om faktisk leddbuss eller ei: leddbuss = true; } else if (bussType == 'N') leddbuss = false; - Rute::lesData(); + Rute::lesData(); // Rute leser resterende data } /** - * skrivData + * Skriver ut all informasjon om en buss til bruker (virtuell) + * + * @see Rute::skrivBeskrivelse() */ -void Buss::skrivData() const { - cout << "(buss): "; - Rute::skrivData(); +void Buss::skrivBeskrivelse() { + cout << "Bussen har " << antSitt << " sitteplasser, " << antStaa + << " ståplasser og er " << (leddbuss ? "" : "ikke") + << " en leddbuss.\n"; + Rute::skrivBeskrivelse(); // Rute skriver egen informasjon } /** - * skrivtilfil(...) - * @param ut + * Skriver ut egen rutetype (buss) til bruker (virtuell) + * + * @see Rute::skrivData() */ -void Buss::skrivTilFil(ofstream & ut) { - ut << "U\n"; - Rute::skrivTilFil(ut); - ut << antSitt << ' ' << antStaa - << ' ' << leddbuss << '\n'; +void Buss::skrivData() const { + cout << "(buss): "; + Rute::skrivData(); } /** - * skrivBeskrivelse() + * Skriver ut bussens datamedlemmer til fil (virtuell) + * + * @param ut Filen det skrives til + * @see Rute::skrivTilFil(...) */ -void Buss::skrivBeskrivelse() { - cout << "Bussen har " << antSitt << " sitteplasser, " << antStaa - << " ståplasser og er " << (leddbuss ? "" : "ikke") - << " en leddbuss.\n"; - Rute::skrivBeskrivelse(); +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) } \ No newline at end of file diff --git a/buss.h b/buss.h index de06fa478580bd2c20c7608aabf0e7829e34d404..1c5309964735adbf13546fb52b2df35adabcf2a9 100644 --- a/buss.h +++ b/buss.h @@ -23,10 +23,9 @@ class Buss : public Rute { Buss(); Buss(std::ifstream & inn); virtual void lesData(); + virtual void skrivBeskrivelse(); virtual void skrivData() const; virtual void skrivTilFil(std::ofstream & ut); - virtual void skrivBeskrivelse(); - }; #endif \ No newline at end of file diff --git a/const.h b/const.h index b53e65419f366119463f784f3c76efb68e264e69..fb61d7f96a7ffe642dc2382bebd5b2e7520c402d 100644 --- a/const.h +++ b/const.h @@ -8,16 +8,15 @@ #ifndef __CONST_H #define __CONST_H -const int MINRUTER = 1; -const int MAXRUTER = 999; -const int MINVOGNER = 2; -const int MAXVOGNER = 10; -const int MINLENGDE = 15; -const int MAXLENGDE = 150; -const int MINSITT = 20; -const int MAXSITT = 80; -const int MINSTAA = 10; -const int MAXSTAA = 40; -// TODO: INNHOLD HER +const int MINRUTER = 1; ///< Minste lovlige rutenummer +const int MAXRUTER = 999; ///< Største lovlige rutenummer +const int MINVOGNER = 2; ///< Minimum antall vogner på en bane +const int MAXVOGNER = 10; ///< Maksimum antall vogner på en bane +const int MINLENGDE = 30; ///< Minimum lengde i meter på et banesett +const int MAXLENGDE = 150; ///< Maksimum lengde i meter på et banesett +const int MINSITT = 20; ///< Minimum antall sitteplasser på en buss +const int MAXSITT = 80; ///< Maksimum antall sitteplasser på en buss +const int MINSTAA = 10; ///< Minimum antall ståplasser på en buss +const int MAXSTAA = 40; ///< Maksimum antall ståplasser på en buss #endif diff --git a/enum.h b/enum.h index a2b1b0ea85cfff1504ea58b8a05125dbb9df6483..ad091846746bfc2b186887d3e01a0eb6c2f6e3ab 100644 --- a/enum.h +++ b/enum.h @@ -8,7 +8,9 @@ #ifndef __ENUM_H #define __ENUM_H -// TODO: INNHOLD HER +/** + * Retning (hvilken vei rute skal skrives ut: Fram eller Tilbake) + */ enum Retning { Fram, Tilbake }; #endif \ No newline at end of file