Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / oop-2023 / week15 / index.du
blob: d23e7bdf89e93569775a8e7c612ceadd121ed70c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
'def title Задачи - ООП, Седмица 15, 30.05.2024
'def  desc Условия на задачите за упражнение

# {title}

\n

GitHub classroom: {url classroom.github.com/a/z2QadyEE;https://classroom.github.com/a/z2QadyEE}

## Задача

В тази задача се оставя голямо количество свобода на имплементация, за всяко нещо сами преценете типове, помощни класове/член функции, оператори и так. нат.
Както винаги, реализирайте голяма петица където е нужно.

Препоръчително е първо да изчетете цялото условие и след това да пишете код.

Реализирайте система за чат.
В нея имаме съобщения, като едно съобщение може да бъде:
.bulleted
- текст, като низ
- локация, като съвкупност от държава, град, област (число), улица и номер на улица
- линк (хипервръзка) като текст и (уеб) адрес
- време: дата и час

Всеки тип трябва да имплементира {` Print} член-функция, която изкарва текстово съдържание на съобщението.
За текстово съобщение това е самия текст, за локация това е низ във формата "[ДЪРЖАВА] ГРАД(ОБЛАСТ) УЛИЦА NoНОМЕР НА УЛИЦА", за линк е самия текст и за време е "ЧАС:МИНУТИ ДЕН.МЕСЕЦ.ГОДИНА".

Реализирайте потребители, като за всеки потребител имаме потребителско име и парола.

Реализирайте чатруум, който съхранява записани потребители в групата, съобщения и съответните потребителски имена на авторите.
Един потребител може да се добави в чатруум, да създава нови съобщения и може да излезе, като един излязъл потребител може да вижда историята на чата до момента в който е излязъл.
Ако обратно бъде вкаран, тогава пак може да вижда всички съобщения от историята и да създава нови.

Всеки потребител може да създаде чатруум и да запише хора в него (по потребителски имена), и може да излезе.
Допълнително собственика на чатруум може да изтрие самия чатруум и да премахва хора.
Ако собственикът се отпише тогава новият собственик е следващия по ред записан потребител.

Реализирайте "платформа" в която се съхраняват всички чатове и потребители, от която също се създават потребители.

Имплементирайте конзолен интерфейс, от който може да създадете потребител, да влезете в акаунта на потребител, след като сте влезли да разглеждате всички налични чатове.
Ако сте член на даден чат да създавате ново съобщение и да излезете.
Ако сте собственик да изтриете чат и да премахвате потребители от чата.