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

sortering og kommentering bane, buss, const, enum

parent f47e7168
Branches
No related tags found
1 merge request!3Frederik
......@@ -12,47 +12,66 @@
using namespace std;
/**
* Bane() Nullstiller alle datamedlemmer. Faktisk innlesning skjer i lesData
* Oppretter en ny Bane. Nullstiller alle dens datamedlemmer.
* Faktisk innlesning av reelle verdier skjer i lesData()
*
* @see Rute::Rute()
*/
Bane::Bane() {
antVogner = lengde = 0;
}
//TODO: Fyll på mer her etter som header-fila tar form
/**
* Oppretter en ny Bane fra fil. Leser inn dens datamedlemmer
*
* @param inn Filen det leses fra
* @see Rute::Rute(...)
*/
Bane::Bane(ifstream & inn) : Rute (inn) {
inn >> antVogner >> lengde; inn.ignore();
// Leser inn antall vogner på banen og lengden på banesettet:
inn >> antVogner >> lengde; inn.ignore(); // Forkaster '\n'
}
/**
* lesData()
* Leser inn alle datamedlemmer for en bane (virtuell)
*
* @see Rute::lesData()
*/
void Bane::lesData() {
antVogner = lesInt("Antall vogner på banen", MINVOGNER, MAXVOGNER);
lengde = lesInt("Lengde på banesettet (meter)", MINLENGDE, MAXLENGDE);
Rute::lesData();
Rute::lesData(); // Ruten leser egne data
}
/**
* skrivData
* Skriver ut all informasjon om en bane til bruker i run-time (virtuell)
*
* @see Rute::skrivBeskrivelse()
*/
void Bane::skrivData() const {
cout << "(bane): ";
Rute::skrivData();
void Bane::skrivBeskrivelse() {
cout << "Banen har " << antVogner << " vogner og banesettet er "
<< lengde << " meter langt.\n";
Rute::skrivBeskrivelse(); // Rute skriver egne datamedlemmer
}
/**
* skrivTilFil(...)
* Skriver ut rutetype (bane) til bruker (virtuell)
*
* @see Rute::skrivData()
*/
void Bane::skrivTilFil(ofstream & ut) {
ut << "A\n";
Rute::skrivTilFil(ut);
ut << antVogner << ' ' << lengde << '\n';
void Bane::skrivData() const {
cout << "(bane): ";
Rute::skrivData(); // Rute skriver egne datamedlemmer
}
/**
* skrivBeskrivelse()
* Skriver ut alle datamedlemmer for en bane til fil (virtuell)
*
* @param ut - Filen det skrives til
* @see Rute::skrivTilFil(...)
*/
void Bane::skrivBeskrivelse() {
cout << "Banen har " << antVogner << " vogner og banesettet er "
<< lengde << " meter langt.\n";
Rute::skrivBeskrivelse();
void Bane::skrivTilFil(ofstream & ut) {
ut << "A\n"; // Skriver ut A for rutetype Bane
Rute::skrivTilFil(ut); // Rute skriver egne data
ut << antVogner << ' ' << lengde << '\n'; // Skriver egne data
}
\ No newline at end of file
......@@ -21,10 +21,9 @@ class Bane : public Rute {
Bane();
Bane(std::ifstream & inn);
virtual void lesData();
virtual void skrivBeskrivelse();
virtual void skrivData() const;
virtual void skrivTilFil(std::ofstream & ut);
virtual void skrivBeskrivelse();
};
#endif
\ No newline at end of file
......@@ -12,65 +12,82 @@
using namespace std;
/**
* Buss() Nullstiller alle datamedlemmer, blir lest inn reelle verdier i lesData
* Oppretter en ny Buss, nullstiller alle dens datamedlemmer.
* Faktiske reelle verdier knyttet til bussen, leses inn i lesData
*
* @see Rute::Rute()
*/
Buss::Buss() {
antSitt = antStaa = 0;
leddbuss = false;
}
// TODO: Fyll inn mer her etter som header-fila tar form
/**
* Leser inn en buss sine datamedlemmer fra fil
*
* @param inn Filen det leses fra
* @see Rute::Rute(...)
*/
Buss::Buss(ifstream & inn) : Rute(inn) {
// Leser alle datamedlemmene, forkaster '\n':
inn >> antSitt >> antStaa >> leddbuss; inn.ignore();
}
/**
* lesData()
* Leser inn alle datamedlemmer for en aktuell buss (virtuell)
*
* @see Rute::lesData()
*/
void Buss::lesData() {
char bussType;
char bussType; // Hjelpevariabel for å lese om leddbuss eller ei
// Leser inn datamedlemmene:
antSitt = lesInt("Antall sitteplasser på bussen", MINSITT, MAXSITT);
antStaa = lesInt("Antall ståplasser på bussen", MINSTAA, MAXSTAA);
bussType = lesChar("Leddbuss? (J/N)");
while (bussType != 'J' && bussType != 'N') {
while (bussType != 'J' && bussType != 'N') { // Looper ved ulovlig svar:
cout << "\nUlovlig valg, prøv igjen.\n";
bussType = lesChar("Leddbuss? J eller N");
}
if (bussType == 'J') {
if (bussType == 'J') { // Oppdaterer om faktisk leddbuss eller ei:
leddbuss = true;
} else if (bussType == 'N')
leddbuss = false;
Rute::lesData();
Rute::lesData(); // Rute leser resterende data
}
/**
* skrivData
* Skriver ut all informasjon om en buss til bruker (virtuell)
*
* @see Rute::skrivBeskrivelse()
*/
void Buss::skrivData() const {
cout << "(buss): ";
Rute::skrivData();
void Buss::skrivBeskrivelse() {
cout << "Bussen har " << antSitt << " sitteplasser, " << antStaa
<< " ståplasser og er " << (leddbuss ? "" : "ikke")
<< " en leddbuss.\n";
Rute::skrivBeskrivelse(); // Rute skriver egen informasjon
}
/**
* skrivtilfil(...)
* @param ut
* Skriver ut egen rutetype (buss) til bruker (virtuell)
*
* @see Rute::skrivData()
*/
void Buss::skrivTilFil(ofstream & ut) {
ut << "U\n";
Rute::skrivTilFil(ut);
ut << antSitt << ' ' << antStaa
<< ' ' << leddbuss << '\n';
void Buss::skrivData() const {
cout << "(buss): ";
Rute::skrivData();
}
/**
* skrivBeskrivelse()
* Skriver ut bussens datamedlemmer til fil (virtuell)
*
* @param ut Filen det skrives til
* @see Rute::skrivTilFil(...)
*/
void Buss::skrivBeskrivelse() {
cout << "Bussen har " << antSitt << " sitteplasser, " << antStaa
<< " ståplasser og er " << (leddbuss ? "" : "ikke")
<< " en leddbuss.\n";
Rute::skrivBeskrivelse();
void Buss::skrivTilFil(ofstream & ut) {
ut << "U\n"; // Skriver ut rutetype, U for Buss
Rute::skrivTilFil(ut); // Rute skriver egne datamedlemmer
ut << antSitt << ' ' << antStaa // Skriver egne datamedlemmer
<< ' ' << leddbuss << '\n'; // Leddbuss (1), ikke leddbuss (0)
}
\ No newline at end of file
......@@ -23,10 +23,9 @@ class Buss : public Rute {
Buss();
Buss(std::ifstream & inn);
virtual void lesData();
virtual void skrivBeskrivelse();
virtual void skrivData() const;
virtual void skrivTilFil(std::ofstream & ut);
virtual void skrivBeskrivelse();
};
#endif
\ No newline at end of file
......@@ -8,16 +8,15 @@
#ifndef __CONST_H
#define __CONST_H
const int MINRUTER = 1;
const int MAXRUTER = 999;
const int MINVOGNER = 2;
const int MAXVOGNER = 10;
const int MINLENGDE = 15;
const int MAXLENGDE = 150;
const int MINSITT = 20;
const int MAXSITT = 80;
const int MINSTAA = 10;
const int MAXSTAA = 40;
// TODO: INNHOLD HER
const int MINRUTER = 1; ///< Minste lovlige rutenummer
const int MAXRUTER = 999; ///< Største lovlige rutenummer
const int MINVOGNER = 2; ///< Minimum antall vogner på en bane
const int MAXVOGNER = 10; ///< Maksimum antall vogner på en bane
const int MINLENGDE = 30; ///< Minimum lengde i meter på et banesett
const int MAXLENGDE = 150; ///< Maksimum lengde i meter på et banesett
const int MINSITT = 20; ///< Minimum antall sitteplasser på en buss
const int MAXSITT = 80; ///< Maksimum antall sitteplasser på en buss
const int MINSTAA = 10; ///< Minimum antall ståplasser på en buss
const int MAXSTAA = 40; ///< Maksimum antall ståplasser på en buss
#endif
......@@ -8,7 +8,9 @@
#ifndef __ENUM_H
#define __ENUM_H
// TODO: INNHOLD HER
/**
* Retning (hvilken vei rute skal skrives ut: Fram eller Tilbake)
*/
enum Retning { Fram, Tilbake };
#endif
\ 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