From d916a169ac46c5075beb382c1020b5bdca3a211c Mon Sep 17 00:00:00 2001 From: Javid Baghirov Date: Sat, 15 Jun 2024 22:13:00 +0200 Subject: [PATCH 1/3] First Commit --- .idea/.gitignore | 3 ++ .idea/misc.xml | 6 +++ .idea/modules.xml | 8 ++++ .idea/vcs.xml | 6 +++ dinner-constructor.iml | 11 +++++ .../practicum/dinner/DinnerConstructor.class | Bin 0 -> 2958 bytes .../ru/practicum/dinner/Main.class | Bin 0 -> 3634 bytes .../practicum/dinner/DinnerConstructor.java | 43 ++++++++++++++++++ src/ru/practicum/dinner/Main.java | 15 ++++-- 9 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 dinner-constructor.iml create mode 100644 out/production/dinner-constructor/ru/practicum/dinner/DinnerConstructor.class create mode 100644 out/production/dinner-constructor/ru/practicum/dinner/Main.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..4444b22 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..40e0791 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/dinner-constructor.iml b/dinner-constructor.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/dinner-constructor.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/dinner-constructor/ru/practicum/dinner/DinnerConstructor.class b/out/production/dinner-constructor/ru/practicum/dinner/DinnerConstructor.class new file mode 100644 index 0000000000000000000000000000000000000000..447cc5af6eaa14ea31cc5c40790e7db17d13b840 GIT binary patch literal 2958 zcma)8TT>KA6#jZy7tRi5zvTYyd-8=Mi|+h+04uu(OkU8 zJeY^1tcs~hrOFpy@}NfWRxv*3Y4|y@V$9bw11w=GHhP+Ni#=n~=;V$VQtwQX&z$8g*@ z8c`u5U#j9&ye3dnD7u;BTL&H8WZoNF0<01;(sL!Pb43zzxr!v3$l0(?sOBuD&D}GWNwC`DHQ=_M05J|Q%r%2e^^?)t>PW57l@j^xNZu&lqCflrxwi@ z_q(=X4#!y@ohs7UBoNDv=-JWzV+H*`IR>ifR_54eX7c^GIIH%EgAW#5gEA@A4or$GMvZIgI)!FD)wOS?5M{aSI^Uh zRU}+}u+D~++RJ2I#;I%hbS*d0J{A4gFVL9RMs-$pR&x&;?ucLGn(4BzXD$C!h9z|q zisBf+K?NVFIE2GfB|F<86D&ygIrD#b8z8s+#;~cmMVs{O4ZM_Y)lG99mncndjxuUp z>8><+?Y4%9yr9Q0^}b?$P`CGMgE>lSd#tRM8_;Y+&O>3;9Wltjnx26IH`(CaDv$ zSvIV)DN zr*m}31B*L$n`OCilVO2?Dl-O023^qcqCdyu4rP#p`Z@MRod;cEqF z<(5Auu*yF({em;hlh&x73hFdC1$MIcS@xK~kEN9yDh9#sV%y5;&Z-{E8Z8z|+soX7 zpJgZuuZ;SUk_{5{@2OHQ4YFIy<@(tlxWsBkw&m`e<~X{e;3C`hoSe#qs^GG~vKOne zEeCm_iAR5gM`eUR-VGpd#Gf7Ioc){QC}q5W@cA)kAEJUIU}@Vuh_**i4&6g+9B~d8 za#%Z##kYNcPx!2*F`)7}kI?h6gwJEX#D~DA&^QwqL^gyUrfvmgO>K7(U;7A+#7sSE%srMZu1CY=G;V=Z}LnNSj#KMe781)Y@) zzqPX}QS|`r0@ra&j@}Y@f(@NYTSA$@yVubvBavg7Z)bI)dIFn&LQ|re^2KttWdhqL zuuB@n5|xRVq~s{gWZ#f6B8lz~2!<)=WwBiD9E|;+mSE>I4uNra@kCKW}A{gW|MyqC= z@aO9}mTW6Tbk~MY(d6<4VT$?8F8Z62r!PiirUW8~@@fk-Iuqkb$et_%nOMvDO zEzozS^Q$%ZI4K<=BG=R1!R@0Ua%LpU8v$#8JVqZ1X zn8s8So3?11w&@#f`UMbiD~kQxPqSb98~Ou!^}4FPpEC`D?Y^JqJm>uV z>BB_;NAQ<0O5h8^uOonU8pv$0_X$Yo0uNo>n>B3NGZapG8YK7I(@swpd zy{4TJC!g1`6T38oZ1ZiW$FfZgFVxk0CKU4w$g)RhVGrtpsMpbe#?@$)04Cvv_ zFfA}S-61q<(Aq?=RmT_5#^jk7Ge$g3%y~owsg2g33!$AFdqddIp^#yB?ghquwYi`Jt?sB^oH=NhKPGR zcf*}=@8_<#+1xws{fPU}U34G0)9zz;E;rE;Mi-6-aZJZ?yhdV|5>;S{#49@ElF33; zdD`j+Lg?1e&=zTqxF6H{46V@98Q9RGM3%Q%_oVysp8yXJn75Puyd+vP- zc>!Kg!qc9n7wC+e<>%?#yBxF2HbUstu%TTn5Mb^a_2xo2p`q5jO?UU{#e+-CS@+4Z zo;%$U!dEmjJ|`wF+y~SYUb2P3PLrY_`gNSbX)?hqNhY{+iZHRZq=cI@8Vu)@i6FkURNAU#yqZcGmwT+V6UHEXvVCJZhQVDO zw9>~C<0U|hN`9Rq{O@P>(TW{AsvLHBO|d^thD1L5dvU`>SNwS_AMQ6 zgHZgE$me^WciO0)_Z=PI#rLRt$%tpn6X!MTE-dc6WRZqh!6WSlI(#vdY*}&se)v7^l}+H%g1{%Or-()G1>qE=YTlF(W=;q%4`|7yZtt zMe8+1PcS*+qO_P$M_pCjn``~m4-j!InMfG+u((ic79IywH&P>XQCUP=Ls`FL#KwA! z@q9d?VfKYnm&X~edhIh3d=1dUP;$9PKbL>@Fk1mVabERyI@8!nOP5S>t`05cmuIOi zwpL25YBekLoR6evtsPnmu#*fO_Lf)2m6t8LSjbRkR7`~XlbKY^JZ?#r^T$+66MbS(u1E2|VGk43}_3!%ui z$eZXg;_-g&W^$u<%QdMhZlu#Dx9$}0a%(UZ3pI#8Yk2AZi}JGJ;X*Ah3?wrlC5UzWeTTDFj+(4CJb*UCml90yS3b+{5BaNm0=R~EIV;6=yvG$PYvu64 z&$Y<~1kXM|={(m+nXx(s#&F(LGKyK%_gHK%+Uz|cXi-S|} z&rCfNfIfw%g>(p#Fv_rn2U-m_k)lc>*^C>!soum^e1vLz%y@oEq6BvpZP&uVkMO=? zV3Lv_aQ(;XTj`dkXbNHv|FyER@b*C9UtAAUV~N^s6&p}Hi$fKM=W#^F*Yo3-^J5Q3 zpgbe;@8Wq6O6>r-Zg;x}Y^a(UV_i*Q5ZJifY; z(;Au}M>Jl~f@mNQjVy>}>_*En-i>s5lX$@|rMRV#hvnLt&-f`i7c1Aq+dv+}*Ot7V zi+brkBVWJ4)ddW)E(``EA@(xCLw8Zx$niX7)Y{aue=^h>hHCXS&m+;{ulD~H7d70$ z4tcwz;cpo12+(A8Ad7E5#P%}Hu{@{^SJr0(#mluR}JPkF}=Vvr?M^&f0dZ>fJXBR<@vKnZ?< ZUvdml_1Anp!5=sa^X-rL6Fx)re*yKTd-ebT literal 0 HcmV?d00001 diff --git a/src/ru/practicum/dinner/DinnerConstructor.java b/src/ru/practicum/dinner/DinnerConstructor.java index 29da0b5..2558b9c 100644 --- a/src/ru/practicum/dinner/DinnerConstructor.java +++ b/src/ru/practicum/dinner/DinnerConstructor.java @@ -1,5 +1,48 @@ package ru.practicum.dinner; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Random; + public class DinnerConstructor { + private HashMap> dishes; + private Random random; + + public DinnerConstructor() { + dishes = new HashMap<>(); + random = new Random(); + } + + // Method to add a new dish + public void addDish(String type, String name) { + dishes.putIfAbsent(type, new ArrayList<>()); + dishes.get(type).add(name); + } + + // Method to check if a dish type exists + public boolean checkType(String type) { + return dishes.containsKey(type); + } + + // Method to generate dish combinations + public ArrayList> generateCombinations(int numberOfCombos, ArrayList types) { + ArrayList> combinations = new ArrayList<>(); + for (int i = 0; i < numberOfCombos; i++) { + ArrayList combo = new ArrayList<>(); + for (String type : types) { + if (checkType(type)) { + ArrayList dishesOfType = dishes.get(type); + if (!dishesOfType.isEmpty()) { + String dish = dishesOfType.get(random.nextInt(dishesOfType.size())); + combo.add(dish); + } + } else { + System.out.println("Тип блюда " + type + " не существует. Введите другой тип."); + } + } + combinations.add(combo); + } + return combinations; + } } diff --git a/src/ru/practicum/dinner/Main.java b/src/ru/practicum/dinner/Main.java index f68de29..768a494 100644 --- a/src/ru/practicum/dinner/Main.java +++ b/src/ru/practicum/dinner/Main.java @@ -1,5 +1,6 @@ package ru.practicum.dinner; +import java.util.ArrayList; import java.util.Scanner; public class Main { @@ -41,7 +42,7 @@ private static void addNewDish() { System.out.println("Введите название блюда:"); String dishName = scanner.nextLine(); - // добавьте новое блюдо + dc.addDish(dishType, dishName); } private static void generateDishCombo() { @@ -49,17 +50,21 @@ private static void generateDishCombo() { System.out.println("Введите количество наборов, которые нужно сгенерировать:"); int numberOfCombos = scanner.nextInt(); - scanner.nextLine(); + scanner.nextLine(); // Consume newline System.out.println("Вводите типы блюда, разделяя символом переноса строки (enter). Для завершения ввода введите пустую строку"); + ArrayList dishTypes = new ArrayList<>(); String nextItem = scanner.nextLine(); - //реализуйте ввод типов блюд while (!nextItem.isEmpty()) { - + dishTypes.add(nextItem); + nextItem = scanner.nextLine(); } - // сгенерируйте комбинации блюд и выведите на экран + ArrayList> combinations = dc.generateCombinations(numberOfCombos, dishTypes); + for (ArrayList combo : combinations) { + System.out.println("Комбинация: " + combo); + } } } From 270f7dc8ce34b934bab3bed8224906c097d27a9a Mon Sep 17 00:00:00 2001 From: Javid Baghirov Date: Sun, 21 Jul 2024 18:51:52 +0200 Subject: [PATCH 2/3] Fix negative input and adding default to switch command --- .../ru/practicum/dinner/Main.class | Bin 3634 -> 3798 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/out/production/dinner-constructor/ru/practicum/dinner/Main.class b/out/production/dinner-constructor/ru/practicum/dinner/Main.class index 4716d29e04deb96f4a7f189d4462824967f52d73..dddb98bcf952c01782eff919ff1f72f219527458 100644 GIT binary patch delta 1278 zcmYLHTU1n482b>(4m3ilHAf*qR1*WSxbgXW+rMk#~D%t27+-ytR}ox zDjK_+C`nmO_hgb0rL3nOTCLTY)mlCDRPXiPYK8Re1LB-HXaARPfB*mednZ@?<}-e} zb>k+0P564!h&Zw`nh0+XM#A#EBOnJIMVbfA@=r&NXq9(q8*?5N$av6S z<+n!Dr_#r*o7Pni9+UgDQt`MP(N^nEnAm}K`J=W*?2@zEL*hx<;OvV(ZQ>bJ2)H91 zgVCl))Pp?&JFH72NLg2`ne z1hn$|cN++y%S1O;(GP~h2Hc34=tZBjTuq)3`b`WVDvR{e+8ADNW6;DQMU#CX7z@@M zjCOX{G(|i5gVEl8a_XSFffBjLTcW%1r9dIgLb=_j4xHfW)j;q8Tr00ZOww@R zB)_^H)bT29a~^=#@H#y&PT@2o+$?<1;ACt<{%oANCwm&}5-=x|Xvp4>!luOB5ObQ% zw;HDGTT&Gthu`MRWt}1lI)f3LeFA53j_5b|=E2Cjg-SQd_!mo;8Y^5b{KG*S+@cy& zeK(On{fbnzEv%;2z{1+Hu(okknuOg$E?jXs_rZe_WT6zxc#M9OlXvYRZ!a5G%w>vi ztIe}Kh2m!AZd-I)k}y_Qq_F+Y#0p3ORFJ$9nW&B7elPBXfCL7I~P>!zFqdI^#$X|QK@I|gc5UqC!tzwSBW4KGYIXvh7R_q!mX7l zJU52BE4Utr6J!SybAM4n0VVXbRi*HJy))l=9R~%@qgYu(0zV*B?;>ZuYZ@=#z!8Al ziMijEWT!pQ0J3Su(fg6vlt=&g{(YbSQ*s>lSFb#a?LH3UVz40u>Tk3Q`3ssH{ki%GH%i z6}f6(l>&knE(`dn)hvh!(HOq?snx^}@)wZs2M`il&pRzJGrQ-U=RM~+=Q%U~OzNNL z{W)~!F3`Y_eO@Z0{|d$Ru~3tK6iTS&y24ug{0c?>jM7BuK+oWb!R~>(13yQ2RUfb_ zRExfBz3ja1vzj&fzBOC5>hbnMwNAI#9R+XtyhV+|O||byH>T1NHt1>L-|cr41v(xr zsPjl-c~r8=r;T>W+_G!wj*j$Rg;h0Wy*Ym0XEW0!-q_aW;j-0d8{73_r!kTw<+GCx z-Q!f`b+OAO?X#P9{f85ebn&6j9`@>oPMNdc=Ku%wbM71`6Lh6#<7oC*< zoyYh5;BwiVT+vsff7@9_xgLy`J1#dACE}LodtPnRVcF74D7hhAeGAnmPKYD&?*yR3 zQStqe1iJY|q9~toOb{tn(vYLP8E5#smo&bWrq#174X!Oryt}cGKQy6xZ|Yx zjN<`gFDE!D_^IG5S~SE|mr8lmm@(eOaQKnno>Z7w3}d6zn=9VW{PBx&G#I;V)HaRU zX0b+w3fdPEHU(rNlrfIUyugc;QZBr6pYraMSq*cg;aeH-Ovq8T+=Q#1hRywW)ipU@ zd$y!vp@1qPOkph56j4J72`Z=!7H0&Hm6oT;9GAor+1;5yyGQ+#?rODkH#FU*-P%zV zZ#-$czP=wbOshG4ThL!guDiuXna02?rsjC}JOwpk-;Ji`~_7LlR{Ewr_?@}*!(Xjbu+ zEF~la)A(92i?fnZDmEykS1L#HdnJD)>ztgL&nAXF#4P2Kl+UK{Kk@^w>#@8Pi}R8Y Z;sW15vB*$-E5D0e71$H+8rQi=?0 Date: Sun, 21 Jul 2024 19:04:49 +0200 Subject: [PATCH 3/3] Fix negative input and adding default to switch command. --- src/ru/practicum/dinner/Main.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ru/practicum/dinner/Main.java b/src/ru/practicum/dinner/Main.java index 768a494..1480d5b 100644 --- a/src/ru/practicum/dinner/Main.java +++ b/src/ru/practicum/dinner/Main.java @@ -25,6 +25,9 @@ public static void main(String[] args) { break; case "3": return; + default: + System.out.println("Invalid command"); + break; } } } @@ -50,8 +53,13 @@ private static void generateDishCombo() { System.out.println("Введите количество наборов, которые нужно сгенерировать:"); int numberOfCombos = scanner.nextInt(); + while (numberOfCombos <= 0) { + System.out.println("Пожалуйста, введите положительное целое число."); + numberOfCombos = scanner.nextInt(); + } scanner.nextLine(); // Consume newline + System.out.println("Вводите типы блюда, разделяя символом переноса строки (enter). Для завершения ввода введите пустую строку"); ArrayList dishTypes = new ArrayList<>(); String nextItem = scanner.nextLine();