Projekt 16/04:
Klasę reprezentującą macierze 3x3 (z pierwszego projektu) przerobić na szablon ze sparametryzowanym typem
elementów macierzy. Szablon wykorzystać do utworzenia klasy, w której elementy macierzy są typu int.
Napisać klasę, której elementy reprezentują zbiory złożone z obiektów powyższej klasy. Elementy w zbiorach
nie mogą się powtarzać. Zaimplementować następujące metody:
●
drukowanie zawartości – przeciążenie operatora drukowania do strumienia;
●
porównanie zbiorów – przeciążenie operatorów == i !=;
●
suma zbiorów – przeciążenie operatora +;
●
iloczyn zbiorów – przeciążenie operatora *.
Klasę wyposażyć w licznik utworzonych obiektów (pole statyczne). Nie korzystać z klasy vector!
Wymagania:
●
wykorzystanie klas autonomicznych ze zmienną strukturą obiektów oraz prostych szablonów klas i funkcji;
●
prawidłowy i logiczny podział kodu między między pliki nagłówkowe i implementacyjne oraz plik testujący;
●
podział na część publiczną i prywatną klasy;
●
przejrzysty układ tekstu, zwięzłe i klarowne komentarze zapewniające samodokumentowanie się kodu;
●
stosowanie identyfikatorów ułatwiających czytającemu zrozumienie kodu;
●
wyraźna identyfikacja autora i prowadzącego;
●
przejrzyste menu interakcji z użytkownikiem w programie testującym; ponadto w przypadku błędnej danej
program powinien poprosić o podanie nowej, poprawnej;
●
kompilacja programu przy pomocy makefile (kompilator g++, flaga –Wall);
●
maks. liczba punktów za projekt nr 2 – 20, za terminowe oddanie projektów uważa się zajęcia nr 9 – 08 V 2014;
●
temat następnego projektu student otrzymuje na zajęciach, na których zakończy poprzedni program; opóźnienie
ukończenia projektu powoduje zmniejszenie o 20 % liczby uzyskanych punktów za każdy tydzień opóźnienia;
●
ocena za projekt jest wystawiana po prezentacji projektu na zajęciach i przesłaniu kodów źródłowych na adres
mailowy prowadzącego.