diff options
1 files changed, 143 insertions, 143 deletions
| -rw-r--r-- | src/teaching/oop-2025/week03/index.du | 286 |
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 |