diff --git a/rute.cpp b/rute.cpp index e88a741a545886c5e963d108ef312805d03c62c8..b8ac986ff170dd46ad70f9f3c19c3cddb51ff11e 100644 --- a/rute.cpp +++ b/rute.cpp @@ -405,34 +405,37 @@ void Rute::fjernStopp() { cout << "\n\nMellom slutt\n" << "Stoppested (entydig navn / tall / ENTER for å avslutte): "; getline(cin, navn2); + lNavn = ""; //hopper ut av while } } - if(p1 > p2){ + if(p1 > p2 && p2!=nullptr){ auto temp = itS; itS = itL; itL= temp; //bytter om iteratoren tempI = sIndeks; sIndeks = lIndeks; lIndeks = tempI; //bytter indeks tempN = sNavn; sNavn=lNavn; lNavn = tempN; //bytter navn tempS = sStoppNr; sStoppNr = lStoppNr; lStoppNr = tempS; //bytter stoppnr } - advance (itS, sStoppNr+1); //setter iterator start til en forbi stoppet - advance (itL, lStoppNr); //fordi advance tar med selv stoppet det starter på, så må en forbi - stoppene.erase(itS, itL); //fjerner alt mellom bruker start og slutt. - sp1 = gStoppestederBase.finnDuplikat(sNavn); //setter peker til vektoren på start navn - sp2 = gStoppestederBase.finnDuplikat(lNavn); //setter peker til vektoren på slutt navn - if(sp2->finnesNabo(sIndeks+1)){ //hvis de er naboer - tid = sp2->hentNaboTid(sIndeks); //hent tiden - p2->minutter=tid; //oppdater tiden i structen - cout << "Tiden mellom stoppestedene er allerede registrert som " - << tid << "minutter."; + if(lNavn.size() > 0){ + advance (itS, sStoppNr+1); //setter iterator start til en forbi stoppet + advance (itL, lStoppNr); //fordi advance tar med selv stoppet det starter på, så må en forbi + stoppene.erase(itS, itL); //fjerner alt mellom bruker start og slutt. + sp1 = gStoppestederBase.finnDuplikat(sNavn); //setter peker til vektoren på start navn + sp2 = gStoppestederBase.finnDuplikat(lNavn); //setter peker til vektoren på slutt navn + if(sp2->finnesNabo(sIndeks+1)){ //hvis de er naboer + tid = sp2->hentNaboTid(sIndeks); //hent tiden + p2->minutter=tid; //oppdater tiden i structen + cout << "Tiden mellom stoppestedene er allerede registrert som " + << tid << "minutter."; }else{ //hvis de ikke er naboer - tid=lesInt("Tid til fra forrige stopp", 1, 10); //leser inn tid mellom stopp - p2->minutter=tid; //oppdaterer tiden i struct - sp1->settNaboIndeks(lIndeks); //start stopp er nabo med slutt stopp - sp1->settNaboTid(tid); //oppdaterer tiden - sp2->settNaboIndeks(sIndeks); //slutt stopp er nabo med start stopp - sp2->settNaboTid(tid); //oppdaterer tiden - } - skrivKort(); - skrivRute(Fram); //skriver ut oppdatert rute. + tid=lesInt("Tid til fra forrige stopp", 1, 10); //leser inn tid mellom stopp + p2->minutter=tid; //oppdaterer tiden i struct + sp1->settNaboIndeks(lIndeks); //start stopp er nabo med slutt stopp + sp1->settNaboTid(tid); //oppdaterer tiden + sp2->settNaboIndeks(sIndeks); //slutt stopp er nabo med start stopp + sp2->settNaboTid(tid); //oppdaterer tiden + } + skrivKort(); + skrivRute(Fram); //skriver ut oppdatert rute. + } } } }