Projekt z C++. Dziedziczenie, funkcje wirtualne.

0

Dostałem do zrealizowania taki oto projekt:

Proszę zaimplementować rodzinę klas Zbiór i Ciąg dla klas wskazanych w tabelce. Rodzina
obejmuje następujące klasy: 1) KontenerAbstrakcyjny – klasa abstrakcyjna służąca do
przechowywania instancji odpowiedniej klasy 2) KontenerFizyczny – implementacja klasy
KontenerAbstrakcyjny, 2) Zbiór rozszerzający Kontener o operacje teoriomnogościowe takie jak
suma, różnica, przecięcie, różnica symetryczna 3) Ciąg rozszerzający Kontener o operacje na
ciągach liczbowych: suma, różnica, przeplot (suma powstała przez wstawianie elementów z
ciągów źródłowych na przemian), podciąg, 4) Ciąg arytmetyczny 5) Ciąg geometryczny.

Wszystkie klasy powinny zostać wyposażone w operatory >> i << do obsługi plików
tekstowych. Proszę zaprezentować używanie polimorfizmu i używać tego narzędzia wszedzie
gdzie jest to uzasadnione. Wszystkie operacje (arytmetyczne dla liczb i teoriomnogosciowe dla
zbiorów/ciągów, indeksacji dla Kontenera) powinny się odbywać przy wykorzystaniu
operatorów. Proszę zrealizować interakcyjny program testujący w oparciu o częściowo
zdefiniowane dane w plikach, np. zapisanie danych zaszytych w programie do pliku oraz ich
odczytanie w celu sprawdzenia poprawności operacji zapisy i odczytu.

Student..........Przechowywane elementy
....Ja................Liczba Rzymska

Niestety treść ta jest dosyć zawiła i ciężko mi z niej cokolwiek zrozumieć. Nie potrafię sobie wyobrazić przede wszystkim czym są Kontener Abstr. i Fizyczny. Co one przechowują, robią? Czy to w nich powinna być w jakiś sposób zdefiniowana ta Liczba Rzymska? Jeśli tak to w jaki sposób? No i co tu w zasadzie ma być rodziną, klasą podstawową a pochodną? Wiem co to dziedziczenie, polimorfizm itp. Druga część jest dla mnie zrozumiała, ale pierwszej nie mogę jakoś ugryźć :/ Jeśli ktoś byłby w stanie mi wytłumaczyć o co chodzi, podesłać jakieś info, linki czy tytuły książek będę bardzo wdzięczny. Z góry dzięki za pomoc.

0

kontener -- http://en.wikipedia.org/wiki/Container_(data_structure)
czyli, jest to "cos" co gromadzi "jakies" rzeczy i pozwala dodac, usunac i pobrac z siebie ktoras konkretna z nich

kont. abstracyjny -- masz za zadanie przygotowac "definicje" kontenera, ktora NIE BEDZIE dzialac sama z siebie, bedzie (czysto?) abstrakcyjna, bedzie jedynie gromadzic rzeczy wspolne dla wszystkich kontenerow jakie moglbys u siebie wymyslec (np.: metoda unsigned long aktualnaIlosc(), dodajNowy(), usun(idx), pobierz(idx) itp). prawdopodobnie wystarczy ze stworzysz interfejs typu pure virtual..

kont. fizyczny -- zaimplementowac ("do"implementowac) ów abstrakt do postaci uzywalnej. czyli utworzyc klase dziedziczaca po kont.abstr. ktora uzupelni wszystko co bylo nie-do-pisane w owej i co sprawi ze ta klasa stanie sie uzyteczna (jej obiekty stana sie "twarzalne", bedziesz mogl je po porstu utworzyc)

teorio-mnogosciowe -- cos, co do kontenera fizycznego doda operacje sumy, roznicy (..) zbiorow. fajnie ze k.f. moze dodawac i usuwac elementy, ale chcielibysmy moc np. dodac dwa k.f. do siebie i w efekcie uzyskac jeden k.f. o elementach lacznie zebranych z owych dwoch. itd. pomysl prowadzacego sprowadza sie do utworzenia nowej klasy Zbior, dziedziczacej po k.f. i posiadajacej dodatkowe metody/operatory

ciag -- to samo, ale zakladamy ze elementy to liczby i dodatkowe metody uzywaja tego faktu

arytm, geom -- jak wyzej..

ps. ah, i popraw temat. czas: 2 dni. potem kosz

1 użytkowników online, w tym zalogowanych: 0, gości: 1