From 74bea22d55ca122389628e971bdb06a6c968a6e6 Mon Sep 17 00:00:00 2001 From: sondsand <sondsand@stud.ntnu.no> Date: Wed, 6 Apr 2022 17:26:13 +0200 Subject: [PATCH] =?UTF-8?q?fikset=20en=20kr=C3=A6sj?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rute.cpp | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/rute.cpp b/rute.cpp index e88a741..b8ac986 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. + } } } } -- GitLab