Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
pl:dydaktyka:jimp2:2017:labs:klasy1 [2018/03/21 13:02]
mwp [Typ optional]
pl:dydaktyka:jimp2:2017:labs:klasy1 [2018/03/21 15:24]
mwp modyfikacja ćwiczenia z Name
Linia 266: Linia 266:
     * Importy: <code cpp>#​include <​string>​     * Importy: <code cpp>#​include <​string>​
 #include <​cstdint></​code>​ #include <​cstdint></​code>​
-  - [2 plusy] Napisz klasę wartości Name, pozwalającą przechowywać pełne imię (imiona) i nazwisko osoby. Udostępniającą następujące akcesory (nie każda osoba musi mieć drugie imię a tym bardziej trzecie, konstruktor powinien być w stanie sparsować pełną nazwę w postaci pojedynczego łańcucha znaków, jak i podanie osobno pierwszego imienia i nazwiska): +  - [2 plusy] Napisz klasę wartości Name, pozwalającą przechowywać pełne imię (imiona) i nazwisko osoby. Udostępniającą następujące akcesory (nie każda osoba musi mieć drugie imię a tym bardziej trzecie, konstruktor powinien być w stanie sparsować pełną nazwę w postaci pojedynczego łańcucha znaków): ​
     * FirstName (Thomas)     * FirstName (Thomas)
     * SecondName (Jorge)     * SecondName (Jorge)
Linia 277: Linia 277:
     * IsBeforeBySurname - metody porównują słownikowo czy nazwisko jest przed podanym jako argument     * IsBeforeBySurname - metody porównują słownikowo czy nazwisko jest przed podanym jako argument
     * IsBeforeByFirstName     * IsBeforeByFirstName
 +    * Kod: <code cpp>#​include <​string>​
 +#include <​experimental/​optional>​
 +
 +namespace model {
 +
 +using ::​std::​string;​
 +using ::​std::​stringstream;​
 +using ::​std::​experimental::​optional;​
 +
 +class Name {
 + ​public:​
 +  explicit Name(const string &​first_names_surname);​
 +
 +  string FirstName() const;
 +  optional<​string>​ SecondName() const;
 +  optional<​string>​ ThirdName() const;
 +  string Surname() const;
 +  string ToFullInitials() const;
 +  string ToFirstNamesInitials() const;
 +  string ToSurnameNames() const;
 +  string ToNamesSurname() const;
 +  bool IsBeforeBySurname(const Name &other) const;
 +  bool IsBeforeByFirstName(const Name &other) const;
 +
 + ​private:​
 +  string first_name_;​
 +  string second_name_;​
 +
 +  string third_name_;​
 +  string last_name_;
 +};
 +}
 +</​code>​
   - **[3 punkty + 1 punkt za zaliczenie testu Injection] Szablony to bardzo popularny sposób tworzenia dynamicznych stron Internetowych w różnych frameworkach takich jak Spring, Django, czy Rails itp... Istnieje wiele bibliotek wspierających renderowanie stron www na podstawie szablonów np. [[https://​github.com/​no1msd/​mstch|mustache]]. Napisz silnik wspierający tworzenie tekstów na podstawie szablonu. Projekt ma się składać z pojedynczej klasy View, która jest w stanie przyjąć w konstruktorze szablon, a następnie wyrenderować go. Przy tej implementacji w szablonie można umieścić specjalne pola pomiędzy podwójnymi nawiasami klamrowymi z nazwą, które zostaną podmienione w trakcie rednerowania. Np. w wyniku wykonania kodu nastąpi podmienienie tekstu %%{{%%name%%}}%% na Xavier: **<code cpp>View view{"​Hello {{name}}!"​};​   - **[3 punkty + 1 punkt za zaliczenie testu Injection] Szablony to bardzo popularny sposób tworzenia dynamicznych stron Internetowych w różnych frameworkach takich jak Spring, Django, czy Rails itp... Istnieje wiele bibliotek wspierających renderowanie stron www na podstawie szablonów np. [[https://​github.com/​no1msd/​mstch|mustache]]. Napisz silnik wspierający tworzenie tekstów na podstawie szablonu. Projekt ma się składać z pojedynczej klasy View, która jest w stanie przyjąć w konstruktorze szablon, a następnie wyrenderować go. Przy tej implementacji w szablonie można umieścić specjalne pola pomiędzy podwójnymi nawiasami klamrowymi z nazwą, które zostaną podmienione w trakcie rednerowania. Np. w wyniku wykonania kodu nastąpi podmienienie tekstu %%{{%%name%%}}%% na Xavier: **<code cpp>View view{"​Hello {{name}}!"​};​
 cout << view.Render(map {{"​name","​Xavier"​}});</​code>​ cout << view.Render(map {{"​name","​Xavier"​}});</​code>​
pl/dydaktyka/jimp2/2017/labs/klasy1.txt · ostatnio zmienione: 2019/06/27 15:50 (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