diff --git a/stoppesteder.cpp b/stoppesteder.cpp index 9e497a056385d81e4a6e35f0b25feb073b692836..804cc7997402c7b657a0b923f8e27ad5bf5d33b4 100644 --- a/stoppesteder.cpp +++ b/stoppesteder.cpp @@ -2,15 +2,28 @@ using namespace std; +/** + * Constructor for Stoppested, lager ett nytt Stoppestd object. + * + */ Stoppesteder::Stoppesteder() { lesFraFil(); } +/** + * Destructor for Stoppested objekt. + * + */ Stoppesteder::~Stoppesteder() { skrivTilFil(); ryddOppMinne(); } +/** + * Skriver ut alle stoppesteder til terminal. + * + * @see Stoppested::hentNavn(). + */ void Stoppesteder::skrivData() { int i = 1; for (const auto& val : alleStoppesteder) { @@ -19,6 +32,14 @@ void Stoppesteder::skrivData() { } } +/** + * Skriver ut data om ett stoppested basert på bruker input + * med info om nabostoppene e.g. navn og tid. + * + * @see HjelpeFunksjoner::rensStreng(). + * @see hentEksisterende(). + * @see Stoppested::skrivDataMedNaboer(). + */ void Stoppesteder::skrivSpesifikkData() { cout << "\nSkriv inn navnet på stoppestedet: "; string inn; @@ -31,36 +52,35 @@ void Stoppesteder::skrivSpesifikkData() { cout << "\nIkke entydig eller finnes ikke!" << '\n'; } +/** + * Legger til ett nytt stoppested hvis det ikke eksisterer. + * + * @param navn - Navnet på stoppestedet. + * @param leggTilTid - Skal tid legges til ja/nei. + * + * @see hentEksisterende(). + */ void Stoppesteder::ny(const string& navn, const bool& leggTilTid) { - // bool eksisterer = false; - /*vector<Stoppested *>::iterator it = - find_if(alleStoppesteder.begin(), alleStoppesteder.end(), - [](Stoppested *s, const string navn) { return s->hentNavn() == navn; });*/ - - /*for (const auto & val : alleStoppesteder) { - if (val->hentNavn() == navn) - eksisterer = true; - - }*/ if (hentEksisterende(navn) != nullptr) cout << '\n' << "Error: " << navn << " eksisterer allerede!" << '\n'; - /* else if (leggTilTid) { - // tid mellom forrige busstopp - // tid til neste bussstopp - // for (int i = alleStoppesteder.size(); i < ) - alleStoppesteder.push_back(new Stoppested(alleStoppesteder.size(), navn, leggTilTid)); - - }*/ else { alleStoppesteder.push_back(new Stoppested(navn, leggTilTid)); - //skrivTilFil(); - } + } } +/** + * Returnerer pekeren til stoppestedet hvis det eksiterer. + * + * @param navn - Navnet på stoppestedet. + * @return Stoppested* - Peker til stoppested, nullptr hvis det ikke finnes. + * + * @see HjelpeFunksjoner::gjorOmTilStorBokstav(). + * @see Stoppested::hentNavn(). + */ Stoppested* Stoppesteder::hentEksisterende(const string& navn) { bool lik; int antallLike = 0; @@ -87,20 +107,35 @@ Stoppested* Stoppesteder::hentEksisterende(const string& navn) { if (antallLike == 1) return tmpStoppested; return nullptr; } + +/** + * Returnerer pekeren til stoppestedet hvis det eksiterer. + * + * @param index - Indeksen til stoppestedet i vectoren alleStoppesteder. + * @return Stoppested* - Peker til stoppested, nullptr hvis det ikke finnes. + */ Stoppested* Stoppesteder::hentEksisterende(const int& index) { if (alleStoppesteder.size() >= index) return alleStoppesteder[index]; return nullptr; } + +/** + * Skriver ut meny valgene til terminal. + * + */ void Stoppesteder::skrivMeny() { - /*cout << "\nN - Lag nytt stoppested" << '\n' - << "A - Skriv alle stoppesteder" << '\n' - << "E - Skriv alt om ett stoppested" << '\n';*/ cout << "\nN - Nytt stoppested" << '\n' << "A - Skriv alle stoppesteder" << '\n' << "E - Skriv alt om ett stoppested" << '\n' << "Q - Tilbake"; } +/** + * Returnerer indeksen til stoppestedet fra alleStoppesteder vectoren. + * + * @param stoppested - Peker til stoppestedet. + * @return int - Indeksen til stoppestedet, -1 hvis det ikke finnes. + */ int Stoppesteder::hentIndex(Stoppested* stoppested) { int i = 0; for (const auto& val : alleStoppesteder) { @@ -110,12 +145,18 @@ int Stoppesteder::hentIndex(Stoppested* stoppested) { return -1; } +/** + * Meny, styrer hvilke funksjoner som skal brukes + * basert på bruker valget i parameteren. + * + * @param valg - Bruker valget. + * + * @see HjelpeFunksjoner::rensStreng(). + * @see skrivData(). + * @see skrivSpesifikkData(). + */ void Stoppesteder::meny(const char& valg) { - // char valg; string navn; - // do { - // skrivMeny(); - // valg = lesChar(""); switch (valg) { case 'N': { cout << "\nSkriv inn navn på stoppested:"; @@ -123,7 +164,6 @@ void Stoppesteder::meny(const char& valg) { navn = hjelp.rensStreng(navn); if (navn != "") { ny(navn, false); - } break; } @@ -139,9 +179,13 @@ void Stoppesteder::meny(const char& valg) { cout << "\nUgyldig valg!" << '\n'; break; } - //} while (valg != 'Q'); } +/** + * Sletter de lagrede stoppested pekerne fra alleStoppesteder + * vectoren. + * + */ void Stoppesteder::ryddOppMinne() { for (int i = 0; i < alleStoppesteder.size(); i++) { delete alleStoppesteder[i]; @@ -149,6 +193,11 @@ void Stoppesteder::ryddOppMinne() { alleStoppesteder.clear(); } +/** + * Leser stoppesteder fra fil. + * + * @see Stoppested::lesFraFil(). + */ void Stoppesteder::lesFraFil() { int antallStoppesteder, i; antallStoppesteder = i = 0; @@ -167,6 +216,11 @@ void Stoppesteder::lesFraFil() { << '\n'; } +/** + * Skriver alle stoppestedene til fil. + * + * @see Stoppested::skrivTilFil(). + */ void Stoppesteder::skrivTilFil() { ofstream fil(STI_STOPPESTEDER); fil << alleStoppesteder.size() << '\n';