diff --git a/bane.cpp b/bane.cpp
index 28a27142a985e2b39147824ad6e4b0b2a557bafe..c599c2fbab08a475eea5b88c3e76d82d3af9179a 100644
--- a/bane.cpp
+++ b/bane.cpp
@@ -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)
  * 
diff --git a/bane.h b/bane.h
index 58924d39fc7cfc4046c0af31b8ceb279a4406c63..03af3a5f0c1942df834ea1cf8405bef9b4844469 100644
--- a/bane.h
+++ b/bane.h
@@ -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);
 };
 
diff --git a/buss.cpp b/buss.cpp
index 5e9ec152cf4bdadcd41d149637aff90b3f96cdf7..a7436765dee2b737aeed22df5be0f4edf1b06feb 100644
--- a/buss.cpp
+++ b/buss.cpp
@@ -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)
  * 
diff --git a/buss.h b/buss.h
index 1c5309964735adbf13546fb52b2df35adabcf2a9..082dbe36a17e2a5e25a78bfde5cd5671ff80d2d7 100644
--- a/buss.h
+++ b/buss.h
@@ -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);
 };
 
diff --git a/rute.cpp b/rute.cpp
index cfa5f54210e1698651322bcc8740caa84c5831b3..9deeca26342b937f1f2b18ce25180b6e9ba28fc4 100644
--- a/rute.cpp
+++ b/rute.cpp
@@ -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
  * 
diff --git a/rute.h b/rute.h
index 320a9a6fba8bcd7767d9d61a3e0abba724124071..35d971a75df456a3ed3679dc105a05ba62009618 100644
--- a/rute.h
+++ b/rute.h
@@ -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);
         
         
diff --git a/ruter.cpp b/ruter.cpp
index bb9a6eb6670480805d25a25a91a4752390210b8a..183fb886d69543ff1206533282aecaab13f29892 100644
--- a/ruter.cpp
+++ b/ruter.cpp
@@ -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";
 }
 
 /**