diff options
| Commit | ceba15fcc704aaac81071de6ac37443c63259443 (patch) | |
|---|---|---|
| Author | 2024-05-29 15:57:19 +0300 | |
| Committer | 2024-05-29 15:57:19 +0300 | |
| Files | 3960b86653a871d970b8095bafb3ffa69bcadd2c /src | |
| syndamia.com-ceba15fcc704aaac81071de6ac37443c63259443.tar syndamia.com-ceba15fcc704aaac81071de6ac37443c63259443.tar.gz syndamia.com-ceba15fcc704aaac81071de6ac37443c63259443.zip | ||
| Parent | eb5fd14e0bc7b77676d0cba4fcc38f1c9cfa91b7 (diff) | |
[te/oop-2023/w15] Added exercise and gh classroom link
2 files changed, 38 insertions, 0 deletions
| -rw-r--r-- | src/teaching/oop-2023/index.md | 1 | ||||
| -rw-r--r-- | src/teaching/oop-2023/week15/index.md | 37 |
diff --git a/src/teaching/oop-2023/index.md b/src/teaching/oop-2023/index.md index 74d7694..ceef700 100644 --- a/src/teaching/oop-2023/index.md +++ b/src/teaching/oop-2023/index.md @@ -28,3 +28,4 @@ |12|09.05.2024|[Задачи](./week12/) \|\| [Решения](https://github.com/Syndamia/oop-2023-solutions/tree/main/week12) \|\| [GitHub classroom](https://classroom.github.com/a/o7hNz1pr)| |13|16.05.2024|[Задачи](./week13/) \|\| [Решения](https://github.com/Syndamia/oop-2023-solutions/tree/main/week13) \|\| [GitHub classroom](https://classroom.github.com/a/GvV1wrC1)| |14|23.05.2024|[Задачи](./week14/) <!-- \|\| [Решения](https://github.com/Syndamia/oop-2023-solutions/tree/main/week12) --> \|\| [GitHub classroom](https://classroom.github.com/a/K0XomKEP)| +|15|30.05.2024|[Задачи](./week15/) <!-- \|\| [Решения](https://github.com/Syndamia/oop-2023-solutions/tree/main/week12) --> \|\| [GitHub classroom](https://classroom.github.com/a/z2QadyEE)| diff --git a/src/teaching/oop-2023/week15/index.md b/src/teaching/oop-2023/week15/index.md new file mode 100644 index 0000000..6719bf0 --- /dev/null +++ b/src/teaching/oop-2023/week15/index.md @@ -0,0 +1,37 @@ +# Задачи - ООП, Седмица 15, 30.05.2024 + +GitHub classroom: [classroom.github.com/a/z2QadyEE](https://classroom.github.com/a/z2QadyEE) + +## Задача + +В тази задача се оставя голямо количество свобода на имплементация, за всяко нещо сами преценете типове, помощни класове/член функции, оператори и так. нат. +Както винаги, реализирайте голяма петица където е нужно. + +Препоръчително е първо да изчетете цялото условие и след това да пишете код. + +Реализирайте система за чат. +В нея имаме съобщения, като едно съобщение може да бъде: + +- текст, като низ +- локация, като съвкупност от държава, град, област (число), улица и номер на улица +- линк (хипервръзка) като текст и (уеб) адрес +- време: дата и час + +Всеки тип трябва да имплементира `Print` член-функция, която изкарва текстово съдържание на съобщението. +За текстово съобщение това е самия текст, за локация това е низ във формата "[ДЪРЖАВА] ГРАД(ОБЛАСТ) УЛИЦА NoНОМЕР НА УЛИЦА", за линк е самия текст и за време е "ЧАС:МИНУТИ ДЕН.МЕСЕЦ.ГОДИНА". + +Реализирайте потребители, като за всеки потребител имаме потребителско име и парола. + +Реализирайте чатруум, който съхранява записани потребители в групата, съобщения и съответните потребителски имена на авторите. +Един потребител може да се добави в чатруум, да създава нови съобщения и може да излезе, като един излязъл потребител може да вижда историята на чата до момента в който е излязъл. +Ако обратно бъде вкаран, тогава пак може да вижда всички съобщения от историята и да създава нови. + +Всеки потребител може да създаде чатруум и да запише хора в него (по потребителски имена), и може да излезе. +Допълнително собственика на чатруум може да изтрие самия чатруум и да премахва хора. +Ако собственикът се отпише тогава новият собственик е следващия по ред записан потребител. + +Реализирайте "платформа" в която се съхраняват всички чатове и потребители, от която също се създават потребители. + +Имплементирайте конзолен интерфейс, от който може да създадете потребител, да влезете в акаунта на потребител, след като сте влезли да разглеждате всички налични чатове. +Ако сте член на даден чат да създавате ново съобщение и да излезете. +Ако сте собственик да изтриете чат и да премахвате потребители от чата. |