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();

Podobne dokumenty