/* * OHJ-1151 - Ohjelmointi 2e * * Palautustehtävä 4 - Prioriteettijono * * * Liian yksinkertainen pääohjelma ja komentotulkki Prioriteettijono- * luokan käyttämiseen. * * "Komentotulkki" ei ole järin kaunis eikä sitä kannata kopidoida * omiin harjoitustöihin. Myös funktiojako on olematon. * Ohjelmaa testataan vain laillisilla syötteillä. * * TÄMÄ TIEDOSTO PITÄÄ OLLA PALAUTUKSESSA MUKANA TÄSMÄLLEEN TÄSSÄ MUODOSSA * KAIKKI MUUTOKSET - MUKAANLUKIEN KOMMENTIT - OVAT KIELLETTYJÄ * */ #include "prioriteettijono.hh" #include #include #include using namespace std; int main() { // luodaan käytetty prioriteettijono-olio Prioriteettijono tehtavat; char komento = '\0'; bool lopeta = false; Prioriteettijono::Prioriteetti tarkeys = 0; string kuvaus(""); do { cout << "> "; cin >> komento; switch (komento) { case 'L': // tapahtuman lisääminen { cin >> tarkeys; // ei lueta välilyöntiä mukaan kuvaukseen cin.get(); getline(cin, kuvaus); tehtavat.lisaa(tarkeys, kuvaus); break; } case 'P': // tapahtuman poistaminen prioriteetilla { cin >> tarkeys; cout << "Jonosta poistettiin " << tehtavat.poista(tarkeys) << " tapahtuma(a)." << endl; break; } case 'D': // tapahtuman poistaminen alimerkkijonolla { cin >> kuvaus; cout << "Jonosta poistettiin " << tehtavat.poista(kuvaus) << " tapahtuma(a)." << endl; break; } case 'T': // tehtävälistan tulostaminen { tehtavat.tulosta(cout); break; } case 'E': // tietyllä prioriteetilla olevat tehtävät { cin >> tarkeys; tehtavat.etsi(tarkeys, cout); break; } case 'M': // tärkeimmän poisto ja tulostus { if (tehtavat.tarkein(kuvaus)) { cout << kuvaus << '.' << endl; } break; } case 'S': // jonon tyhjyyden tarkastelu { if (tehtavat.tyhja()) { cout << "Jono on tyhjä." << endl; } else { cout << "Jonossa on tehtäviä." << endl; } break; } case 'K': // jonon koon tarkastelu { cout << "Tehtäviä jonossa " << tehtavat.koko() << "." << endl; break; } case 'Q': // ohjelman lopettaminen { lopeta = true; break; } default: { cout << "Tunnistamaton komento." << endl; break; } } } while (!lopeta && cin); return EXIT_SUCCESS; }