diff --git a/rute.cpp b/rute.cpp index 6365cd341811911adba7398c13cd4c8ab0ac53d4..d97283eb75dc0597ddda86ecae551a3999600aa0 100644 --- a/rute.cpp +++ b/rute.cpp @@ -67,7 +67,7 @@ void Rute::lesData() { cout << "\nStoppested (entydig navn / tall / ENTER for å avslutte): "; getline(cin, navn); //TODO fortsette her - while (navn.size() != 0) { //Kjør så lenge ikke blank/enter er trykket. + while (navn.size() > 0) { //Kjør så lenge ikke blank/enter er trykket. navn = gStoppestederBase.byttBokstaver(navn); // Fjerner æøåÆØÅ if (erTall(navn)) { // SJekker om navn kun består av tall @@ -84,7 +84,7 @@ void Rute::lesData() { if (fNavn.size() > 0) { // Hvis entydig navn: cout << '\n' << fNavn << '\n'; indeks = gStoppestederBase.hentIndeksVhaNavn(fNavn); - + if (!finnesStopp(indeks+1)) { // Hvis stopp ikke finnes fra før på ruten if (stoppene.size() > 0) { // Hvis ikke første stopp på ruten nStopp = gStoppestederBase.finnDuplikat(fNavn); if (nStopp->finnesNabo(naboIndeks+1)) { // Hvis nabo finnes fra før @@ -126,7 +126,8 @@ void Rute::lesData() { //naboIndeks = indeks; // Setter nabos indeks til å være forrige indeks //tidTilE = tidTilF; // Setter tid til neste stopp, til å være egen tid fStopp = nStopp; // Setter forrige stopp til å bli nåværende stopp - + } else + cout << "\nStoppet er allerede registrert på ruten!\n"; } else { // Hvis ikke entydig: cout << "\nIkke funnet (den entydige) stoppestedet!\n"; } @@ -135,6 +136,7 @@ void Rute::lesData() { cout << "\nStoppested (entydig navn / tall / ENTER for å avslutte): "; getline(cin, navn); } + cout << "\nOk, du angrer og ønsker ikke å legge til ny rute.\n"; } /** @@ -240,7 +242,8 @@ bool Rute::erTall(std::string nvn) { bool Rute::erListeGyldig(){ if(stoppene.size() > 1){ return true; - }else return false; + } + return false; } /** @@ -248,5 +251,17 @@ bool Rute::erListeGyldig(){ * */ void Rute::slettData(){ - stoppene.pop_back(); + stoppene.clear(); +} + +/** + * @brief finnesStopp(...) + * + */ +bool Rute::finnesStopp(const int nr) { + for (auto it = stoppene.begin(); it != stoppene.end(); it++) { + if ((*it)->hentNr() == nr) + return true; + } + return false; } \ No newline at end of file diff --git a/rute.h b/rute.h index 2e64d91267d2e790a2a6d09dec3204fe5d421f12..6e95c2ccabe892dcf21c3f4a584dbd133da39d82 100644 --- a/rute.h +++ b/rute.h @@ -35,6 +35,7 @@ class Rute { Rute(std::ifstream & inn); bool erTall(std::string nvn); bool erListeGyldig(); + bool finnesStopp(const int nr); virtual void lesData(); virtual void skrivData() const; virtual void skrivTilFil(std::ofstream & ut);