Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / oop-2025 / week03 / index.du
diff options
context:
space:
mode:
1 files changed, 143 insertions, 143 deletions
-rw-r--r--src/teaching/oop-2025/week03/index.du286
diff --git a/src/teaching/oop-2025/week03/index.du b/src/teaching/oop-2025/week03/index.du
index 2686623..7c0006b 100644
--- a/src/teaching/oop-2025/week03/index.du
+++ b/src/teaching/oop-2025/week03/index.du
@@ -1,15 +1,15 @@
-# Задачи - ООП, Седмица 3, 04.03.2026
+'def title Задачи - ООП, Седмица 3, 04.03.2026
+'def desc Условията на задачите за упражнение.
-'define expected-reading 4 min
-'define created 03 March 2026
-'define edited 03 March 2026
-[$pagenav]
+# {title}
+
+{pagenav 4 min;03 March 2026;03 March 2026}
## За решаване
### Задача 1
-.solution-link [url https://github.com/Syndamia/oop-2025-solutions/tree/main/Week03/Exercise01 Решение]
+.solution-link {url Решение;https://github.com/Syndamia/oop-2025-solutions/tree/main/Week03/Exercise01}
Реализирайте система за онлайн магазин.
Трябва да имате потребители, администратори и продукти.
@@ -17,7 +17,7 @@
Всеки потребител (и администратор) си има потребителско име и парола.
Чрез вход и изход, трябва да може потребител да се регистрира, да влезе в акаунта си и да "купи" продукти.
-Администраторски акаунти, [=допълнително=], могат да променят дали акаунти са администраторски и да добавят продукти.
+Администраторски акаунти, {b допълнително}, могат да променят дали акаунти са администраторски и да добавят продукти.
Всеки продукт си има име, бройка и цена.
Имената и пароли на потребители, както и имена на продукти не съдържат шпации.
@@ -27,115 +27,115 @@
От входа първо се получава буква, която обозначава команда/действие в платформата.
Когато няма "логнат" потребител, имаме следните команди налични:
.bulleted
-- [`l`] - влизане в потребителски акаунт, поискват се потребителско име и парола.
+- {` l} - влизане в потребителски акаунт, поискват се потребителско име и парола.
Ако не съвпадат на някой регистриран потребител, изкарва се съответното съобщение и процеса се анулира
-- [`r`] - регистриране на потребител, поискват се потребителско име и парола.
+- {` r} - регистриране на потребител, поискват се потребителско име и парола.
Ако потребителско имеа се повтаря с този на вече регистриран потребител, изкарва се съответното съобщение
-- [`p`] - изкарване на всички продукти и техните цени.
+- {` p} - изкарване на всички продукти и техните цени.
Ако няма въведени продукти, тогава да се изкара съответното съобщение.
Когато потребител влезе в акаунта си, има достъп към следните команди:
.bulleted
-- [`p`] - изкарване на всички продукти и техните цени.
+- {` p} - изкарване на всички продукти и техните цени.
Ако няма въведени продукти, тогава да се изкара съответното съобщение.
-- [`e`] - излизане от акаунта си
-- [`b`] - купуване на продукти, първо потребителя казва колко (различни) продукта ще си купи и след това въвежда за всеки продукт, неговото име и бройка.
+- {` e} - излизане от акаунта си
+- {` b} - купуване на продукти, първо потребителя казва колко (различни) продукта ще си купи и след това въвежда за всеки продукт, неговото име и бройка.
Ако името е грешно или няма достатъчно количество, изкарва се съответното съобщение и процеса се анулира.
При успешно купуване се изкарва общата цена на продуктите и тяхната обща бройка е намалена.
Когато администратор влезе в акаунта си, той има всички команди които и нормалния потребител има, заедно с:
.bulleted
-- [`a`] - променя дали потребител е администратор (прави администратор на нормален или нормален на администратор)
-- [`s`] - въвежда име на продукт, бройка и цена.
+- {` a} - променя дали потребител е администратор (прави администратор на нормален или нормален на администратор)
+- {` s} - въвежда име на продукт, бройка и цена.
Ако продукта не съществува, тогава го създава.
Ако съществува (със същото име), тогава го обновява: бройката се добавя към текущата и ценята се заменя.
-[=Смесен вход/изход:=] [*(удебеления текст е въведен от потребителя, останалото е изкарано от програмата)*]
+{b Смесен вход/изход:} {i (удебеления текст е въведен от потребителя, останалото е изкарано от програмата)}
```
-[=r=]
-Username: [=gg=]
-Password: [=ez=]
+{b r}
+Username: {b gg}
+Password: {b ez}
Successfully registered user 'gg'!
-[=l=]
-Username: [=gogo=]
+{b l}
+Username: {b gogo}
User 'gogo' does not exist!
-[=l=]
-Username: [=gg=]
-Password: [=pie=]
+{b l}
+Username: {b gg}
+Password: {b pie}
Incorrect password!
-[=l=]
-Username: [=gg=]
-Password: [=ez=]
+{b l}
+Username: {b gg}
+Password: {b ez}
Successful login!
-[=p=]
+{b p}
No products!
-[=s=]
+{b s}
No permissions!
-[=e=]
+{b e}
Logged out!
-[=l=]
-Username: [=admin=]
-Password: [=admin=]
+{b l}
+Username: {b admin}
+Password: {b admin}
Successful login!
-[=s=]
-Name: [=Apple=]
-Quantity: [=50=]
-Price: [=0.5=]
-[=s=]
-Name: [=Bread=]
-Quantity: [=20=]
-Price: [=1.15=]
-[=s=]
-Name: [=Apple=]
-Quantity: [=10=]
-Price: [=0.5=]
-[=s=]
-Name: [=Bread=]
-Quantity: [=0=]
-Price: [=2=]
-[=p=]
+{b s}
+Name: {b Apple}
+Quantity: {b 50}
+Price: {b 0.5}
+{b s}
+Name: {b Bread}
+Quantity: {b 20}
+Price: {b 1.15}
+{b s}
+Name: {b Apple}
+Quantity: {b 10}
+Price: {b 0.5}
+{b s}
+Name: {b Bread}
+Quantity: {b 0}
+Price: {b 2}
+{b p}
Apple 60 0.5
Bread 20 2
-[=b=]
-Number of products: [=2=]
-Name: [=Apple=]
-Quantity: [=100=]
+{b b}
+Number of products: {b 2}
+Name: {b Apple}
+Quantity: {b 100}
Invalid quantity!
-[=b=]
-Number of products: [=3=]
+{b b}
+Number of products: {b 3}
Invalid number of products!
-[=b=]
-Number of products: [=2=]
-Name: [=Apple=]
-Quantity: [=5=]
-Name: [=Bread=]
-Quantity: [=1=]
+{b b}
+Number of products: {b 2}
+Name: {b Apple}
+Quantity: {b 5}
+Name: {b Bread}
+Quantity: {b 1}
Purchase successful! Total cost: 4.5
-[=p=]
+{b p}
Apple 55 0.5
Bread 19 2
-[=a=]
-Username: [=gogo=]
+{b a}
+Username: {b gogo}
User 'gogo' does not exist!
-[=a=]
-Username: [=gg=]
+{b a}
+Username: {b gg}
Made user 'gg' into an administrator.
-[=e=]
+{b e}
Logged out!
-[=l=]
-Username: [=gg=]
-Password: [=ez=]
+{b l}
+Username: {b gg}
+Password: {b ez}
Successful login!
-[=s=]
-Name: [=Apple=]
-Quantity: [=0=]
-Price: [=0.75=]
-[=b=]
-Number of products: [=1=]
-Name: [=Apple=]
-Quantity: [=3=]
+{b s}
+Name: {b Apple}
+Quantity: {b 0}
+Price: {b 0.75}
+{b b}
+Number of products: {b 1}
+Name: {b Apple}
+Quantity: {b 3}
Purchase successful! Total cost: 2.25
-[=p=]
+{b p}
Apple 52 0.75
Bread 19 2
@@ -154,102 +154,102 @@ Bread 19 2
От входа първо се получава буква, която обозначава команда/действие в платформата.
Когато няма "логнат" потребител, имаме следните команди налични:
.bulleted
-- [`l`] - влизане в потребителски акаунт, поискват се потребителско име и парола.
+- {` l} - влизане в потребителски акаунт, поискват се потребителско име и парола.
Ако не съвпадат на някой регистриран потребител, изкарва се съответното съобщение и процеса се анулира
-- [`r`] - регистриране на потребител, поискват се потребителско име и парола.
+- {` r} - регистриране на потребител, поискват се потребителско име и парола.
Ако потребителско имеа се повтаря с този на вече регистриран потребител, изкарва се съответното съобщение
Когато потребител влезе в акаунта си, има достъп към следните команди:
.bulleted
-- [`e`] - излизане от акаунта
-- [`u`] - изреждане на имената на всички регистрирани потребители (включително себе си)
-- [`m`] - изпращане на съобщение, поискват се име на потребител и след това самото съобщение
-- [`i`] - изкарване на съобщения, изпратени към текущо влезли потребител.
+- {` e} - излизане от акаунта
+- {` u} - изреждане на имената на всички регистрирани потребители (включително себе си)
+- {` m} - изпращане на съобщение, поискват се име на потребител и след това самото съобщение
+- {` i} - изкарване на съобщения, изпратени към текущо влезли потребител.
Поисква се бройка и след това се изкарват последните толкова на брой съобщения, които са изпратени към нас.
Ако се поискат повече съобщения отколкото има, тогава се изкарват всичките.
-- [`h`] - изкарва се разговора между нас и даден потребител.
+- {` h} - изкарва се разговора между нас и даден потребител.
Поисква се име на потребител и след това се изкарват съобщенията които той е изпратил и които ние сме изпратили, в коректен ред.
-[=Смесен вход/изход:=] [*(удебеления текст е въведен от потребителя, останалото е изкарано от програмата)*]
+{b Смесен вход/изход:} {i (удебеления текст е въведен от потребителя, останалото е изкарано от програмата)}
```
-[=r=]
-Username: [=barry=]
-Password: [=1234=]
+{b r}
+Username: {b barry}
+Password: {b 1234}
Successfully registered user 'barry'!
-[=r=]
-Username: [=map=]
-Password: [=1234=]
+{b r}
+Username: {b map}
+Password: {b 1234}
Successfully registered user 'map'!
-[=r=]
-Username: [=joe=]
-Password: [=1234=]
+{b r}
+Username: {b joe}
+Password: {b 1234}
Successfully registered user 'joe'!
-[=l=]
-Username: [=map=]
-Password: [=1234=]
+{b l}
+Username: {b map}
+Password: {b 1234}
Successful login!
-[=u=]
+{b u}
barry
map
joe
-[=m=]
-Username: [=dd=]
+{b m}
+Username: {b dd}
User 'dd' does not exist!
-[=m=]
-Username: [=barry=]
-Message: [=Hello barry!=]
-[=m=]
-Username: [=barry=]
-Message: [=How are you?=]
-[=e=]
+{b m}
+Username: {b barry}
+Message: {b Hello barry!}
+{b m}
+Username: {b barry}
+Message: {b How are you?}
+{b e}
Logged out!
-[=l=]
-Username: [=joe=]
-Password: [=1234=]
+{b l}
+Username: {b joe}
+Password: {b 1234}
Successful login!
-[=m=]
-Username: [=barry=]
-Message: [=Are you there?=]
-[=e=]
+{b m}
+Username: {b barry}
+Message: {b Are you there?}
+{b e}
Logged out!
-[=l=]
-Username: [=barry=]
-Password: [=1234=]
+{b l}
+Username: {b barry}
+Password: {b 1234}
Successful login!
-[=m=]
-Username: [=map=]
-Message: [=I'm fine=]
-[=i=]
-Number of messages: [=10=]
+{b m}
+Username: {b map}
+Message: {b I'm fine}
+{b i}
+Number of messages: {b 10}
map: Hello barry!
map: How are you?
joe: Are you there?
-[=e=]
+{b e}
Logged out!
-[=l=]
-Username: [=map=]
-Password: [=1234=]
+{b l}
+Username: {b map}
+Password: {b 1234}
Successful login!
-[=m=]
-Username: [=barry=]
-Message: [=Good to hear!=]
-[=e=]
+{b m}
+Username: {b barry}
+Message: {b Good to hear!}
+{b e}
Logged out!
-[=l=]
-Username: [=barry=]
-Password: [=1234=]
+{b l}
+Username: {b barry}
+Password: {b 1234}
Successful login!
-[=h=]
-Username: [=map=]
+{b h}
+Username: {b map}
map: Hello barry!
map: How are you?
barry: I'm fine
map: Good to hear!
-[=m=]
-Username: [=barry=]
-Message: [=Note to self: do not talk to map=]
-[=i=]
-Number of messages: [=3=]
+{b m}
+Username: {b barry}
+Message: {b Note to self: do not talk to map}
+{b i}
+Number of messages: {b 3}
joe: Are you there?
map: Good to hear!
barry: Note to self: do not talk to map