Skip to content
Snippets Groups Projects
Commit 68c946da authored by Andreas Blakli's avatar Andreas Blakli
Browse files

Fjernet ubrukt kode og la til doxygen kommentarer for alle funksjonene i ruter.cpp.

parent aeba3384
Branches
No related tags found
No related merge requests found
......@@ -4,14 +4,31 @@ using namespace std;
extern Stoppesteder* gStoppesteder;
/**
* Constructor for Ruter, lager ett objekt.
*
*/
Ruter::Ruter() {
lesFraFil();
}
/**
* Destructor for Ruter objekt.
*
*/
Ruter::~Ruter() {
skrivTilFil();
}
/**
* Legger til en ny rute i map'et alleRuter basert på om
* det er en buss elle bane rute.
*
* @param nr - Rutens unike nummer/ID.
*
* @see Buss::lesData().
* @see Bane::lesData().
*/
void Ruter::ny(const int& nr) {
cout << "\nBuss eller bane?" << '\n'
<< "\n1 - Buss" << '\n'
......@@ -41,23 +58,26 @@ void Ruter::ny(const int& nr) {
}
}
/**
* Returnerer peker til ruten hvis den finnes.
*
* @param nr - Rutens nummer/ID.
* @return Rute* - Peker til rute, nullptr hvis den ikke finnes.
*/
Rute* Ruter::hentEksisterende(const int nr) {
// for (const auto & val : alleRuter)
Rute* rute = nullptr;
for_each(begin(alleRuter), end(alleRuter),
[&rute, &nr](pair<int const, Rute*>& mRuter) {
if (mRuter.first == nr) rute = mRuter.second;
});
/*const auto & it = find_if(alleRuter.begin(), alleRuter.end(),
[nr](map<int, Rute*>mRuter){return true; });
it.first == 1;*/
return rute;
}
/**
* Skriver meny valg til terminal.
*
*/
void Ruter::skrivMeny() {
/*cout << "\n1 - Buss" << '\n'
<< "2 - Bane" << '\n'
<< "0 - Avbryt" << '\n';*/
cout << "\nN - Ny rute" << '\n'
<< "A - Skriv kort alle ruter" << '\n'
<< "E - Endre rute" << '\n'
......@@ -66,16 +86,18 @@ void Ruter::skrivMeny() {
<< "Q - Tilbake" << '\n';
}
/**
* Meny som velger hvilke funksjoner som skal brukes
* basert på bruker valget gitt i valg parameteren.
*
* @param valg - Bruker valget.
*/
void Ruter::meny(const char& valg) {
// char valg;
Rute* rute;
int ruteNr;
// do {
rute = nullptr;
ruteNr = -1;
// skrivMeny();
// valg = lesChar("");
switch (valg) {
case 'N': {
ruteNr = lesRute();
......@@ -111,21 +133,17 @@ void Ruter::meny(const char& valg) {
cout << "\nUgyldig valg!" << '\n';
break;
}
//} while (valg != 'Q');
/* Rute* rute;
int valg, ruteNr;
ruteNr = lesInt("Skriv inn nummer for ny rute", MIN_RUTER, MAX_RUTER);
skrivMeny();
valg = lesInt("", 0, 3);
rute = hentEksisterende(ruteNr);
if (rute == nullptr) {
ny(valg, ruteNr);
} else
cout << "\nError: Rute eksisterer allerede!" << '\n';*/
}
void Ruter::skrivKortData() { // skrivKortData
/**
* Skriver ut info om en rute til terminal.
*
* @see Bane::skrivType().
* @see Buss::skrivType().
* @see Stoppesteder::hentEksisterende().
* @see Stoppested::hentNavn().
*/
void Ruter::skrivKortData() {
Buss* buss;
Bane* bane;
Stoppested* stopp;
......@@ -133,10 +151,6 @@ void Ruter::skrivKortData() { // skrivKortData
for (const auto& val : alleRuter) {
stopp = nullptr;
cout << "\nRute nr:" << val.first;
/*if (val.second == buss)
cout << "\tBuss";
else
cout << "\tBane";*/
cout << '\t';
val.second->skrivType();
if (val.second->alleStoppestedenePaaRuten.size() > 0) {
......@@ -147,22 +161,42 @@ void Ruter::skrivKortData() { // skrivKortData
}
}
/**
* Skriver data forlengs og baklengs om en rute.
*
* @param rute - Peker til ruten som skal skrives ut.
*
* @see Rute::skrivData().
*/
void Ruter::skrivData(Rute* rute) {
rute->skrivData();
}
/**
* Skriver data forlengs og baklengs om en rute basert på rute
* nummeret/ID.
*
* @param ruteNr - rute nummeret/ID.
*
* @see Rute::skrivData().
*/
void Ruter::spesifikkRuteData(const int& ruteNr) {
Rute* rute;
// int ruteNr;
// ruteNr = lesRute();
rute = hentEksisterende(ruteNr);
if (rute != nullptr) {
// skrivData(rute);
rute->skrivData();
} else
cout << "\nError: rute nr: " << ruteNr << " finnes ikke!" << '\n';
}
/**
* Endrer en eksisternde rute.
*
* @see lesRute().
* @see hentEksisterende().
* @see spesifikkRuteData().
* @see Rute::endre().
*/
void Ruter::endre() {
Rute* rute;
int ruteNr, valg;
......@@ -173,22 +207,28 @@ void Ruter::endre() {
rute->endre();
} else
cout << "\nError: rute nr: " << ruteNr << " finnes ikke!" << '\n';
if (valg > 0) {
/* int start, slutt;
start = lesInt("Hvilke stoppested utgjør start ytterpunkt?",
1, alleStoppestedenePaaRuten.size());
slutt = lesInt("Hvilket stoppested utgjør slutt ytterpunkt?",
start + 1, alleStoppestedenePaaRuten.size());*/
}
}
/**
* Leser inn rute nummer fra CLI.
*
* @return int - Innlest tall valgt av bruker.
*
* @see lesData3 lesInt().
*/
int Ruter::lesRute() {
int ruteNr;
ruteNr = lesInt("Skriv inn rute nummer", MIN_RUTER, MAX_RUTER);
return ruteNr;
}
/**
* Leser ruter fra fil.
*
* @see HjelpeFunksjoner::splittStreng().
* @see Buss::lesFraFil().
* @see Bane::lesFraFil().
*/
void Ruter::lesFraFil() {
int antallRuter, i;
antallRuter = i = 0;
......@@ -201,13 +241,12 @@ void Ruter::lesFraFil() {
while (!fil.eof() && i < antallRuter) {
getline(fil, type);
typeSplittet = hjelp.splittStreng('*', type);
if(typeSplittet[1] == "Buss") {
if (typeSplittet[1] == "Buss") {
Buss* buss = new Buss;
buss->lesFraFil(fil);
alleRuter.insert(pair<int, Rute*>(stoi(typeSplittet.front()), buss));
}
else if (typeSplittet[1] == "Bane") {
Bane * bane = new Bane;
} else if (typeSplittet[1] == "Bane") {
Bane* bane = new Bane;
bane->lesFraFil(fil);
alleRuter.insert(pair<int, Rute*>(stoi(typeSplittet.front()), bane));
}
......@@ -219,12 +258,18 @@ void Ruter::lesFraFil() {
<< '\n';
}
/**
* Skriver ruter til fil.
*
* @see Buss::skrivTilFil().
* @see Bane::skrivTilFil().
*/
void Ruter::skrivTilFil() {
ofstream fil(STI_RUTER);
fil << alleRuter.size() << '\n';
for (const auto & val : alleRuter) {
for (const auto& val : alleRuter) {
fil << val.first << '*';
val.second->skrivTilFil(fil);
fil << "X" << '\n';
}
}
\ No newline at end of file
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment