Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:jimp2:2017:labs:dziedziczenie2 [2017/05/09 09:22]
esimon [Ćwiczenia]
pl:dydaktyka:jimp2:2017:labs:dziedziczenie2 [2019/06/27 15:50] (aktualna)
Linia 106: Linia 106:
  
  
-  - [6 plusów] Zdefiniować interfejs Serializable zawierający pojedynczą metodę Serialize(Serializer *), każda klasa implementująca go zapisuje swój stan do obiektu Serializer pole po polu. Zdefiniować również dwie nowe klasy do projektu Academia: **Room** i **Building**. Obie klasy powinny implementować wspomniany interfejs. Zdefiniować również dwa różne ​seralizatory: XmlSerializer i JsonSerializer umożliwiające zapisywanie obiektów w formacie odpowiednio xml lub json.+  - [6 plusów] Zdefiniować interfejs Serializable zawierający pojedynczą metodę Serialize(Serializer *), każda klasa implementująca go zapisuje swój stan do obiektu Serializer pole po polu. Zdefiniować również dwie nowe klasy do projektu Academia: **Room** i **Building**. Obie klasy powinny implementować wspomniany interfejs. Zdefiniować również dwa różne ​formaty seraializacjiSerializatory **XmlSerializer** **JsonSerializer** umożliwiające zapisywanie obiektów w formacie odpowiednio xml lub json. Zacząć testy od BaseSerializerTest,​ który nakłada warunki na bazową klasę Serializer.
   - [6 plusów] Student wybiera się na juwenalia. Zaopatrzył się w plecak, i odpowiedni budżet. Student (akurat ten) jest niewybredny i nie ma dla niego większego znaczenia jakiej jakości prowiant kupuje. Ważne dla niego jest jednak to, żeby dotrwać do końca imprezy... Student napotyka jednak jeden z fundamentalnych problemów czasoprzestrzennych:​ zasobność plecaka jest ograniczona. Student napisał więc aplikację, która pozwoli mu optymalnie dobrać prowiant, tak, żeby z jednej stron nie zmarnować miejsca w plecaku, a z drugiej strony nie przeholować i uzyskać "​założony stan zadowolonia imprezowego":​ https://​en.wikipedia.org/​wiki/​Blood_alcohol_content.   - [6 plusów] Student wybiera się na juwenalia. Zaopatrzył się w plecak, i odpowiedni budżet. Student (akurat ten) jest niewybredny i nie ma dla niego większego znaczenia jakiej jakości prowiant kupuje. Ważne dla niego jest jednak to, żeby dotrwać do końca imprezy... Student napotyka jednak jeden z fundamentalnych problemów czasoprzestrzennych:​ zasobność plecaka jest ograniczona. Student napisał więc aplikację, która pozwoli mu optymalnie dobrać prowiant, tak, żeby z jednej stron nie zmarnować miejsca w plecaku, a z drugiej strony nie przeholować i uzyskać "​założony stan zadowolonia imprezowego":​ https://​en.wikipedia.org/​wiki/​Blood_alcohol_content.
     - Problem kolejny to taki, że student nie może wybierać z nieograniczonej liczby produktów, bo jest spóźniony na before-party. Wchodzi więc do sklepy i przebiega dział z prowiantem mijając 20 półek. Nie wie co leży na nich i biegnąc musi zdecydować,​ czy losowo wystawiony na półce produkt zabrać, czy nie ;)     - Problem kolejny to taki, że student nie może wybierać z nieograniczonej liczby produktów, bo jest spóźniony na before-party. Wchodzi więc do sklepy i przebiega dział z prowiantem mijając 20 półek. Nie wie co leży na nich i biegnąc musi zdecydować,​ czy losowo wystawiony na półce produkt zabrać, czy nie ;)
 +    - Po zakupach, student musi również uszeregowac prowiant w kolejności jego spożywania ;)
 +  - **[5 punktów] Dokończyć zadanie z [[https://​pl.wikipedia.org/​wiki/​Serializacja|Serializacją]] klas Building i Room i zdefiniowanymi serializatorami XmlSerializer i JsonSerializer. Zdefiniować również BuildingRespository repozytorium przechowujące listę wszystkich budynków, z możliwością zapisania stanu wszystkich jego obiektów do przekazanego w parametrze Serializatora (metoda: void StoreAll(Serializer *serializer) const). W docelowej aplikacji powinna się oczywiści znaleźć stowarzyszona metoda odczytująca zserializowane dane i wczytująca z pliku zapisany stan aplikacji, ale nie jest to już objętę pracą domową :) Repozytorium musi udostępniać też przeciążony operator[] tablicowy zwracający optional<​Building>​ (std::​experimental::​optional w C%%++%%14)**
pl/dydaktyka/jimp2/2017/labs/dziedziczenie2.1494314522.txt.gz · ostatnio zmienione: 2019/06/27 15:52 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0