Select Git revision
-
Frederik Simonsen authoredFrederik Simonsen authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ruter.cpp 11.61 KiB
/**
* Kode-fil for ruter-klassen
*
* @file ruter.cpp
* @author Sondre Sand & Frederik Simonsen
*/
#include <fstream>
#include <iostream>
#include <map>
#include "LesData3.h"
#include "ruter.h"
#include "rute.h"
#include "bane.h"
#include "buss.h"
#include "const.h"
#include "stoppesteder.h"
using namespace std;
extern Stoppesteder gStoppestederBase; // Henter inn globalt objekt
/**
* Sletter allokert minne i Ruter-mappet
*/
Ruter::~Ruter() {
for (auto it = rutene.begin(); it != rutene.end(); it++)
delete it->second; // Sletter det tilpekte
rutene.clear(); // Tømmer mappet for pekere
}
/**
* Sjekker om et gitt ruteNr finnes i datastrukturen
*
* @param ruteNr - Et ruteNr som skal sjekkes om finnes eller ei
* @return true - Rutenr finnes i datastrukturen
* @return false - Rutenr finnes ikke i datastrukturen
*/
bool Ruter::ruteNrFinnes(const int ruteNr) {
return rutene.count(ruteNr);
}
/**
* endreRute()
*/
void Ruter::endreRute() {
int ruteNr;
char valg;
if (!rutene.empty()) { // Hvis det finnes ruter registrert:
ruteNr = lesInt("Rutenr", MINRUTER, MAXRUTER);
if (ruteNrFinnes(ruteNr)) { // Hvis rutenummeret finnes:
auto ruten = rutene.find(ruteNr); // Iterator til rett rute
ruten->second->skrivKort(); // Skriver egen info
ruten->second->skrivRute(Fram); // Skriver ruta
cout << '\n';
// Leser valg fra bruker:
valg = lesChar("F(jerne intervall) eller S(mette inn)");
// Looper til lovlig valg fra bruker:
while (valg != 'F' && valg != 'S') {
cout << "\nUgyldig valg, prøv igjen. F og S er gyldig\n";
valg = lesChar("F(jerne intervall) eller S(mette inn)");
}
switch (valg) { // Sender til rett funksjon etter brukervalg:
case 'F': ruten->second->fjernStopp(); break;
case 'S': ruten->second->smettStopp(); break;
}
} else // Rutenummeret finnes ikke:
cout << "\nIngen ruter registrert med dette nummeret.\n\n";