Zad. 4. Stos Zaprojektuj i zaimplementuj klasę reprezentującą
Transkrypt
Zad. 4. Stos Zaprojektuj i zaimplementuj klasę reprezentującą
Metody i Języki Programowania w5, zad.4 mgr inŜ. Paweł Kośla Zad. 4. Stos Zaprojektuj i zaimplementuj klasę reprezentującą strukturę stosu ksiąŜek. Zapoznaj się z właściwościami takiej struktury danych. Klasa reprezentująca ksiąŜki powinna zawierać co najmniej: - pole char* z tytułem ksiąŜki, - pole char* z nazwiskiem autora, - pole int zawierającym datę wydania. Na stosie moŜe znajdować się pewna maksymalna liczba ksiąŜek. Stos musi zawierać co najmniej takie atrybuty: - zmienną całkowitą wskazującą na ostatni element stosu, - tablicę, przechowującą wskaźniki do obiektów (ksiąŜek). Podstawowe operacje na stosie to: - void poloz(Ksiazka* k); - Ksiazka* zdejmij(); 1. Wielkość stosu ma być ustalana w konstruktorze stosu. 2. Funkcje „poloz” i „zdejmij” zabezpiecz przed próbą dodania ksiąŜki do pełnego stosu lub zdjęcia z pustego stosu. 3. Zaimplementuj metodę wyświetlającą zawartość stosu (zwróć uwagę na kolejność!) Na przykład: Stos: 3. Mistrz i Malgorzata, Bulhakow, 1967 2. Ania z Zielonego Wzgorza, Montgomery, 1908 1. Proces, Kafka, 1925 4. UmoŜliw zerowanie stosu. W funkcji main() przetestuj zaproponowaną klasę. Przykładowy sposób: Stos st(3); //rozmiar stosu Ksiazka* k; k=st.zdejmij(); //!! obsługa błędu !! st.poloz(new Ksiazka(„Proces”, „Kafka”, 1925); st.poloz(new Ksiazka(„Ania z Zielonego Wzgorza”, „Montgomery”, 1908); st.poloz(new Ksiazka(„Mistrz i Malgorzata”, „Bulhakow”, 1967); st.wyswietl(); //wyświetla stos st.poloz(new Ksiazka(„Alchemik”, „Coelho”, 1988); //!! obsługa błędu przepełnienia!! k = st.zdejmij(); cout<<*k<<endl; st.wyswietl(); st.del(); //zerowanie stosu st.wsw(); //pusty stos 5. Zmodyfikuj swoją klasę wykorzystując szablony klas w C++ tak, by moŜna było ją stosować dla róŜnych typów danych. Stos<int> st1; st1.poloz(3); st2.poloz(6); int a = st1.zdejmij(); Stos<Ksiazka*> st2; st2.poloz(new Ksiazka(„Proces”, „Kafka”, 1925); st2.poloz(new Ksiazka(„Alchemik”, „Coelho”, 1988); Ksiazka* k = st2.zdejmij();