Laboratorium 12, 9.01.2013 W zadaniu należy wykorzystać
Transkrypt
Laboratorium 12, 9.01.2013 W zadaniu należy wykorzystać
Laboratorium 12, 9.01.2013 W zadaniu należy wykorzystać kontenery dostępne w STL. Do odpowiednich kontenerów będą zapisywane obiekty typu samochód, motor i liczby int. Należy zdefiniować bardzo proste klasy samochod i motor dziedziczące po klasie abstrakcyjnej pojazd. Klasa pojazd powinna zawierać informację o ilości kół pojazdu oraz o jego wadze. Klasa samochod dodatkowo powinna zawierać informację o marce samochodu, a klasa motor o marce i typie motoru. Domyślnie samochód powinien mieć 4 koła a motor 2. Informacje o samochodach (marka, waga) zawarte są w plikach samochodyIn_1.txt samochodyIn_2.txt, a informacje o motorach (typ, marka, waga) zawarte są w pliku motoryIn.txt. W funkcji main należy utworzyć listy (list) zawierające spis samochodów z obu podanych plików wejściowych. Następnie ostatni (Nieznany) samochód z drugiej listy należy usunąć. Zawartość obu list samochodów należy następnie wypisać do pliku wyjściowego. Wypisując informację o samochodzie należy podać jego markę, wagę, oraz ilość kół. Następnie w funkcji main należy utworzyć mapę (map) zawierającą informację o motorach, kluczami będzie cena (tablica z cenami podana jest w szablonie funkcji main). Każdy kolejna cena w tablicy odpowiada kolejno motorom zawartym w pliku wejściowym z danymi o motorach. Następnie usuwamy najtańszy motor (czyli ten, którego cena wynosi 1500) wcześniej wypisując na ekran jaki to będzie motor (używając funkcji getInfo lub przeciążonego operatora <<). Po usunięciu najtańszego motoru z mapy należy wypisać zawartość mapy do pliku wyjściowego. Wypisując informację o motorze trzeba należy podać jego wszystkie właściwości: typ, markę, wagę, ilość kół oraz cenę danego motoru. Na koniec należy utworzyć stos (stack), do którego będą wpisane liczby. Następnie należy wypisać na ekran ile jest liczb i usunąć ostatnią liczbę wcześniej wypisując ją na ekran. Liczby znajdujące się na stosie należy następnie wypisać do pliku wyjściowego. Wykonanie powyższych zadań pozwala na uzyskanie 4 pkt. Na 5 pkt. należy przeciążyć operator <<. Przy wypisywaniu informacji o pojazdach do strumienia wyjściowego można użyć funkcji getInfo lub przeciążyć operator << (dodatkowo za 1pkt). Przykładowe pliki wyjściowe znajdują się w katalogu z zadaniem. Przykładowy efekt działania programu: Usuniemy najtanszy motor, czyli: ____________ Marka: Suzuki Typ: cross Ilosc kol: 2 Waga: 110 ____________ Cena: 1500 Ilosc liczb na stosie: 10 Ostatnia liczba na stosie: 100