Skip to content
Snippets Groups Projects
Commit 78d7b5d2 authored by Andreas Blakli's avatar Andreas Blakli
Browse files

Oppdaterte hentEksisternde til og kunne hente entyidge navn.

La inn meny() funk.
i stoppesteder.cpp.
parent b404bc67
No related branches found
No related tags found
No related merge requests found
......@@ -6,10 +6,11 @@ Stoppesteder::Stoppesteder() {
}
Stoppesteder::~Stoppesteder() {
ryddOppMinne();
}
void Stoppesteder::skrivData() {
int i = 0;
int i = 1;
for (const auto& val : alleStoppesteder) {
cout << "\n\t" << i << " - " << val->hentNavn();
i++;
......@@ -20,49 +21,89 @@ void Stoppesteder::skrivSpesifikkData() {
cout << "\nSkriv inn navnet på stoppestedet: ";
string inn;
getline(cin, inn);
inn = hjelp.rensStreng(inn);
Stoppested* stopp = hentEksisterende(inn);
if (stopp != nullptr) {
stopp->skrivDataMedNaboer(alleStoppesteder);
} else
cout << "\nFinnes ikke!";
cout << "\nIkke entydig eller finnes ikke!";
}
void Stoppesteder::ny(const string navn) {
bool eksisterer = false;
void Stoppesteder::ny(const string navn, bool leggTilTid) {
// bool eksisterer = false;
/*vector<Stoppested *>::iterator it =
find_if(alleStoppesteder.begin(), alleStoppesteder.end(),
[](Stoppested *s, const string navn) { return s->hentNavn() == navn; });*/
for (const Stoppested* val : alleStoppesteder) {
if ([](Stoppested* val, string navn) {})
/*for (const auto & val : alleStoppesteder) {
if (val->hentNavn() == navn)
eksisterer = true;
}
if (eksisterer)
}*/
if (hentEksisterende(navn) != nullptr)
cout << '\n'
<< "Advarsel: "
<< "Error: "
<< navn
<< " eksisterer allerede!"
<< '\n';
else
else if (leggTilTid) {
// tid mellom forrige busstopp
// tid til neste bussstopp
// for (int i = alleStoppesteder.size(); i < )
alleStoppesteder.push_back(new Stoppested(alleStoppesteder.size(), navn, leggTilTid));
} else
alleStoppesteder.push_back(new Stoppested(navn));
}
Stoppested* Stoppesteder::hentEksisterende(const string navn) {
bool lik;
int antallLike = 0;
string tmp;
Stoppested* tmpStoppested = nullptr;
for (const auto& val : alleStoppesteder) {
//tmpStoppested = nullptr;
lik = true;
tmp = "";
tmp = val->hentNavn();
for (int i = 0; i < navn.size(); i++) {
if (i < tmp.size()) {
if (toupper(navn[i]) != toupper(tmp[i])) lik = false;
} else lik = false;
}
if (lik) {
tmpStoppested = val;
antallLike++;
}
}
if (antallLike == 1) return tmpStoppested;
//else if (antallLike > 1) cout << '\n' << antallLike << " antallLike.";
/* auto it = count(tmp.begin(), tmp.end(), ) for (const auto& navnC : navn) {
for (const auto& eksiC : val->hentNavn()) {
if (toupper(eksiC) == toupper(navnC)) antallLikeNavn++;
}
}
if (hjelp.gjorOmTilStorBokstav(val->hentNavn()) ==
hjelp.gjorOmTilStorBokstav(navn))
return val;
}
*/
return nullptr;
}
Stoppested* Stoppesteder::hentEksisterende(const int index) {
if (alleStoppesteder.size() >= index) return alleStoppesteder[index];
return nullptr;
}
void skrivMeny() {
cout << "\nN - Lag nytt stoppested" << '\n'
void Stoppesteder::skrivMeny() {
/*cout << "\nN - Lag nytt stoppested" << '\n'
<< "A - Skriv alle stoppesteder" << '\n'
<< "E - Skriv alt om ett stoppested" << '\n';
<< "E - Skriv alt om ett stoppested" << '\n';*/
cout << "\nN - Nytt stoppested" << '\n'
<< "A - Skriv alle stoppesteder" << '\n'
<< "E - Skriv alt om ett stoppested" << '\n'
<< "Q - Tilbake";
}
int Stoppesteder::hentIndex(Stoppested* stoppested) {
......@@ -73,3 +114,39 @@ int Stoppesteder::hentIndex(Stoppested* stoppested) {
}
return -1;
}
void Stoppesteder::meny() {
char valg;
string navn;
do {
skrivMeny();
valg = lesChar("");
switch (valg) {
case 'N': {
cout << "\nSkriv inn navn på stoppested:";
getline(cin, navn);
navn = hjelp.rensStreng(navn);
ny(navn, false);
break;
}
case 'A':
skrivData();
break;
case 'E':
skrivSpesifikkData();
break;
case 'Q':
break;
default:
cout << "\nUgyldig valg!" << '\n';
break;
}
} while (valg != 'Q');
}
void Stoppesteder::ryddOppMinne() {
for (int i = 0; i < alleStoppesteder.size(); i++) {
delete alleStoppesteder[i];
}
alleStoppesteder.clear();
}
\ 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