diff --git a/ruter.cpp b/ruter.cpp index 56e3914b61d5278eb68b8642b37e02677c9f375b..bb9a6eb6670480805d25a25a91a4752390210b8a 100644 --- a/ruter.cpp +++ b/ruter.cpp @@ -103,29 +103,29 @@ void Ruter::nyRute() { if (!gStoppestederBase.tom()) { // Hvis det finnes stoppesteder registrert: ruteNr = lesInt("Rutenr", MINRUTER, MAXRUTER); - // Looper til ikke duplikat rutenr blir skrevet inn - while (ruteNrFinnes(ruteNr)) { - cout << "\nDuplikat ruteNr, vennligst prøv igjen.\n"; - ruteNr = lesInt("Rutenr", MINRUTER, MAXRUTER); - } + // Hvis ikke duplikat rutenr blir skrevet inn: + if (!ruteNrFinnes(ruteNr)) { - ruteType = lesChar("Rutetype b(A)ne eller b(U)ss"); - // Looper til lovlig valg av rutetype blir lest inn: - while (ruteType != 'A' && ruteType != 'U') { - cout << "\nUgyldig valg, prøv igjen.\n"; ruteType = lesChar("Rutetype b(A)ne eller b(U)ss"); - } + // Looper til lovlig valg av rutetype blir lest inn: + while (ruteType != 'A' && ruteType != 'U') { + cout << "\nUgyldig valg, prøv igjen.\n"; + ruteType = lesChar("Rutetype b(A)ne eller b(U)ss"); + } - switch (ruteType) { - case 'A': nyRute = new Bane; nyRute->lesData(); break; - case 'U': nyRute = new Buss; nyRute->lesData(); break; - } + switch (ruteType) { + case 'A': nyRute = new Bane; nyRute->lesData(); break; + case 'U': nyRute = new Buss; nyRute->lesData(); break; + } + + if (nyRute->erListeGyldig()){ + rutene[ruteNr] = nyRute; + cout << "\nNy rute er lagt til:\n"; + ruteBeskrivelse(ruteNr); + } else nyRute->slettData(); - if(nyRute->erListeGyldig()){ - rutene[ruteNr] = nyRute; - cout << "\nNy rute er lagt til:\n"; - ruteBeskrivelse(ruteNr); - }else nyRute->slettData(); + } else // Rutenummer er duplikat: + cout << "\nRutenummeret finnes fra før. Kan ikke legge til rute.\n\n"; } else // Hvis ingen stoppesteder registrert: cout << "\nIngen stopper registrert i datastrukturen, kan derfor ikke " diff --git a/stoppesteder.cpp b/stoppesteder.cpp index f7e7f2aff4a97e4c9a771a49cb94a70ce0574b93..6d6adc024d1ee5d1ee6574e23ef5c7c2d6a426ee 100644 --- a/stoppesteder.cpp +++ b/stoppesteder.cpp @@ -246,7 +246,8 @@ void Stoppesteder::nyStop() { // TODO: kun kan være tall! cout << "\nNavn på stoppested: "; getline(cin,navn); // Leser navn while (navn.size() < 2 || ikkeHarTall(navn)) { // Looper hvis navn er >2 tegn - cout << "\nNavn må være 2 tegn eller mer. Prøv igjen: "; + cout << "\nNavn kan ikke inneholde tall, og må være 2 tegn eller mer." + << " Prøv igjen: "; getline(cin, navn); }