From a6aa17d07f238046c7196b0388e1bf9a8fb691d5 Mon Sep 17 00:00:00 2001 From: andrbl <andrbl@stud.ntnu.no> Date: Thu, 7 Apr 2022 17:29:38 +0200 Subject: [PATCH] Fikset bug i tabell() funk i rute.cpp. --- rute.cpp | 101 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 82 insertions(+), 19 deletions(-) diff --git a/rute.cpp b/rute.cpp index 439b9fb..0b2538e 100644 --- a/rute.cpp +++ b/rute.cpp @@ -149,7 +149,7 @@ void Rute::skrivDataBaklengs() { bool forste = true; totalTid = 0; - cout << "\n\n..::Stoppested navn\tTid mellom stopp" + cout << "\n\n\t..::Stoppested navn\tTid mellom stopp" << "\tTotal tid fra rutestart::.."; for (auto it = alleStoppestedenePaaRuten.rbegin(); @@ -421,18 +421,14 @@ void Rute::tabell() { tilKlTime < tmpTime || tilKlMin > MAX_MINUTTER || tilKlMin < 0); - /*if (fraKlTime == 0 && fraKlMin == 0 || - tilKlTime == 0 && tilKlMin == 0) - cout << "\nAvbryter" << '\n';*/ - // Legger til tider i vector if (ikkeFullt) { - valgtTid.push_back({fraKlTime, tmpTime, tmpMin, avgangsTid, - tilKlTime, tilKlMin}); + valgtTid.push_back({fraKlTime, fraKlMin, tmpTime, + tmpMin, avgangsTid, + tilKlTime, tilKlMin, tmpTime}); } } else { fraKlTime = fraKlMin = tilKlTime = tilKlMin = 0; - // cout << "\nAvbryter" << '\n'; } } while (fraKlTime > 0 || fraKlMin > 0 || tilKlTime > 0 || tilKlMin > 0); // fraKlTime != 0 || fraKlMin != 0 && tilKlTime != 0 || tilKlMin != 0 && ikkeFullt); @@ -449,26 +445,93 @@ void Rute::tabell() { << "\n\n"; // Klokkeslett for (int i = valgtTid.front()[0]; - i <= valgtTid.back()[4]; i++) { + i <= valgtTid.back()[5]; i++) { if (i <= 9) cout << "\t\t0" << i; else cout << "\t\t" << i; cout << ":"; + // Tabell for stopp på 'i' klokkeslett - for (const auto& val : valgtTid) { - if (i >= val[0] && i <= val[4]) { + int tall = 0; + int pos = 0; + int timeAvgang = 0; + int minutterAvgang = 0; + for (auto& val : valgtTid) { + if (i >= val[0] && i <= val[5]) { + igjen = true; + timeAvgang = (val[4] + totTid) / 60; + minutterAvgang = (val[4] + totTid) % 60; + if ((val[4] + totTid) % 60 != 0) + timeAvgang++; + + // val[7] += totTid + val[4]; + /*if (val[7] > 0) + tall = val[7]; + else { + tall = minutterAvgang + totTid; + val[7] = val[4] + totTid;*/ + //} + // Hvis i er + /*if (i + timeAvgang != + val[0]+timeAvgang ) + tall = 60;*/ + // timeAvgang += i; + if (val[7] == i )//&& totTid + val[4] > MAX_MINUTTER) + tall = minutterAvgang; + else + tall = totTid + val[4]; + + + while (igjen) { + if (i >= val[2]) { + // cout << timeAvgang << "\n\n"; + if (tall < MAX_MINUTTER && val[7] == i) { + cout << "\t"; + if (tall <= 9) + cout << "0" << tall; + else + cout << tall; + if (val[4] > MAX_MINUTTER) + igjen = false; + tall += totTid + val[4]; + + } else { + + igjen = false; + } + + } else + + igjen = false; + } + if (val[7] == i) + val[7] += timeAvgang; + // val[7] -= 60; + // if (val[7] < 0) + // val[7] = 0; + // cout << "inne i if!\n\n"; // int iEnTime = (60 / (totTid + val[2])); - int tall = totTid + val[2]; + + /*int antTimer; + if (tall > MAX_MINUTTER) { + antTimer = tall / 60; + }else antTimer = 0; + igjen = true; while (igjen) { - if (tall < MAX_MINUTTER) { + if (tall >= val[1] && + i == val[2] && + tall < MAX_MINUTTER) { + // tall -= val[3]; + cout << "\t" << tall; + tall += tall; + } else if (tall < MAX_MINUTTER && i > val[2]) { cout << "\t" << tall; tall += tall; } else igjen = false; - } + }*/ // else cout << "\t" << totTid + val[2]; /* utregning = (totTid + val[2]) / 60; @@ -530,14 +593,14 @@ void Rute::lesFraFil(ifstream& inn) { linjenSplittet = hjelp.splittStreng('*', heleLinjen); pos = 0; if (heleLinjen != "Buss" && heleLinjen != "Bane" && heleLinjen != "X") { - for (int i = 0; i < linjenSplittet.size() -1; i++) { + for (int i = 0; i < linjenSplittet.size() - 1; i++) { // if (!hjelp.erBokstav(val)) { switch (i) { - case 0:{ + case 0: { stopp = new Stopp; stopp->indexStoppested = stoi(linjenSplittet[0]); break; - } + } case 1: { stopp->minutterFraForrigeStoppested = stoi(linjenSplittet[1]); alleStoppestedenePaaRuten.push_back(stopp); @@ -547,11 +610,11 @@ void Rute::lesFraFil(ifstream& inn) { // } cout << stopp->indexStoppested << '\n' << stopp->minutterFraForrigeStoppested << '\n'; - + cout << alleStoppestedenePaaRuten.size() << " size \n\n"; pos++; } - //alleStoppestedenePaaRuten.push_back(stopp); + // alleStoppestedenePaaRuten.push_back(stopp); } } while (heleLinjen != "Buss" && heleLinjen != "Bane" && heleLinjen != "X"); } -- GitLab