Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
G
Gruppe44-PROG1003-2022
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Andreas Blakli
Gruppe44-PROG1003-2022
Commits
68c946da
Commit
68c946da
authored
3 years ago
by
Andreas Blakli
Browse files
Options
Downloads
Patches
Plain Diff
Fjernet ubrukt kode og la til doxygen kommentarer for alle funksjonene i ruter.cpp.
parent
aeba3384
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
ruter.cpp
+91
-46
91 additions, 46 deletions
ruter.cpp
with
91 additions
and
46 deletions
ruter.cpp
+
91
−
46
View file @
68c946da
...
@@ -4,14 +4,31 @@ using namespace std;
...
@@ -4,14 +4,31 @@ using namespace std;
extern
Stoppesteder
*
gStoppesteder
;
extern
Stoppesteder
*
gStoppesteder
;
/**
* Constructor for Ruter, lager ett objekt.
*
*/
Ruter
::
Ruter
()
{
Ruter
::
Ruter
()
{
lesFraFil
();
lesFraFil
();
}
}
/**
* Destructor for Ruter objekt.
*
*/
Ruter
::~
Ruter
()
{
Ruter
::~
Ruter
()
{
skrivTilFil
();
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
)
{
void
Ruter
::
ny
(
const
int
&
nr
)
{
cout
<<
"
\n
Buss eller bane?"
<<
'\n'
cout
<<
"
\n
Buss eller bane?"
<<
'\n'
<<
"
\n
1 - Buss"
<<
'\n'
<<
"
\n
1 - Buss"
<<
'\n'
...
@@ -41,23 +58,26 @@ void Ruter::ny(const int& nr) {
...
@@ -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
)
{
Rute
*
Ruter
::
hentEksisterende
(
const
int
nr
)
{
// for (const auto & val : alleRuter)
Rute
*
rute
=
nullptr
;
Rute
*
rute
=
nullptr
;
for_each
(
begin
(
alleRuter
),
end
(
alleRuter
),
for_each
(
begin
(
alleRuter
),
end
(
alleRuter
),
[
&
rute
,
&
nr
](
pair
<
int
const
,
Rute
*>&
mRuter
)
{
[
&
rute
,
&
nr
](
pair
<
int
const
,
Rute
*>&
mRuter
)
{
if
(
mRuter
.
first
==
nr
)
rute
=
mRuter
.
second
;
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
;
return
rute
;
}
}
/**
* Skriver meny valg til terminal.
*
*/
void
Ruter
::
skrivMeny
()
{
void
Ruter
::
skrivMeny
()
{
/*cout << "\n1 - Buss" << '\n'
<< "2 - Bane" << '\n'
<< "0 - Avbryt" << '\n';*/
cout
<<
"
\n
N - Ny rute"
<<
'\n'
cout
<<
"
\n
N - Ny rute"
<<
'\n'
<<
"A - Skriv kort alle ruter"
<<
'\n'
<<
"A - Skriv kort alle ruter"
<<
'\n'
<<
"E - Endre rute"
<<
'\n'
<<
"E - Endre rute"
<<
'\n'
...
@@ -66,16 +86,18 @@ void Ruter::skrivMeny() {
...
@@ -66,16 +86,18 @@ void Ruter::skrivMeny() {
<<
"Q - Tilbake"
<<
'\n'
;
<<
"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
)
{
void
Ruter
::
meny
(
const
char
&
valg
)
{
// char valg;
Rute
*
rute
;
Rute
*
rute
;
int
ruteNr
;
int
ruteNr
;
// do {
rute
=
nullptr
;
rute
=
nullptr
;
ruteNr
=
-
1
;
ruteNr
=
-
1
;
// skrivMeny();
// valg = lesChar("");
switch
(
valg
)
{
switch
(
valg
)
{
case
'N'
:
{
case
'N'
:
{
ruteNr
=
lesRute
();
ruteNr
=
lesRute
();
...
@@ -111,21 +133,17 @@ void Ruter::meny(const char& valg) {
...
@@ -111,21 +133,17 @@ void Ruter::meny(const char& valg) {
cout
<<
"
\n
Ugyldig valg!"
<<
'\n'
;
cout
<<
"
\n
Ugyldig valg!"
<<
'\n'
;
break
;
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
;
Buss
*
buss
;
Bane
*
bane
;
Bane
*
bane
;
Stoppested
*
stopp
;
Stoppested
*
stopp
;
...
@@ -133,10 +151,6 @@ void Ruter::skrivKortData() { // skrivKortData
...
@@ -133,10 +151,6 @@ void Ruter::skrivKortData() { // skrivKortData
for
(
const
auto
&
val
:
alleRuter
)
{
for
(
const
auto
&
val
:
alleRuter
)
{
stopp
=
nullptr
;
stopp
=
nullptr
;
cout
<<
"
\n
Rute nr:"
<<
val
.
first
;
cout
<<
"
\n
Rute nr:"
<<
val
.
first
;
/*if (val.second == buss)
cout << "\tBuss";
else
cout << "\tBane";*/
cout
<<
'\t'
;
cout
<<
'\t'
;
val
.
second
->
skrivType
();
val
.
second
->
skrivType
();
if
(
val
.
second
->
alleStoppestedenePaaRuten
.
size
()
>
0
)
{
if
(
val
.
second
->
alleStoppestedenePaaRuten
.
size
()
>
0
)
{
...
@@ -147,22 +161,42 @@ void Ruter::skrivKortData() { // skrivKortData
...
@@ -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
)
{
void
Ruter
::
skrivData
(
Rute
*
rute
)
{
rute
->
skrivData
();
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
)
{
void
Ruter
::
spesifikkRuteData
(
const
int
&
ruteNr
)
{
Rute
*
rute
;
Rute
*
rute
;
// int ruteNr;
// ruteNr = lesRute();
rute
=
hentEksisterende
(
ruteNr
);
rute
=
hentEksisterende
(
ruteNr
);
if
(
rute
!=
nullptr
)
{
if
(
rute
!=
nullptr
)
{
// skrivData(rute);
rute
->
skrivData
();
rute
->
skrivData
();
}
else
}
else
cout
<<
"
\n
Error: rute nr: "
<<
ruteNr
<<
" finnes ikke!"
<<
'\n'
;
cout
<<
"
\n
Error: rute nr: "
<<
ruteNr
<<
" finnes ikke!"
<<
'\n'
;
}
}
/**
* Endrer en eksisternde rute.
*
* @see lesRute().
* @see hentEksisterende().
* @see spesifikkRuteData().
* @see Rute::endre().
*/
void
Ruter
::
endre
()
{
void
Ruter
::
endre
()
{
Rute
*
rute
;
Rute
*
rute
;
int
ruteNr
,
valg
;
int
ruteNr
,
valg
;
...
@@ -173,22 +207,28 @@ void Ruter::endre() {
...
@@ -173,22 +207,28 @@ void Ruter::endre() {
rute
->
endre
();
rute
->
endre
();
}
else
}
else
cout
<<
"
\n
Error: rute nr: "
<<
ruteNr
<<
" finnes ikke!"
<<
'\n'
;
cout
<<
"
\n
Error: 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
Ruter
::
lesRute
()
{
int
ruteNr
;
int
ruteNr
;
ruteNr
=
lesInt
(
"Skriv inn rute nummer"
,
MIN_RUTER
,
MAX_RUTER
);
ruteNr
=
lesInt
(
"Skriv inn rute nummer"
,
MIN_RUTER
,
MAX_RUTER
);
return
ruteNr
;
return
ruteNr
;
}
}
/**
* Leser ruter fra fil.
*
* @see HjelpeFunksjoner::splittStreng().
* @see Buss::lesFraFil().
* @see Bane::lesFraFil().
*/
void
Ruter
::
lesFraFil
()
{
void
Ruter
::
lesFraFil
()
{
int
antallRuter
,
i
;
int
antallRuter
,
i
;
antallRuter
=
i
=
0
;
antallRuter
=
i
=
0
;
...
@@ -201,13 +241,12 @@ void Ruter::lesFraFil() {
...
@@ -201,13 +241,12 @@ void Ruter::lesFraFil() {
while
(
!
fil
.
eof
()
&&
i
<
antallRuter
)
{
while
(
!
fil
.
eof
()
&&
i
<
antallRuter
)
{
getline
(
fil
,
type
);
getline
(
fil
,
type
);
typeSplittet
=
hjelp
.
splittStreng
(
'*'
,
type
);
typeSplittet
=
hjelp
.
splittStreng
(
'*'
,
type
);
if
(
typeSplittet
[
1
]
==
"Buss"
)
{
if
(
typeSplittet
[
1
]
==
"Buss"
)
{
Buss
*
buss
=
new
Buss
;
Buss
*
buss
=
new
Buss
;
buss
->
lesFraFil
(
fil
);
buss
->
lesFraFil
(
fil
);
alleRuter
.
insert
(
pair
<
int
,
Rute
*>
(
stoi
(
typeSplittet
.
front
()),
buss
));
alleRuter
.
insert
(
pair
<
int
,
Rute
*>
(
stoi
(
typeSplittet
.
front
()),
buss
));
}
}
else
if
(
typeSplittet
[
1
]
==
"Bane"
)
{
else
if
(
typeSplittet
[
1
]
==
"Bane"
)
{
Bane
*
bane
=
new
Bane
;
Bane
*
bane
=
new
Bane
;
bane
->
lesFraFil
(
fil
);
bane
->
lesFraFil
(
fil
);
alleRuter
.
insert
(
pair
<
int
,
Rute
*>
(
stoi
(
typeSplittet
.
front
()),
bane
));
alleRuter
.
insert
(
pair
<
int
,
Rute
*>
(
stoi
(
typeSplittet
.
front
()),
bane
));
}
}
...
@@ -219,12 +258,18 @@ void Ruter::lesFraFil() {
...
@@ -219,12 +258,18 @@ void Ruter::lesFraFil() {
<<
'\n'
;
<<
'\n'
;
}
}
/**
* Skriver ruter til fil.
*
* @see Buss::skrivTilFil().
* @see Bane::skrivTilFil().
*/
void
Ruter
::
skrivTilFil
()
{
void
Ruter
::
skrivTilFil
()
{
ofstream
fil
(
STI_RUTER
);
ofstream
fil
(
STI_RUTER
);
fil
<<
alleRuter
.
size
()
<<
'\n'
;
fil
<<
alleRuter
.
size
()
<<
'\n'
;
for
(
const
auto
&
val
:
alleRuter
)
{
for
(
const
auto
&
val
:
alleRuter
)
{
fil
<<
val
.
first
<<
'*'
;
fil
<<
val
.
first
<<
'*'
;
val
.
second
->
skrivTilFil
(
fil
);
val
.
second
->
skrivTilFil
(
fil
);
fil
<<
"X"
<<
'\n'
;
fil
<<
"X"
<<
'\n'
;
}
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment