Zadanie 13.
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ą HURTOWNIA. Klasa wzorcowa będzie przechowywała następujące typy:
a) pomarańcze
b) mleko
c) chleb
d) cukierki
e) mąka
Do każdego typu obiektu należy stworzyć osobną klasę z podstawowymi metodami.
Należy stworzyć klasy dziedziczące po klasie HURTOWNIA:
a) mały hurtownia (może trzymać ograniczoną liczbę rzeczy w jednej chwili czasu)
b) duża hurtownia (kupuje wszystko, ale często sprzedaje część rzeczy)
Klasa HURTOWNIA musi posiadać następujące metody:
1. dodanie elementu
2. pobranie elementu
3. sprawdzenie czy dany element jest w danej hurtowni czy nie
4. sprawdzenie na którym miejscu u hurtowni aktualnie znajduje się nasz obiekt
Każda z hurtowni ma ograniczone możliwości co do magazynowania rzeczy. Przy wstawianiu elementu, który jest już poza możliwościami składowymi hurtowni w zależności od typu hurtowni musi zostać wykona jedna z następujących akcji:
a) informacja - „Nie możemy kupić tej rzeczy” (mały hurtownia)
b) prośba o wybranie obiektu do usunięcia z listy w naszych zasobów (tj. Do szybkiego sprzedania (duża hurtownia)