background image

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.