diff --git a/stoppested.cpp b/stoppested.cpp index dafed2443c0363356eab8ca2cd0c8d541b85dc1b..2dffb340b61417dd913f256defdcb236d0b2af9e 100644 --- a/stoppested.cpp +++ b/stoppested.cpp @@ -2,69 +2,94 @@ using namespace std; -// extern Stoppesteder* gStoppesteder; - +/** + * Constructor for Stoppested, lager ett nytt Stoppested objekt. + * + */ Stoppested::Stoppested() { navn = ""; } +/** + * Constructor for Stoppested, lager ett nytt Stoppested objekt. + * + * @param navn - Navnet på stoppestedet. + * @param leggeTilTid - Med tid ja/nei. + */ Stoppested::Stoppested(const string& navn, const bool& leggeTilTid) { this->navn = navn; } +/** + * Constructor for Stoppested, lager ett nytt Stoppested objekt. + * + * @param index - Indeks til stoppested. + * @param navn - Navnet på stoppestedet. + */ Stoppested::Stoppested(const int& index, const string& navn) { this->navn = navn; - // leggTilIndex() } +/** + * Destructor for stoppested objekt. + * + */ Stoppested::~Stoppested() { } +/** + * Returnerer navnet til stoppestedet. + * + * @return string - Navnet til stoppestedet. + */ string Stoppested::hentNavn() { return navn; } void Stoppested::lesData() { - /*string inn; - cout << "\nSkriv inn navn på stoppested (blankt for avbryt):"; - getline(cin, inn); - inn = hjelp.rensStreng(inn); - if (!inn.empty()) { - if (gStoppesteder->hentEksisterende(inn) == nullptr) - navn = inn; - else - cout << "\nError: Stoppested eksisterer fra før!" << '\n'; - } else - cout << "\nAvbryter!" << '\n';*/ } +/** + * Skriver info om stoppestedet til terminal. + * + */ void Stoppested::skrivData() { cout << "\n..::Stoppested info::.." << "\nNavn: " << navn << '\n'; } +/** + * Skriver ut info om stoppestedet og dens naboer. + * + * @param alleStoppesteder vector med pekere til Stoppested. + * + * @see skrivData(). + * @see hentNavn(). + */ void Stoppested::skrivDataMedNaboer(vector<Stoppested*> alleStoppesteder) { skrivData(); int i, pos; i = pos = 0; bool naboEksisterer = false; - cout << "\nHar forbindelser til:"; // << '\n'; + cout << "\nHar forbindelser til:"; for (const auto& val : indexNaboStoppene) { - cout << "\nSize indexes naboer: " << indexNaboStoppene.size(); - cout << "\nSize tid: " << antallMinutterTilNaboStopp.size(); if (val < alleStoppesteder.size()) { pos++; cout << "\n\t" << i + pos << " - Navn: " << alleStoppesteder[val]->hentNavn() << '\t' << "Tid i minutter mellom stopp: " << antallMinutterTilNaboStopp[i]; - //<< '\n'; - naboEksisterer = true; + naboEksisterer = true; } i++; } if (!naboEksisterer) cout << "\nIngen forbindelser registrert!" << '\n'; } +/** + * Henter den siste tiden til nabostoppet. + * + * @return int - Tiden til nabostoppet, -1 hvis ingen tid. + */ int Stoppested::hentTidNaboStopp() { int storrelse = antallMinutterTilNaboStopp.size(); if (storrelse > 0) { @@ -73,37 +98,76 @@ int Stoppested::hentTidNaboStopp() { return -1; } +/** + * Henter den siste indexen til nabostoppet. + * + * @return int - Nabostoppets indeks, -1 hvis ingen nabo indeks(er). + */ int Stoppested::hentIndex() { if (indexNaboStoppene.size() > 0) return indexNaboStoppene.back(); return -1; } +/** + * Legger til nabostopp tid og indeks. + * + * @param index - Indeksen til nabostoppet. + * @param minutter - Antall minutter mellom nabostoppet. + * + * @see leggTilIndex(). + * @see leggTilTid(). + */ void Stoppested::leggTilNaboStopp(const int& index, const int& minutter) { leggTilIndex(index); leggTilTid(minutter); } +/** + * Leser inn tid mellom snabostoppet. + * + * @see leggTilTid(). + */ void Stoppested::lesTid() { int minutter; minutter = lesInt("Tid mellom forrige stopp i minutter", MIN_MINUTTER, MAX_MINUTTER); leggTilTid(minutter); - // todo } +/** + * Legger til indeken til nabostoppet i indexNaboStoppene. + * + * @param index - Indeksen til nabostoppet. + */ void Stoppested::leggTilIndex(const int& index) { indexNaboStoppene.push_back(index); } +/** + * Legger til tiden til nabostoppet i antallMinutterTilNaboStopp. + * + * @param minutter - Antall minutter til nabostoppet. + */ void Stoppested::leggTilTid(const int& minutter) { antallMinutterTilNaboStopp.push_back(minutter); } +/** + * Sletter all data lagt inn i indexNaboStoppene og + * antallMinutterTilNaboStopp vectorene. + * + */ void Stoppested::slettVectorer() { indexNaboStoppene.clear(); antallMinutterTilNaboStopp.clear(); } +/** + * Fjerner de første elementene i indexNaboStoppene + * og antallMinutterTilNaboStopp. + * + * @see slettVectorer(). + */ void Stoppested::fjernForsteNabo() { int tmpIndex, tmpTid; if (indexNaboStoppene.size() > 0 && @@ -116,6 +180,12 @@ void Stoppested::fjernForsteNabo() { } } +/** + * Fjerner de siste elementene i indexNaboStoppene + * og antallMinutterTilNaboStopp hvis det eksisterer + * mer enn ett element. + * + */ void Stoppested::fjernSisteNabo() { if (indexNaboStoppene.size() > 1 && antallMinutterTilNaboStopp.size() > 1) { @@ -124,6 +194,16 @@ void Stoppested::fjernSisteNabo() { } } +/** + * Legger til nabo indeks og tid fremst i indexNaboStoppene + * og antallMinutterTilNaboStopp vectorene. + * + * @param index - Indeks som skal legges til. + * @param tid - Minutter som skal legges til. + * + * @see fjernForsteNabo(). + * @see leggTilNaboStopp(). + */ void Stoppested::leggTilNaboFremst(const int& index, const int& tid) { fjernForsteNabo(); int tmpIndex, tmpTid; @@ -139,11 +219,28 @@ void Stoppested::leggTilNaboFremst(const int& index, const int& tid) { if (tmpIndex >= 0 && tmpTid >= 0) leggTilNaboStopp(tmpIndex, tmpTid); } +/** + * Legger til nabo indeks og tid bakerst i indexNaboStoppene + * og antallMinutterTilNaboStopp vectorene. + * + * @param index - Indeks som skal legges til. + * @param tid - Minutter som skal legges til. + * + * @see fjernSisteNabo(). + * @see leggTilNaboStopp(). + */ void Stoppested::leggTilNaboBakerst(const int& index, const int& tid) { fjernSisteNabo(); leggTilNaboStopp(index, tid); } +/** + * Henter enten det første eller siste nabostoppets indeks + * basert på den gitte parameteren. + * + * @param siste - Er det den siste som skal hentes true/false ja/nei. + * @return int - Indeksen til nabostoppet, -1 hvis indeks ikke ble funnet. + */ int Stoppested::hentNaboStoppIndex(const bool& siste) { if (indexNaboStoppene.size() > 1 && !siste) return indexNaboStoppene.front(); @@ -153,25 +250,41 @@ int Stoppested::hentNaboStoppIndex(const bool& siste) { return -1; } +/** + * Returnerer antall elementer i indexNaboStoppene vector. + * + * @return int - Antall elemnter i vectoren, -1 hvis ingen. + */ int Stoppested::hentAntallStoppestedVector() { if (indexNaboStoppene.size() > 1) return indexNaboStoppene.size(); return -1; } +/** + * Returnerer tiden til den første naboen. + * + * @return int - Tiden til den første naboen, -1 hvis ingen naboer. + */ int Stoppested::hentTidForsteNabo() { if (antallMinutterTilNaboStopp.size() > 1) return antallMinutterTilNaboStopp.front(); return -1; } +/** + * Leser inn stoppested fra fil. + * + * @param inn - Inn data fil-stream. + * + * @see HjelpeFunksjoner::splittStreng(). + */ void Stoppested::lesFraFil(ifstream& inn) { string heleLinjen = ""; getline(inn, heleLinjen); int pos = 0; vector<string> linjenSplittet = hjelp.splittStreng('*', heleLinjen); int storrelse = linjenSplittet.size(); - cout << "\nStorrelse splittet: " << storrelse << "\n\n"; for (int i = 0; i < storrelse - 1; i++) { switch (i) { case 0: @@ -197,6 +310,11 @@ void Stoppested::lesFraFil(ifstream& inn) { } } +/** + * Skriver stoppested til fil. + * + * @param ut - Ut data fil-stream. + */ void Stoppested::skrivTilFil(ofstream& ut) { ut << navn << '*'; for (const auto& val : indexNaboStoppene) { @@ -206,4 +324,4 @@ void Stoppested::skrivTilFil(ofstream& ut) { ut << val << '*'; } ut << '\n'; -} \ No newline at end of file +}