From 68c946daddd86f5df3112fe25115dcaac5e1476b Mon Sep 17 00:00:00 2001 From: andrbl <andrbl@stud.ntnu.no> Date: Thu, 7 Apr 2022 20:28:37 +0200 Subject: [PATCH] Fjernet ubrukt kode og la til doxygen kommentarer for alle funksjonene i ruter.cpp. --- ruter.cpp | 137 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 91 insertions(+), 46 deletions(-) diff --git a/ruter.cpp b/ruter.cpp index c360b72..591a348 100644 --- a/ruter.cpp +++ b/ruter.cpp @@ -4,14 +4,31 @@ using namespace std; extern Stoppesteder* gStoppesteder; +/** + * Constructor for Ruter, lager ett objekt. + * + */ Ruter::Ruter() { lesFraFil(); } +/** + * Destructor for Ruter objekt. + * + */ Ruter::~Ruter() { skrivTilFil(); } +/** + * Legger til en ny rute i map'et alleRuter basert på om + * det er en buss elle bane rute. + * + * @param nr - Rutens unike nummer/ID. + * + * @see Buss::lesData(). + * @see Bane::lesData(). + */ void Ruter::ny(const int& nr) { cout << "\nBuss eller bane?" << '\n' << "\n1 - Buss" << '\n' @@ -41,23 +58,26 @@ void Ruter::ny(const int& nr) { } } +/** + * Returnerer peker til ruten hvis den finnes. + * + * @param nr - Rutens nummer/ID. + * @return Rute* - Peker til rute, nullptr hvis den ikke finnes. + */ Rute* Ruter::hentEksisterende(const int nr) { - // for (const auto & val : alleRuter) Rute* rute = nullptr; for_each(begin(alleRuter), end(alleRuter), [&rute, &nr](pair<int const, Rute*>& mRuter) { if (mRuter.first == nr) rute = mRuter.second; }); - /*const auto & it = find_if(alleRuter.begin(), alleRuter.end(), - [nr](map<int, Rute*>mRuter){return true; }); - it.first == 1;*/ return rute; } +/** + * Skriver meny valg til terminal. + * + */ void Ruter::skrivMeny() { - /*cout << "\n1 - Buss" << '\n' - << "2 - Bane" << '\n' - << "0 - Avbryt" << '\n';*/ cout << "\nN - Ny rute" << '\n' << "A - Skriv kort alle ruter" << '\n' << "E - Endre rute" << '\n' @@ -66,16 +86,18 @@ void Ruter::skrivMeny() { << "Q - Tilbake" << '\n'; } +/** + * Meny som velger hvilke funksjoner som skal brukes + * basert på bruker valget gitt i valg parameteren. + * + * @param valg - Bruker valget. + */ void Ruter::meny(const char& valg) { - // char valg; Rute* rute; int ruteNr; - - // do { rute = nullptr; ruteNr = -1; - // skrivMeny(); - // valg = lesChar(""); + switch (valg) { case 'N': { ruteNr = lesRute(); @@ -111,21 +133,17 @@ void Ruter::meny(const char& valg) { cout << "\nUgyldig valg!" << '\n'; break; } - //} while (valg != 'Q'); - - /* Rute* rute; - int valg, ruteNr; - ruteNr = lesInt("Skriv inn nummer for ny rute", MIN_RUTER, MAX_RUTER); - skrivMeny(); - valg = lesInt("", 0, 3); - rute = hentEksisterende(ruteNr); - if (rute == nullptr) { - ny(valg, ruteNr); - } else - cout << "\nError: Rute eksisterer allerede!" << '\n';*/ } -void Ruter::skrivKortData() { // skrivKortData +/** + * Skriver ut info om en rute til terminal. + * + * @see Bane::skrivType(). + * @see Buss::skrivType(). + * @see Stoppesteder::hentEksisterende(). + * @see Stoppested::hentNavn(). + */ +void Ruter::skrivKortData() { Buss* buss; Bane* bane; Stoppested* stopp; @@ -133,10 +151,6 @@ void Ruter::skrivKortData() { // skrivKortData for (const auto& val : alleRuter) { stopp = nullptr; cout << "\nRute nr:" << val.first; - /*if (val.second == buss) - cout << "\tBuss"; - else - cout << "\tBane";*/ cout << '\t'; val.second->skrivType(); if (val.second->alleStoppestedenePaaRuten.size() > 0) { @@ -147,22 +161,42 @@ void Ruter::skrivKortData() { // skrivKortData } } +/** + * Skriver data forlengs og baklengs om en rute. + * + * @param rute - Peker til ruten som skal skrives ut. + * + * @see Rute::skrivData(). + */ void Ruter::skrivData(Rute* rute) { rute->skrivData(); } +/** + * Skriver data forlengs og baklengs om en rute basert på rute + * nummeret/ID. + * + * @param ruteNr - rute nummeret/ID. + * + * @see Rute::skrivData(). + */ void Ruter::spesifikkRuteData(const int& ruteNr) { Rute* rute; - // int ruteNr; - // ruteNr = lesRute(); rute = hentEksisterende(ruteNr); if (rute != nullptr) { - // skrivData(rute); rute->skrivData(); } else cout << "\nError: rute nr: " << ruteNr << " finnes ikke!" << '\n'; } +/** + * Endrer en eksisternde rute. + * + * @see lesRute(). + * @see hentEksisterende(). + * @see spesifikkRuteData(). + * @see Rute::endre(). + */ void Ruter::endre() { Rute* rute; int ruteNr, valg; @@ -173,22 +207,28 @@ void Ruter::endre() { rute->endre(); } else cout << "\nError: rute nr: " << ruteNr << " finnes ikke!" << '\n'; - - if (valg > 0) { - /* int start, slutt; - start = lesInt("Hvilke stoppested utgjør start ytterpunkt?", - 1, alleStoppestedenePaaRuten.size()); - slutt = lesInt("Hvilket stoppested utgjør slutt ytterpunkt?", - start + 1, alleStoppestedenePaaRuten.size());*/ - } } +/** + * Leser inn rute nummer fra CLI. + * + * @return int - Innlest tall valgt av bruker. + * + * @see lesData3 lesInt(). + */ int Ruter::lesRute() { int ruteNr; ruteNr = lesInt("Skriv inn rute nummer", MIN_RUTER, MAX_RUTER); return ruteNr; } +/** + * Leser ruter fra fil. + * + * @see HjelpeFunksjoner::splittStreng(). + * @see Buss::lesFraFil(). + * @see Bane::lesFraFil(). + */ void Ruter::lesFraFil() { int antallRuter, i; antallRuter = i = 0; @@ -201,13 +241,12 @@ void Ruter::lesFraFil() { while (!fil.eof() && i < antallRuter) { getline(fil, type); typeSplittet = hjelp.splittStreng('*', type); - if(typeSplittet[1] == "Buss") { + if (typeSplittet[1] == "Buss") { Buss* buss = new Buss; buss->lesFraFil(fil); alleRuter.insert(pair<int, Rute*>(stoi(typeSplittet.front()), buss)); - } - else if (typeSplittet[1] == "Bane") { - Bane * bane = new Bane; + } else if (typeSplittet[1] == "Bane") { + Bane* bane = new Bane; bane->lesFraFil(fil); alleRuter.insert(pair<int, Rute*>(stoi(typeSplittet.front()), bane)); } @@ -219,12 +258,18 @@ void Ruter::lesFraFil() { << '\n'; } +/** + * Skriver ruter til fil. + * + * @see Buss::skrivTilFil(). + * @see Bane::skrivTilFil(). + */ void Ruter::skrivTilFil() { ofstream fil(STI_RUTER); fil << alleRuter.size() << '\n'; - for (const auto & val : alleRuter) { + for (const auto& val : alleRuter) { fil << val.first << '*'; val.second->skrivTilFil(fil); fil << "X" << '\n'; } -} \ No newline at end of file +} -- GitLab