diff --git a/rute.cpp b/rute.cpp index ab09e8a3e72acac23dfa001be397b2ff4febf26a..4c8c2e087d570e264b28d85bd190e051de8bed64 100644 --- a/rute.cpp +++ b/rute.cpp @@ -185,7 +185,14 @@ void Rute::ruteTabell(const int diff, const string start, const string stSted) { sluttM, // slutt-minutter tidMellom, // Tid mellom hver avgang i minutter tPrint, // hjelpevariabel for å sørge for korrekt utskrift av time + antGanger, + startTid, + n, + timer, + minutter, + avgangsTid, mPrint; // hjelpevariabel for å sørge for korrekt utskrift av minutter + vector <int> avgangstider; cout << "\nRuteavganger fra startstedet (" << start << ") - " << "avslutt med 0 0):\n\n"; @@ -198,9 +205,12 @@ void Rute::ruteTabell(const int diff, const string start, const string stSted) { cout << "\nUlovlig klokkeslett. Prøv igjen (tt mm): "; cin >> startT >> startM; cin.ignore(); } + startTid = (startT*60)+startM; // Regner ut første avgangstid + n = startT; // Setter indikator til å være første starttime while (startT != 0 || startM != 0) { // Så lenge bruker ikke taster 0 0 + avgangstider.push_back(startTid+diff); // Legger start tid i vector // Leser tid mellom avganger tidMellom = lesInt("Tid mellom avganger", MINTID, MAXTID); startTotal = (startT*60)+startM+tidMellom; // Omregner for sjekk @@ -220,7 +230,15 @@ void Rute::ruteTabell(const int diff, const string start, const string stSted) { sluttTotal = (sluttT*60)+sluttM; // Omregner for sjekk } - tPrint = (sluttTotal+1)/60; // Regner ut gyldig utskrift + antGanger = ((sluttT-startT)*60)/tidMellom; // Omregning for loop + avgangsTid = startTid+diff; // Setter på differanse en gang + + for (int i = 0; i < antGanger; i++) { // Legger til riktig antall avgangstider: + avgangsTid = avgangsTid + tidMellom; + avgangstider.push_back(avgangsTid); + } + + tPrint = (sluttTotal+1)/60; // Regner ut gyldig utskrift: mPrint = (sluttTotal+1)%60; @@ -236,8 +254,22 @@ void Rute::ruteTabell(const int diff, const string start, const string stSted) { cin >> startT >> startM; cin.ignore(); startTotal = (startT*60)+startM; } - - + startTid = (startT*60)+startM; + } + cout << "\n\nRutetabell for stoppested: " << stSted << "\n\n" + << ((n < 10) ? "0" : "") << n << ':'; + + for (int i = 0; i < avgangstider.size(); i++) { + timer = avgangstider[i]/60; + minutter = avgangstider[i]%60; + if (timer == n) { + cout << ' ' << ((minutter < 10) ? "0" : "") << minutter; + } else { + cout << '\n' << ((timer < 10) ? "0" : "") + << timer << ':' << ' ' << ((minutter < 10) ? "0" : "") + << minutter; + n = timer; + } } }