Zadanie 12.
Ogólne wymagania do projektu 2:
Program powinien mieć napisany prawidłowy makefile.
W ramach zadania należy wykorzystać funkcje wirtualne. W programach testujących należy wykorzystać klasy stworzone w ramach pierwszego zadania.
W ramach projektu należy przygotować program testujący następujące funkcjonalności:
a) testowanie możliwości klas (tworzący wiele obiektów i sprawdzających poprawność działania metod (np. Sprawdzanie czy dane obiekty należą do danego obiektu)
b) automatyczne testowanie zaimplementowanego kodu (należy przygotować zestaw asercji dla każdej metody dodawanej do kodu).
Program powinno uruchomić się w normalnym trybie do przetestowania poprawności działania przez prowadzącego.
Klasy oraz funkcje powinny posiadać stosowne opisy.
Preferowanym językiem opisu i nazywania zmiennych jest język angielski.
Dodatkowo klasy powinny mieć destruktory zwalniający pamięć.
Treść zadania:
Utworzyć klasę wzorcową KOLEKCJONER. Klasa wzorcowa będzie przechowywała następujące typy:
a) samochody
b) obrazy
c) rowery
d) biżuteria
e) pieniądze
Do każdego typu obiektu należy stworzyć osobną klasę z podstawowymi metodami.
Należy stworzyć klasy dziedziczące po klasie KOLEKCJONER:
a) mały kolekcjoner (może trzymać ograniczoną liczbę rzeczy w jednej chwili czasu)
b) kolekcjoner spekulacyjny (kupuje wszystko, ale często sprzedaje część rzeczy)
Klasa KOLEKCJONER musi posiadać następujące metody:
1. dodanie elementu
2. pobranie elementu
3. sprawdzenie czy dany element jest u danego kolekcjonera czy nie
4. sprawdzenie na którym miejscu u kolekcjonera aktualnie znajduje się nasz obiekt
Każdy z kolekcjonerów ma ograniczone możliwości co do kupowania rzeczy. Przy wstawianiu elementu, który jest już poza możliwościami kolekcjonera w zależności od typu kolekcjonera musi zostać wykona jedna z następujących akcji:
a) informacja - „Nie możemy kupić tej rzeczy” (mały kolekcjoner)
b) prośba o wybranie obiektu do usunięcia z listy w naszych zasobach (tj. Do szybkiego sprzedania (kolekcjoner spekulacyjny)