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:klasy1 [2017/07/17 10:08]
127.0.0.1 edycja zewnętrzna
pl:dydaktyka:jimp2:2017:labs:klasy1 [2018/03/21 15:24]
mwp modyfikacja ćwiczenia z Name
Linia 215: Linia 215:
  
 <code cpp> <code cpp>
-std::​experimental::​optional<std::​string>​ MaybeString(bool create) {+#include <​string>​ 
 +#include <​experimental/​optional>​ 
 + 
 +using ::std::​experimental::​optional
 +using ::std::experimental::​make_optional;​ 
 +using ::​std::​string;​ 
 +using ::​std::​cout;​ 
 +using ::​std::​endl;​ 
 + 
 +optional<​string> MaybeString(bool create) {
   if (create) {   if (create) {
-     ​return ​std::​experimental::​make_optional("​CREATED"​);​+     ​return make_optional("​CREATED"​);​
   } else {   } else {
      ​return {};      ​return {};
Linia 257: 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 268: 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