Summary Files Commits Branches @commit @diff @stats
path: root / src
diff options
context:
space:
mode:
Commit610d760e2e91f2ee50a48fd1f4c57d4b35e68523 (patch)
Author
 Syndamia <kamen@syndamia.com>
2024-05-23 09:15:32 +0300
Committer
 Syndamia <kamen@syndamia.com>
2024-05-23 09:15:32 +0300
Filescef183952498008e9208d7050579ca41296c74c5 /src
syndamia.com-610d760e2e91f2ee50a48fd1f4c57d4b35e68523.tar
syndamia.com-610d760e2e91f2ee50a48fd1f4c57d4b35e68523.tar.gz
syndamia.com-610d760e2e91f2ee50a48fd1f4c57d4b35e68523.zip
Parent7c851224135462b3b86ee54cf01da36cc6822d81 (diff)
[te/oop-2023/w14] Added exercises and gh classroom link
2 files changed, 74 insertions, 0 deletions
-rw-r--r--src/teaching/oop-2023/index.md1
-rw-r--r--src/teaching/oop-2023/week14/index.md73
diff --git a/src/teaching/oop-2023/index.md b/src/teaching/oop-2023/index.md
index 52048d8..791d120 100644
--- a/src/teaching/oop-2023/index.md
+++ b/src/teaching/oop-2023/index.md
@@ -27,3 +27,4 @@
|11|09.05.2024|[Задачи](./week11/) \|\| [Решения](https://github.com/Syndamia/oop-2023-solutions/tree/main/week11) \|\| [GitHub classroom](https://classroom.github.com/a/oYQehcnN) **Това упражнение е от 11:15 до 13:15**|
|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/week12) --> \|\| [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)|
diff --git a/src/teaching/oop-2023/week14/index.md b/src/teaching/oop-2023/week14/index.md
new file mode 100644
index 0000000..917c11b
--- /dev/null
+++ b/src/teaching/oop-2023/week14/index.md
@@ -0,0 +1,73 @@
+# Задачи - ООП, Седмица 14, 23.05.2024
+
+GitHub classroom: [classroom.github.com/a/K0XomKEP](https://classroom.github.com/a/K0XomKEP)
+
+## Задача
+
+В тази задача се оставя голямо количество свобода на имплементация, за всяко нещо сами преценете типове, помощни класове/член функции, оператори и так. нат.
+Както винаги, реализирайте голяма петица където е нужно.
+
+Препоръчително е първо да изчетете цялото условие и след това да пишете код.
+
+Реализирайте система като СУСИ.
+Преди да стигнем до потребителите, ще се нуждаем от някои други компоненти.
+
+Реализирайте предмет, като в един предмет се пазят:
+
+- име
+- тип (задължителен/избираем)
+- брой ECTS кредити, които носи
+- код, комбинация от главна буква и 3-цифрено число
+
+Реализирайте семестър, като в един семестър се пазят:
+
+- учебната година
+- тип (зимен/летен)
+- учебния план (низ във формата "СПЕЦИАЛННОСТ(УЧЕБЕН КУРС)")
+- предмети; разбира се един предмет може да се споделя от няколко семестъра
+
+Реализирайте специалност, която пази:
+
+- свое име
+- катедра към която е свързана
+- всички семестри, в които е (била) активна
+- предмети, съответстващи на всеки тип семестър
+
+и имплементира метод:
+
+- `NewSemester`, който приема учебна година и тип, и връща нов обект от семестър с попълнени данни
+
+Имаме потребители, като всеки си има роля, определяща неговите способности в системата.
+Ролята може да бъде студент, преподавател или администратор, като при конкретизиране в условието на някои от тях трябва да се извършат съответните проверки.
+Ваш избор е какво да бъде ролята.
+
+За един потребител със сигурност се пазят:
+
+- име
+- факултетен номер (от модерния стил)
+- потребителско име, което се определя като първата буква от първото име, конкатенирана с фамилията.
+ Ако съществува потребител с такова потребителско име, тогава добавяте букви от бащиното име, и накрая в краен случай, от първото име.
+- парола
+- година на учебния план
+- име на сегашна специалност
+
+<br>
+
+- данни за контакт, като една данна съдържа тип и описание (произволни низове)
+
+<br>
+
+- семестри, в които е (бил) включен
+- изпити, които са комбинация от предмети, преподаватели и оценки (която е възможно да не е въведена)
+
+Реализирайте мениджър на факултета, който съхранява, създава, обновява и премахва всички потребители и специалности.
+Имплементирайте съответни член-функции, които да правят тези действия.
+
+Имплементирйате и методи, приемащи потребителско име, които:
+
+- за един потребител изкарва всички негови лични данни, заедно с кратко описание на семестрите в които е включен
+- за един студент изкарва всички изпити, заедно със семестрите към които са свързани и сума на всички успешно получени кредити за дадения семестър (кредитите се броят само когато има оценка, която не е двойка)
+- един преподавател може да създаде нов предмет
+- един администратор може да създаде нов потребител, специалност, семестър, както и да свързва предмети със семестри и специалности
+
+Реализирайте конзолен интерфейс.