Skip to content
Snippets Groups Projects
Commit a2470846 authored by Frederik Simonsen's avatar Frederik Simonsen
Browse files

start på r t

parent 1348bd7f
Branches
No related tags found
1 merge request!4Frederik
......@@ -64,6 +64,11 @@ void Bane::skrivData() const {
Rute::skrivData(); // Rute skriver egne datamedlemmer
}
void Bane::skrivKort() const {
cout << "\nBanen har " << antVogner << " vogner og banesettet er "
<< lengde << " meter langt.\n\n";
}
/**
* Skriver ut alle datamedlemmer for en bane til fil (virtuell)
*
......
......@@ -23,6 +23,7 @@ class Bane : public Rute {
virtual void lesData();
virtual void skrivBeskrivelse();
virtual void skrivData() const;
virtual void skrivKort() const;
virtual void skrivTilFil(std::ofstream & ut);
};
......
......@@ -64,8 +64,8 @@ void Buss::lesData() {
*/
void Buss::skrivBeskrivelse() {
cout << "Bussen har " << antSitt << " sitteplasser, " << antStaa
<< " ståplasser og er " << (leddbuss ? "" : "ikke")
<< " en leddbuss.\n";
<< " ståplasser og er " << (leddbuss ? "" : "ikke ")
<< "en leddbuss.\n";
Rute::skrivBeskrivelse(); // Rute skriver egen informasjon
}
......@@ -79,6 +79,16 @@ void Buss::skrivData() const {
Rute::skrivData();
}
/**
* skrivKort() (virtuell)
*
*/
void Buss::skrivKort() const {
cout << "\nBussen har " << antSitt << " sitteplasser, " << antStaa
<< " ståplasser og er " << (leddbuss ? "" : "ikke ")
<< "en leddbuss.\n\n";
}
/**
* Skriver ut bussens datamedlemmer til fil (virtuell)
*
......
......@@ -25,6 +25,7 @@ class Buss : public Rute {
virtual void lesData();
virtual void skrivBeskrivelse();
virtual void skrivData() const;
virtual void skrivKort() const;
virtual void skrivTilFil(std::ofstream & ut);
};
......
......@@ -88,7 +88,13 @@ bool Rute::erListeGyldig(){
return false;
}
/**
* @brief
*
* @param nvn
* @return true
* @return false
*/
bool Rute::erTall(std::string nvn) {
return all_of(nvn.begin(), nvn.end(), ::isdigit);
}
......@@ -109,6 +115,23 @@ bool Rute::finnesStopp(const int indeks) {
return false;
}
/**
* skrivRetninger(...) brukes med R T
*
*/
void Rute::skrivRetninger() const {
// Hjelpevariabler for å hente stasjonsnavnene knyttet til ruten:
int startIndeks = stoppene.front()->hentNr(),
stoppIndeks = stoppene.back()->hentNr();
string startStasjon = gStoppestederBase.hentNavnVhaIndeks(startIndeks),
endeStasjon = gStoppestederBase.hentNavnVhaIndeks(stoppIndeks);
// Skriver ut start- og endestasjon for ruten i begge retninger:
cout << "\nFram: Retningen: " << startStasjon << " - "
<< endeStasjon << "\nTilbake: Retningen: "
<< endeStasjon << " - " << startStasjon << '\n';
}
/**
* skriver rute forlengs eller baklengs
*
......@@ -279,6 +302,14 @@ void Rute::skrivData() const {
cout << startNavn << " - " << stoppNavn;
}
/**
* @brief skrivKort() (virtuell)
*
*/
void Rute::skrivKort() const {
}
/**
* skriver rute til fil
*
......
......@@ -37,11 +37,13 @@ class Rute {
bool erListeGyldig();
bool erTall(std::string nvn);
bool finnesStopp(const int indeks);
void skrivRetninger() const;
void skrivRute(const Retning retning);
void slettData();
virtual void lesData();
virtual void skrivBeskrivelse();
virtual void skrivData() const;
virtual void skrivKort() const;
virtual void skrivTilFil(std::ofstream & ut);
......
......@@ -163,7 +163,38 @@ void Ruter::ruteBeskrivelse(const int ruteNr){
* ruteTabell()
*/
void Ruter::ruteTabell() {
int ruteNr;
char valg;
string navn;
//Rute* ruten = nullptr;
if (!rutene.empty()) { // Hvis det er registrert ruter:
ruteNr = lesInt("Rutenr", MINRUTER, MAXRUTER);
if (ruteNrFinnes(ruteNr)) { // Hvis rutenummeret finnes:
auto ruten = rutene.find(ruteNr); // Iterator til riktig rute
ruten->second->skrivRetninger(); // Skriver kort info om ruten
valg = lesChar("Rutetabell for retningen (F/T)");
// Looper til lovlig valg av retning:
while (valg != 'F' && valg != 'T') {
cout << "\nUgyldig valg, prøv igjen.\n";
valg = lesChar("Rutetabell for retningen (F/T)");
}
ruten->second->skrivKort(); // Skriver info om rutetypen
switch (valg) { // Skriver hele ruten:
case 'F': ruten->second->skrivRute(Fram); break;
case 'T': ruten->second->skrivRute(Tilbake); break;
}
/*cout << "\n\nRutetabell for stoppestedet (navn): ";
getline(cin, navn);*/
} else // Hvis rutenummeret ikke finnes:
cout << "\nDette rutenummeret er ikke registrert.\n\n";
} else // Hvis ingen ruter registrert:
cout << "\nIngen ruter registrert i programmet.\n\n";
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment