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
e626bbe2
Commit
e626bbe2
authored
3 years ago
by
Frederik Simonsen
Browse files
Options
Downloads
Patches
Plain Diff
SN og SA funksjonalitet
parent
568534e5
No related branches found
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
stoppested.cpp
+29
-1
29 additions, 1 deletion
stoppested.cpp
stoppested.h
+4
-1
4 additions, 1 deletion
stoppested.h
stoppesteder.cpp
+70
-7
70 additions, 7 deletions
stoppesteder.cpp
stoppesteder.h
+2
-0
2 additions, 0 deletions
stoppesteder.h
with
105 additions
and
9 deletions
stoppested.cpp
+
29
−
1
View file @
e626bbe2
...
...
@@ -4,9 +4,37 @@
* @file stoppested.cpp
* @author Sondre Sand & Frederik Simonsen
*/
#include
<iomanip>
#include
<iostream>
#include
<string>
#include
<vector>
#include
"stoppested.h"
using
namespace
std
;
/**
* Run-time constructor, ifm. menyvalg S N.
* Kopierer medsendt unikt navn til å bli navn
* på stoppestedet
*
* @param nvn - Stoppestedets unike navn som er duplikatsjekket
*/
Stoppested
::
Stoppested
(
const
string
nvn
)
{
navn
=
nvn
;
}
/**
* Returnerer et Stoppesteds unike navn
*
* @return Stoppestedets navn
*/
string
Stoppested
::
hentStoppestedNavn
()
{
return
navn
;
}
// TODO: Fyll på her etterhvert som header-fila tar form
/**
* Skriver ut Stoppestedets navn på skjerm ifm. S A
*/
void
Stoppested
::
skrivData
()
{
cout
<<
setw
(
20
)
<<
navn
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
stoppested.h
+
4
−
1
View file @
e626bbe2
...
...
@@ -21,6 +21,9 @@ class Stoppested {
std
::
vector
<
int
>
tidtilnabo
;
public:
Stoppested
(
const
std
::
string
nvn
);
std
::
string
hentStoppestedNavn
();
void
skrivData
();
};
#endif
\ No newline at end of file
This diff is collapsed.
Click to expand it.
stoppesteder.cpp
+
70
−
7
View file @
e626bbe2
...
...
@@ -4,29 +4,60 @@
* @file stoppesteder.cpp
* @author Sondre Sand & Frederik Simonsen
*/
#include
<iomanip>
#include
<iostream>
#include
<vector>
#include
"LesData3.h"
#include
"stoppested.h"
#include
"stoppesteder.h"
using
namespace
std
;
/**
* TODO: Funksjon som skal håndtere ulike menyvalg fra bruker
* Forsøker å finne om et Stoppestedsnavn er duplikat
*
* @param nvn - Bruker innlest navn som skal sjekkes mot faktiske Stoppestedsnavn
* @return Hvis duplikat, returneres en peker til Stoppestedet med navnet
* @return Hvis ikke duplikat, eller ingen stoppesteder i datastrukturen
* returneres nullptr
* @see Stoppested::hentStoppestedNavn()
*/
Stoppested
*
Stoppesteder
::
finnDuplikat
(
string
nvn
)
{
if
(
!
stopper
.
empty
())
{
// Så lenge stoppesteder er registrert:
for
(
int
i
=
0
;
i
<
stopper
.
size
();
i
++
)
{
// For hvert stoppested:
// Bruker hjelpefunksjon for å sammenligne parameter
// og faktisk stoppestedsnavn:
if
(
stopper
[
i
]
->
hentStoppestedNavn
()
==
nvn
)
return
stopper
[
i
];
// Funn
}
}
return
nullptr
;
// Ingen stoppesteder i datastrukturen, eller
// fant ingen duplikater
}
/**
* Funksjon som håndterer brukervalg ifm. Stoppestedermenyen
*
* @see Stoppesteder::skrivMeny()
* @see Stoppesteder::nyStop()
* @see Stoppesteder::skrivAlle()
* @see Stoppesteder::skrivStopp()
*/
void
Stoppesteder
::
handling
()
{
char
valg
;
skrivMeny
();
skrivMeny
();
// Skriver ut menyvalgene til bruker
valg
=
lesChar
(
"
\n
Kommando"
);
switch
(
valg
)
{
case
'N'
:
nyStop
();
break
;
case
'A'
:
skrivAlle
();
break
;
case
'S'
:
skrivStopp
();
break
;
case
'N'
:
nyStop
();
break
;
// Legge til nytt stoppested
case
'A'
:
skrivAlle
();
break
;
// Skriv alle stoppesteder
case
'S'
:
skrivStopp
();
break
;
// Skriv alt om et stoppested
default:
cout
<<
"
\n
Ulovlig kommando!
\n
"
;
break
;
}
}
/**
* Leser inn informasjon om stoppesteder fra fil
*/
...
...
@@ -35,17 +66,49 @@ void Stoppesteder::lesFraFil() {
}
/**
* nyStop()
* Legger til et nytt stoppested i datastrukturen, hvis mulig (ingen duplikat)
*
* @see Stoppesteder::finnDuplikat(...)
* @see Stoppested::Stoppested(...)
*/
void
Stoppesteder
::
nyStop
()
{
Stoppested
*
nyStopp
=
nullptr
;
string
navn
;
cout
<<
"
\n
Navn på stoppested: "
;
getline
(
cin
,
navn
);
if
(
!
stopper
.
empty
())
// Sjekker kun for duplikat, hvis det finnes stoppesteder
nyStopp
=
finnDuplikat
(
navn
);
if
(
nyStopp
==
nullptr
)
{
// Ingen duplikater funnet/stoppesteder registrert
nyStopp
=
new
Stoppested
(
navn
);
// Oppretter nytt stoppested
stopper
.
push_back
(
nyStopp
);
// Legges bakerst i vektoren
cout
<<
"
\n
Stoppested med navn: "
<<
navn
<<
" er nå lagt til.
\n
"
;
}
else
// Duplikat navn:
cout
<<
"
\n
Stedsnavnet finnes allerede.
\n
"
;
}
/**
* skrivAlle()
* Skriver ut navn og nummer om hvert stoppested i datastrukturen
* Skriver ut 3 stoppesteder per linje i run-time
* Forsøker å skrive formatert utskrift
*
* @see Stoppested::skrivData()
*/
void
Stoppesteder
::
skrivAlle
()
{
int
n
=
0
;
// Indikator for å telle opp antall utskrifter
if
(
!
stopper
.
empty
())
{
// Hvis det finnes stoppesteder registrert:
cout
<<
"
\n
Alle stoppestedene i datastrukturen:
\n
"
;
for
(
int
i
=
0
;
i
<
stopper
.
size
();
i
++
)
{
// For hvert stoppested:
cout
<<
setw
(
4
)
<<
i
+
1
<<
": "
;
// Skriver ut nummer
stopper
[
i
]
->
skrivData
();
// Stopp skriver eget navn
n
++
;
// Teller opp indikator
if
(
n
%
3
==
0
)
{
// Sørger for linjeskift for hver 3.stopp
cout
<<
'\n'
;
}
}
}
else
// Ingen stoppesteder registrert:
cout
<<
"
\n
Ingen stoppesteder registrert i datastrukturen!
\n
"
;
}
/**
...
...
This diff is collapsed.
Click to expand it.
stoppesteder.h
+
2
−
0
View file @
e626bbe2
...
...
@@ -9,6 +9,7 @@
#define __STOPPESTEDER_H
#include
<vector>
#include
<string>
#include
"stoppested.h"
/**
...
...
@@ -18,6 +19,7 @@ class Stoppesteder {
private:
std
::
vector
<
Stoppested
*>
stopper
;
public:
Stoppested
*
finnDuplikat
(
std
::
string
nvn
);
void
handling
();
void
nyStop
();
void
lesFraFil
();
...
...
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