diff --git a/Presiseringer.docx b/Presiseringer.docx new file mode 100644 index 0000000000000000000000000000000000000000..aa0ed4237da4f672e592a60d623b0c05a3f9cff8 Binary files /dev/null and b/Presiseringer.docx differ diff --git a/Stoppesteder.dta b/Stoppesteder.dta index d9f7a0708973299095803ab5648df510a36894d4..3ad17dd43641befbabec2f8bcb95c26a272aba9c 100644 --- a/Stoppesteder.dta +++ b/Stoppesteder.dta @@ -1,24 +1,16 @@ 10 Aa -1 -2 3 +0 Bb -2 -1 3 -3 5 +0 Cc -1 -2 5 +0 Dd -1 -5 3 +0 Ee -2 -4 3 -6 5 +0 Ff -1 -5 5 +0 Gg 0 Hh diff --git a/bane.cpp b/bane.cpp index 15dae3bbcb6d381d5a894f58f60c3b0dd40927e7..829b87f7cebffe9f9b8c980e4e8d52891456722d 100644 --- a/bane.cpp +++ b/bane.cpp @@ -1,6 +1,6 @@ /** * Kode-fil for bane-klassen - * + * * @file bane.cpp * @author Sondre Sand & Frederik Simonsen */ @@ -14,7 +14,7 @@ using namespace std; /** * Oppretter en ny Bane. Nullstiller alle dens datamedlemmer. * Faktisk innlesning av reelle verdier skjer i lesData() - * + * * @see Rute::Rute() */ Bane::Bane() { @@ -23,7 +23,7 @@ Bane::Bane() { /** * Oppretter en ny Bane fra fil. Leser inn dens datamedlemmer - * + * * @param inn Filen det leses fra * @see Rute::Rute(...) */ @@ -32,9 +32,16 @@ Bane::Bane(ifstream & inn) : Rute (inn) { inn >> antVogner >> lengde; inn.ignore(); // Forkaster '\n' } +/** + * Sletter minne allokert med en rute (virtuell) + */ +Bane::~Bane() { + +} + /** * Leser inn alle datamedlemmer for en bane (virtuell) - * + * * @see Rute::lesData() */ void Bane::lesData() { @@ -45,7 +52,7 @@ void Bane::lesData() { /** * Skriver ut all informasjon om en bane til bruker i run-time (virtuell) - * + * * @see Rute::skrivBeskrivelse() */ void Bane::skrivBeskrivelse() { @@ -56,7 +63,7 @@ void Bane::skrivBeskrivelse() { /** * Skriver ut rutetype (bane) til bruker (virtuell) - * + * * @see Rute::skrivData() */ void Bane::skrivData() const { @@ -75,7 +82,7 @@ void Bane::skrivKort() const { /** * Skriver ut alle datamedlemmer for en bane til fil (virtuell) - * + * * @param ut - Filen det skrives til * @see Rute::skrivTilFil(...) */ @@ -83,4 +90,4 @@ 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 03af3a5f0c1942df834ea1cf8405bef9b4844469..c9310cf55df401718de61744cdd145794e759cb5 100644 --- a/bane.h +++ b/bane.h @@ -20,6 +20,7 @@ class Bane : public Rute { public: Bane(); Bane(std::ifstream & inn); + virtual ~Bane(); virtual void lesData(); virtual void skrivBeskrivelse(); virtual void skrivData() const; diff --git a/buss.cpp b/buss.cpp index 6fac6403aeffaa555d1941836cec30df92052609..c6a4289b8f4f59d20adc9f6b43f6d96545e7268d 100644 --- a/buss.cpp +++ b/buss.cpp @@ -1,6 +1,6 @@ /** * Kode-fil for buss-klassen - * + * * @file buss.cpp * @author Sondre Sand & Frederik Simonsen */ @@ -14,7 +14,7 @@ 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() { @@ -24,7 +24,7 @@ Buss::Buss() { /** * Leser inn en buss sine datamedlemmer fra fil - * + * * @param inn Filen det leses fra * @see Rute::Rute(...) */ @@ -33,9 +33,16 @@ Buss::Buss(ifstream & inn) : Rute(inn) { inn >> antSitt >> antStaa >> leddbuss; inn.ignore(); } +/** + * Sletter minne allokert for en rute (virtuell) + */ +Buss::~Buss() { + +} + /** * Leser inn alle datamedlemmer for en aktuell buss (virtuell) - * + * * @see Rute::lesData() */ void Buss::lesData() { @@ -44,12 +51,12 @@ void Buss::lesData() { 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') @@ -59,7 +66,7 @@ void Buss::lesData() { /** * Skriver ut all informasjon om en buss til bruker (virtuell) - * + * * @see Rute::skrivBeskrivelse() */ void Buss::skrivBeskrivelse() { @@ -71,7 +78,7 @@ void Buss::skrivBeskrivelse() { /** * Skriver ut egen rutetype (buss) til bruker (virtuell) - * + * * @see Rute::skrivData() */ void Buss::skrivData() const { @@ -90,8 +97,8 @@ cout << "\nBussen har " << antSitt << " sitteplasser, " << antStaa /** * Skriver ut bussens datamedlemmer til fil (virtuell) - * - * @param ut Filen det skrives til + * + * @param ut Filen det skrives til * @see Rute::skrivTilFil(...) */ void Buss::skrivTilFil(ofstream & ut) { @@ -99,4 +106,4 @@ void Buss::skrivTilFil(ofstream & ut) { 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 082dbe36a17e2a5e25a78bfde5cd5671ff80d2d7..cfeb8bdba26647638b88631888c6c6bbb6bfe9f6 100644 --- a/buss.h +++ b/buss.h @@ -22,6 +22,7 @@ class Buss : public Rute { public: Buss(); Buss(std::ifstream & inn); + virtual ~Buss(); virtual void lesData(); virtual void skrivBeskrivelse(); virtual void skrivData() const; diff --git a/rute.cpp b/rute.cpp index b8ac986ff170dd46ad70f9f3c19c3cddb51ff11e..b9607b6f3e56e9ad904334f13cb29b8802f6d2c7 100644 --- a/rute.cpp +++ b/rute.cpp @@ -298,7 +298,7 @@ string Rute::hentNavn(const Retning retning) { startSted = gStoppestederBase.hentNavnVhaIndeks(stoppene.back()->hentNr()); return startSted; // Returnerer navnet på startstopp på ruten -} //må endres til å ta imot peker! return peker. +} /** * Sjekker om en stopp er på en aktuell rute diff --git a/rute.h b/rute.h index b609e47732beff7bf65bc6ca0b6a9debc8ae59a6..77b589e38a7e92c9e98ac57e27a2ccb4d9ddc20a 100644 --- a/rute.h +++ b/rute.h @@ -35,7 +35,7 @@ class Rute { public: Rute(); Rute(std::ifstream & inn); - ~Rute(); + virtual ~Rute(); bool erForst(Stopp* s1, Stopp* s2); bool erListeGyldig(); bool erNabo(Stopp* s1, Stopp* s2); diff --git a/ruter.cpp b/ruter.cpp index fbdefdf2759dec7e43f151d4d08e1357e71ccd33..cf90a169b08a8748c37b2842bb2fe29a0bc16aa2 100644 --- a/ruter.cpp +++ b/ruter.cpp @@ -303,13 +303,17 @@ void Ruter::ruteTabell() { * @see Rute::skrivData() */ void Ruter::skrivAlle() { - cout << "\nFølgende ruter finnes:\n"; - for (const auto & [ruteNr, rute] : rutene) { // For hver rute: - cout << ruteNr << ' '; // Skriver rutenr - rute->skrivData(); // Ruten skriver egne data + if (!rutene.empty()) { // Så lenge det er ruter registrert: + cout << "\nFølgende ruter finnes:\n"; + for (const auto & [ruteNr, rute] : rutene) { // For hver rute: + cout << ruteNr << ' '; // Skriver rutenr + rute->skrivData(); // Ruten skriver egne data + cout << '\n'; + } cout << '\n'; + } else { + cout << "\nIngen ruter registrert i datastrukturen.\n\n"; } - cout << '\n'; } /** diff --git a/ruter.dta b/ruter.dta index 21ea244e6eecbfc25cb6651b58741da5d93b9266..c227083464fb9af8955c90d2924774ee50abb547 100644 --- a/ruter.dta +++ b/ruter.dta @@ -1,13 +1 @@ -2 -1 U -3 -1 0 -2 3 -3 5 -50 10 0 -2 A -3 -4 0 -5 3 -6 5 -5 50 \ No newline at end of file +0 \ No newline at end of file