Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
G
Gruppe04
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
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Frederik Simonsen
Gruppe04
Commits
f47e7168
Commit
f47e7168
authored
3 years ago
by
Frederik Simonsen
Browse files
Options
Downloads
Patches
Plain Diff
sortering og kommentering stoppested
parent
46809613
No related branches found
No related tags found
1 merge request
!3
Frederik
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
stoppested.cpp
+91
-71
91 additions, 71 deletions
stoppested.cpp
stoppested.h
+6
-9
6 additions, 9 deletions
stoppested.h
stoppesteder.cpp
+1
-9
1 addition, 9 deletions
stoppesteder.cpp
with
98 additions
and
89 deletions
stoppested.cpp
+
91
−
71
View file @
f47e7168
...
...
@@ -9,12 +9,12 @@
#include
<string>
#include
<fstream>
#include
<vector>
#include
<algorithm>
#include
<algorithm>
// find, distance
#include
"stoppested.h"
#include
"stoppesteder.h"
using
namespace
std
;
extern
Stoppesteder
gStoppestederBase
;
extern
Stoppesteder
gStoppestederBase
;
// Henter inn globalt Stopperstederobjekt
/**
* Run-time constructor, ifm. menyvalg S N.
...
...
@@ -28,116 +28,136 @@ Stoppested::Stoppested(const string nvn) {
}
/**
* Constructor for å lese data dra fil
* Constructor fra fil
* Setter et stoppesteds navn, leser antall naboer
* og legger til eventuelle naboer og deres tid inn i datastrukturen
*
* @param - samme som index for å vite hva som leses inn
* @param nvn Stoppestedets navn (første post)
* @param inn Filen det leses fra
*/
Stoppested
::
Stoppested
(
std
::
string
nvn
,
ifstream
&
inn
)
{
Stoppested
::
Stoppested
(
const
std
::
string
nvn
,
ifstream
&
inn
)
{
int
antNaboer
,
naboNr
,
tidTilN
;
navn
=
nvn
;
inn
>>
antNaboer
;
inn
.
ignore
();
for
(
int
i
=
0
;
i
<
antNaboer
;
i
++
)
{
inn
>>
naboNr
>>
tidTilN
;
nabostopper
.
push_back
(
naboNr
);
tidtilnabo
.
push_back
(
tidTilN
);
navn
=
nvn
;
// Setter stoppestedets navn
inn
>>
antNaboer
;
inn
.
ignore
();
// Leser et stoppesteds antall naboer
for
(
int
i
=
0
;
i
<
antNaboer
;
i
++
)
{
// For hver nabo
inn
>>
naboNr
>>
tidTilN
;
// Leser deres unike nummer og tid til
nabostopper
.
push_back
(
naboNr
);
// Nr legges bakerst i vektor
tidtilnabo
.
push_back
(
tidTilN
);
// Tid legges bakerst i vektor
}
if
(
antNaboer
!=
0
)
// Må ha denne, ellers kutter første tegnet i navnet
inn
.
ignore
();
inn
.
ignore
();
// Forkaster enter hvis det finnes naboer
}
/**
*
Returnerer
et Stoppested
s unike
na
vn
*
Sjekker om
et Stoppested
har en gitt
na
bo
*
* @return Stoppestedets navn
* @param nr Evt. nabos unike nummer
* @return true Om stoppestedet har denne som nabo
* @return false Om stoppestedet ikke har denne som nabo
*/
string
Stoppested
::
hentStoppestedNavn
()
{
return
navn
;
bool
Stoppested
::
finnesNabo
(
const
int
nr
)
{
// Prøver å finne evt. nabo:
auto
it
=
find
(
nabostopper
.
begin
(),
nabostopper
.
end
(),
nr
);
if
(
it
!=
nabostopper
.
end
())
{
// Hvis nabostoppen finnes i vector:
return
true
;
// Returnerer at nabo er funnet
}
// Hvis ingen funn:
return
false
;
// Returnerer at nabo ikke er funnet
}
// TODO: Fyll på her etterhvert som header-fila tar form
/**
* Skriver ut Stoppestedets navn på skjerm ifm. S A
* Henter en nabos faktiske indeks i egen vector
*
* @param nr Naboens unike nummer som skal finnes
* @return int Avstand mellom start på vector og faktisk funn av nabo
* som = deres indeks i vectoren.
* -1 Skal ikke skje, men returner -1 hvis ikke funn
*/
void
Stoppested
::
skrivData
()
{
cout
<<
setw
(
20
)
<<
navn
;
int
Stoppested
::
hentNaboIndeks
(
const
int
nr
)
{
// Går gjennom hele vectoren, forsøker å finne et stoppesteds nummer
auto
it
=
find
(
nabostopper
.
begin
(),
nabostopper
.
end
(),
nr
);
if
(
it
!=
nabostopper
.
end
())
{
// Funn, returnerer indeks til nummeret:
return
distance
(
nabostopper
.
begin
(),
it
);
}
return
-
1
;
// Skal ikke skje
}
/**
* skrivTilFil(...)
* Henter tid mellom eget stoppested og en nabo
*
* @param nr - Naboens indeks i egen datastruktur
* @return Faktiske tid mellom eget stoppested og nabo
*/
void
Stoppested
::
skrivTilFil
(
ofstream
&
ut
)
{
ut
<<
navn
<<
'\n'
;
ut
<<
nabostopper
.
size
()
<<
'\n'
;
for
(
int
i
=
0
;
i
<
nabostopper
.
size
();
i
++
)
{
ut
<<
nabostopper
[
i
]
<<
' '
;
ut
<<
tidtilnabo
[
i
]
<<
'\n'
;
}
int
Stoppested
::
hentNaboTid
(
const
int
nr
)
{
return
tidtilnabo
[
nr
];
}
/**
* skrivNaboerOgTid()
* Returnerer et Stoppesteds unike navn
*
* @return Stoppestedets navn
*/
void
Stoppested
::
skrivNaboerOgTid
()
{
string
nvn
;
if
(
nabostopper
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
nabostopper
.
size
();
i
++
)
{
cout
<<
setw
(
25
)
<<
gStoppestederBase
.
hentNavnVhaIndeks
(
nabostopper
[
i
])
<<
" ("
<<
setw
(
3
)
<<
tidtilnabo
[
i
]
<<
" min mellom)
\n
"
;
}
}
else
cout
<<
"Dette stoppestedet har ingen nabostopp.
\n\n
"
;
string
Stoppested
::
hentStoppestedNavn
()
{
return
navn
;
}
/**
* finnesNabo(...)
* Setter et nabostoppestedets unike nr inn i egen vector
*
* @param nr Naboens indeks
*/
bool
Stoppested
::
finnesNabo
(
const
int
nr
)
{
auto
it
=
find
(
nabostopper
.
begin
(),
nabostopper
.
end
(),
nr
);
if
(
it
!=
nabostopper
.
end
())
{
// Hvis nabostoppen finnes i vector:
return
true
;
}
// Hvis ingen funn:
return
false
;
void
Stoppested
::
settNaboIndeks
(
const
int
nr
)
{
nabostopper
.
push_back
(
nr
+
1
);
// +1 her for faktiske stoppestedNr
}
/**
* settNaboIndeks(...)
* Setter tid mellom et stoppested og en nabo i egen vector
*
* @param nr Tid mellom et stoppested og en nabo
*/
void
Stoppested
::
settNabo
Indeks
(
const
int
nr
)
{
nabostopper
.
push_back
(
nr
+
1
);
void
Stoppested
::
settNabo
Tid
(
const
int
nr
)
{
tidtilnabo
.
push_back
(
nr
);
// Legges bakerst i egen vector
}
/**
* settNaboTid(...)
* Skriver ut Stoppestedets navn på skjerm ifm. S A
* Formaterer utskrift til å skrive navn på 20 "plasser"
*/
void
Stoppested
::
s
ettNaboTid
(
const
int
nr
)
{
tidtilnabo
.
push_back
(
nr
)
;
void
Stoppested
::
s
krivData
(
)
{
cout
<<
setw
(
20
)
<<
navn
;
}
/**
* hentNaboIndeks(...)
* Skriver ut et stoppesteds naboer og tid til nabostoppestedene
*
* @see Stoppesteder::hentNavnVhaIndeks(...)
*/
int
Stoppested
::
hentNaboIndeks
(
const
int
nr
)
{
auto
it
=
find
(
nabostopper
.
begin
(),
nabostopper
.
end
(),
nr
);
if
(
it
!=
nabostopper
.
end
())
{
return
distance
(
nabostopper
.
begin
(),
it
);
void
Stoppested
::
skrivNaboerOgTid
()
{
if
(
nabostopper
.
size
()
>
0
)
{
// Hvis stoppestedet har naboer:
for
(
int
i
=
0
;
i
<
nabostopper
.
size
();
i
++
)
{
// For hver nabo:
cout
<<
setw
(
25
)
// Skriver ut naboens navn
<<
gStoppestederBase
.
hentNavnVhaIndeks
(
nabostopper
[
i
])
<<
" ("
<<
setw
(
3
)
<<
tidtilnabo
[
i
]
<<
" min mellom)
\n
"
;
// Skriver ut tid mellom nabo og stopp
}
return
-
1
;
}
else
// Hvis stoppestedet ikke har naboer:
cout
<<
"Dette stoppestedet har ingen nabostopp.
\n\n
"
;
}
/**
* hentNaboTid(...)
* Skriver et stoppesteds datastruktur til fil
*
* @param ut Filen det skrives til
*/
int
Stoppested
::
hentNaboTid
(
const
int
nr
)
{
return
tidtilnabo
[
nr
];
void
Stoppested
::
skrivTilFil
(
ofstream
&
ut
)
{
ut
<<
navn
<<
'\n'
;
// Skriver ut navn og antall naboer:
ut
<<
nabostopper
.
size
()
<<
'\n'
;
for
(
int
i
=
0
;
i
<
nabostopper
.
size
();
i
++
)
{
// For hver nabo:
ut
<<
nabostopper
[
i
]
<<
' '
;
// Skriver deres unike nr
ut
<<
tidtilnabo
[
i
]
<<
'\n'
;
// og tid mellom
}
}
\ No newline at end of file
/*void Stoppested::alleNaboer(const int nr){
for(int i=0; i < nabostopper.size(); i++)
}*/
This diff is collapsed.
Click to expand it.
stoppested.h
+
6
−
9
View file @
f47e7168
...
...
@@ -22,20 +22,17 @@ class Stoppested {
std
::
vector
<
int
>
tidtilnabo
;
public:
Stoppested
();
Stoppested
(
std
::
string
nvn
,
std
::
ifstream
&
inn
);
Stoppested
(
const
std
::
string
nvn
);
Stoppested
(
const
std
::
string
nvn
,
std
::
ifstream
&
inn
);
bool
finnesNabo
(
const
int
nr
);
int
hentNaboIndeks
(
const
int
nr
);
int
hentNaboTid
(
const
int
nr
);
std
::
string
hentStoppestedNavn
();
void
settNaboIndeks
(
const
int
nr
);
void
settNaboTid
(
const
int
nr
);
void
skrivData
();
void
lesData
();
void
skrivNaboerOgTid
();
void
skrivTilFil
(
std
::
ofstream
&
ut
);
bool
finnesNabo
(
const
int
nr
);
void
settNaboIndeks
(
const
int
nr
);
void
settNaboTid
(
const
int
nr
);
int
hentNaboIndeks
(
const
int
nr
);
int
hentNaboTid
(
const
int
nr
);
void
alleNaboer
(
const
int
nr
);
};
#endif
\ No newline at end of file
This diff is collapsed.
Click to expand it.
stoppesteder.cpp
+
1
−
9
View file @
f47e7168
...
...
@@ -9,7 +9,7 @@
#include
<string>
#include
<vector>
#include
<fstream>
#include
<algorithm>
#include
<algorithm>
// transform
#include
"LesData3.h"
#include
"stoppested.h"
#include
"stoppesteder.h"
...
...
@@ -173,10 +173,6 @@ Stoppested* Stoppesteder::finnDuplikat(string nvn) {
// fant ingen duplikater
}
/**
* Funksjon som håndterer brukervalg ifm. Stoppestedermenyen
*
...
...
@@ -200,10 +196,6 @@ void Stoppesteder::handling() {
}
}
/**
* Leser inn data om stoppesteder fra fil
*
...
...
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