|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Всем привет! Есть задача: 1. Животные - кошки, мыши и собаки живут в клетках зоопарка. Т.е. создана коллекция Животные (список), в которой случайным образом задано 10 разных животных из классов: кошки, мыши и собаки. 2. Еда - молоко, мясо, сыр и сухари. Это просто перечисление. Но создана коллекция Еда (список), в которой случайным образом помещены 40 экземпляров перечисления еда. 3. Рацион питания - кошка может есть молоко или мясо, собака - мясо или сухари, а мышь - сухари или сыр. Для простоты задачи - предполагается, что животные едят что-то одно и требуется единица еды, чтобы накормить животное. Вопросы: 1. Как накормить животных - т.е. как отразить то средствами C#, что еда из коллекции Еда переместилась (уменьшилась) в желудки животных, если известно, ЧТО едят животные? 2. Как составить отчёт о наличии еды (т.е. состоянии "до") и результатах кормления - сколько животных не-/накормлено и сколько еды осталось (т.е. состояние "после"). Заранее благодарю за Ваши время и внимание!!! Если у Вас будет время написать код, то это будет просто супер!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 13:18 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222 Вопросы: 1. Как накормить животных - т.е. как отразить то средствами C#, что еда из коллекции Еда переместилась (уменьшилась) в желудки животных, если известно, ЧТО едят животные?В коллекцию вести не только что за еда, но и признак передана животному или нет Marina2222. Как составить отчёт о наличии еды (т.е. состоянии "до") и результатах кормления - сколько животных не-/накормлено и сколько еды осталось (т.е. состояние "после").Пробежать по коллекции, посмотреть признак и изменять счётчик Marina222...Если у Вас будет время написать код, то это будет просто супер!!! Сколько денег готовы заплатить за эту работу? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 13:29 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222, наверное животных наследовать от базового еды. создать сласс еда в конструкторе предавать список еды инкапсулировать дистинговый список наличия еды от переданного ( легче работать) Ну и функцию кормления в параметре передаем животное что там будет вам решать, можете ловить исключение снаружи и добавлять в список исключений ( еда этого типа кончилась) ну и естественно ( еда для животного кончилась тварь осталась не накомленной) после кормления или в процессе смотреть результаты этих списков. ну можете добавить функцию отчета, и пополнения еды.. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 14:08 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Большое спасибо всем отозвавшимся!!! К сожалению, я хожу на курсы и не располагаю средствами, чтобы оплатить написание программы :( Вот мои классы Код: c# 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.
Если есть, для простоты Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
то вопрос : как пробежать по коллекции, посмотреть признак и изменять счётчик? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 14:21 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222, если Вы ходите на курсы, то должны задавать вопросы и разбирать не понятные моменты с преподавателем, а не просить решить домашнее задание на форуме. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 18:34 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
skyANA, я учусь заочно. Мне дали список литературы и задание, которое надо решить. Всё! А ещё я беженка из ЮВ Украины. Так что как вы думаете, сколько у меня денег на то, чтобы нанимать репетиторов и учиться и платить преподавателям за консультации. А Вам, skyANA, желаю много счастья! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 18:44 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Марина, дополни свою прогу чем-то таким. Код: c# 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.
ну и дальше через класс Zoo работаем ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 19:27 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
02.09.2014 19:44, Marina222 пишет: > сколько у меня денег на то, чтобы нанимать репетиторов Не поверишь, но учиться без репетиторов вполне реально ;). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 19:53 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222, Marina222беженка из ЮВ Украины дак вроде каждому по собщению Российской прессы на каждого выделили по 1 500 000 руб? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 20:11 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222, а где учитесь? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 20:29 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
PallarisМарина, дополни свою прогу чем-то таким. Код: c# 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.
ну и дальше через класс Zoo работаем Садись, два... Отгадай почему... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 20:31 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Alex KuznetsovСадись, два... Отгадай почему... Отгадал уже? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 21:11 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
netivanMarina222, а где учитесь?Пособия ещё не оформляла. И уж конечно же не столько сколько в России. Туда выехать не получилось. Я нахожусь на Украине. Здесь и учусь в лесу. Здесь была раньше турбаза, а теперь беженцы. Так что даже компьютер не всегда свободный, где мне разрешили установить Visual Studio. Так что пользуюсь онлайн-компиляторами... если к интернету доступ есть. И вот skyANA меня учил жизни учиться skyANAMarina222, если Вы ходите на курсы, то должны задавать вопросы и разбирать не понятные моменты с преподавателем, а не просить решить домашнее задание на форуме.Большое ему спасибо за такой полезный совет! Как раз то, чего мне не хватало... Наверно потом он пошёл домой, принял душ, уселся в уютное кресло в чистом мягком халате и решил посмотреть новый фильм в кругу семьи... и совсем без "Градов"... Да, skyANA, большое спасибо за твои бесценные слова мудрости! Буду помнить всегда! Удачи тебе! И всем говори, что ты человечище с "душевным" сердцем"! Остальным ребяткам - ОГРОМНОЕ Вам спасибо за ваши ценные комментарии!!! Я постараюсь обязательно посмотреть!!! Видела, что были дискуссии по предложенному коду - постараюсь найти ошибки :) Если у кого-то будут конструктивные комментарии - всегда буду рада посмотреть код!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2014, 21:15 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222И вот skyANA меня учил жизни учиться skyANAMarina222, если Вы ходите на курсы, то должны задавать вопросы и разбирать не понятные моменты с преподавателем, а не просить решить домашнее задание на форуме.Большое ему спасибо за такой полезный совет! Как раз то, чего мне не хватало... Наверно потом он пошёл домой, принял душ, уселся в уютное кресло в чистом мягком халате и решил посмотреть новый фильм в кругу семьи... и совсем без "Градов"... Да, skyANA, большое спасибо за твои бесценные слова мудрости! Буду помнить всегда! Удачи тебе! И всем говори, что ты человечище с "душевным" сердцем"! можно вопрос? каким образом skyANA должен был угадать авторЯ нахожусь на Украине. Здесь и учусь в лесу. Здесь была раньше турбаза, а теперь беженцы. Так что даже компьютер не всегда свободный, где мне разрешили установить Visual Studio.и прочие небылицы перипетии жизни, чтобы воздержаться от столь возмутительного и циничного совета, как обратиться к преподавателю? который, к слову, ОБЯЗАН помогать, используя тот же интернет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 01:04 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
PallarisОтгадал уже?Давай по пунктам: Код: c# 1. 2. 3. 4. 5. 6. 7.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
В условии задачи чётко не указано, что мы можем "пробегать" по коллекции еды, чтобы накормить животное, таким образом крутить цикл foreach каждый раз для поиска еды не совсем целесообразно. Нужно уточнение по условиям кормления. Я например, понял так, что мы можем взять первые десять видов еды из коллекции и ими попытаться "накормить" животных. Marina222, нужно уточнение по процессу "кормления"... PS. Pallaris, шутки надо адекватно воспринимать ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 08:01 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222, Скорее всего, задача на виртуальные методы... PS. Вообще, когда учишься, порой, важнее не текст задачи, а из какого раздела задчника ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 08:09 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Alex KuznetsovДавай по пунктам: Код: c# 1. 2. 3. 4. 5. 6. 7.
Ага Код: c# 1. 2. 3. 4. 5. 6. 7.
В условии задачи чётко не указано, что мы можем "пробегать" по коллекции еды, чтобы накормить животное, таким образом крутить цикл foreach каждый раз для поиска еды не совсем целесообразно. Ну тогда что-то типа Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Я например, понял так, что мы можем взять первые десять видов еды из коллекции и ими попытаться "накормить" животных. Такая вот зоопарковая коллективизация. PS. Pallaris, шутки надо адекватно воспринимать Оформляй шутки юмором, тогда я сразу! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 08:27 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
PallarisАга Код: c# 1. 2. 3. 4. 5. 6. 7.
Для того, чтобы DrunkenVisitor не сделал FeedAnimal нужно, чтобы FeedAnimal был private. Тогда и на null не нужно проверять, а только на IsAlive... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 08:37 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Alex KuznetsovДля того, чтобы DrunkenVisitor не сделал FeedAnimal нужно, чтобы FeedAnimal был private. Есть зоопарки, где в принципе кормить можно животных из спец-пакетов. Перекладывать реализацию кормежки на посетителя? Так на следующий день слона не досчитаешься. Alex KuznetsovТогда и на null не нужно проверять, а только на IsAlive... Проверка аргумента на null лишней не бывает - такое мое мнение. Завтра полезут NullReferenceException, когда из соседних зоопарков чужие руки полезут за продуктами. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 08:55 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Pallaris... Проверка аргумента на null лишней не бывает - такое мое мнение. Завтра полезут NullReferenceException, когда из соседних зоопарков чужие руки полезут за продуктами.Это конечно правильно, даже больше сказать - верно, потому что в оценке кода такой пункт имеется... Ну да ладно, пущай будет, уболтал красноречивый ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 09:03 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222, да я учу Вас учиться. По примерам из интернета Вы толком не освоити программирование за короткий срок курсов. Только в группе, только разбирая задачи с другими учениками и преподавателем, что ответит на вопросы и объяснит почему данное решение не работает, или не правильное, хоть и работает. А беженцам с ЮВ мы с женой собрали гуманитарную помощь и отнесли в ближайший пункт приёма. Вот такие мы недочеловечищи бездушные. Если объясните толком, что Вы там учите, и к какому разделу относится задача, то я готов Вам помочь и объяснить как правильно. Ещё раз: по кускам кода из инета толка не выйдет. Это моё мнение, каким бы циничным оно Вам не казалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 10:18 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
На скорую руку склепал: Код Код: c# 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. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 10:39 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Зато Visit! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 12:42 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Сначала офф-топ:Antonariyможно вопрос? каким образом skyANA должен был угадать авторЯ нахожусь на Украине. Здесь и учусь в лесу. Здесь была раньше турбаза, а теперь беженцы. Так что даже компьютер не всегда свободный, где мне разрешили установить Visual Studio.и прочие небылицы перипетии жизни, по поводу "небылиц"... Antonariy, не желаете подумайть о своей карме после обвинений во лжи... skyANAMarina222, да я учу Вас учиться. По примерам из интернета Вы толком не освоити программирование за короткий срок курсов. Только в группе, только разбирая задачи с другими учениками и преподавателем, что ответит на вопросы и объяснит почему данное решение не работает, или не правильное, хоть и работает. А беженцам с ЮВ мы с женой собрали гуманитарную помощь и отнесли в ближайший пункт приёма. Вот такие мы недочеловечищи бездушные. Если объясните толком, что Вы там учите, и к какому разделу относится задача, то я готов Вам помочь и объяснить как правильно. Ещё раз: по кускам кода из инета толка не выйдет. Это моё мнение, каким бы циничным оно Вам не казалось.Подобные задания со списками литературы раздают все крупные компании, по крайней мере, на Украине, по заявке через e-mail и связным объяснением желания заниматься. Естественно, что никаких преподавателей, тем более ОБЯЗАННЫХ что-то делать и meet-up групп для обсуждения заданий нет. Ценится умение работать с литературой и собственное развитие. Так что кроме форумов, "скорой" помощи мне брать не откуда. А если писать вопросы в компанию, то может это какой-то простой вопрос, который был плохо сформулирован... Тогда после нескольких писем на меня "забьют" и даже не станут смотреть задание. А решения задания, я не собираюсь тупо переписывать, потому что не смогу их объяснить. Поэтому делаю их рефакторинг - до того уровня, пока понятно мне. Также я упрощаю вопросы на форум, чтобы была одна задача, а не несколько. Например, я не указала в задании, что сделала рефлексию родительского класса Animal и список животных сам генерируется случайным образом с возможеностью дополнять новых животных. Чтобы потом подставить откорректированное решение, полученное на форуме в своё задание, потому что я хочу получить удочку, а не рыбу. Что касается циничности или нет Ваших заявлений, то если человек сам их считает циничными, значит он осознанно делаете мир более циничным и это скорее раньше, чем позже вернётся обраткой. Особенно на форуме. По поводу предложений помощи - я рада любой помощи. Особенно по существу задаваемого вопроса. Поэтому огромное спасибо всем ответившим и принявшим участие в обсуждении с примерами и комментариями, особенно Arm79, Pallaris, Alex Kuznetsov !!!! Очень благодарна Вам! Дай бог Вам здоровья и счастья! Честно скажу, что само решение пока несколько сложно для меня. Но я буду разбираться. Также у меня в функционале есть некоторые вопросы и я буду Вам очень благодарна, если Вы подскажете, в чём проблема: я сделала рефакторинг кода и почему-то без lambda у меня работает метод, а с lambda - не до конца могу сделать рефакторинг: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
а в этом не могу убрать FoodName Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 13:19 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Т-МироновЗато Visit! Большое спасибо и Вам, Т-Миронов! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 13:22 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
уточнение проблемы: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 13:38 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Где-то в степиMarina222, наверное животных наследовать от базового еды. создать сласс еда в конструкторе предавать список еды инкапсулировать дистинговый список наличия еды от переданного ( легче работать) Ну и функцию кормления в параметре передаем животное что там будет вам решать, можете ловить исключение снаружи и добавлять в список исключений ( еда этого типа кончилась) ну и естественно ( еда для животного кончилась тварь осталась не накомленной) после кормления или в процессе смотреть результаты этих списков. ну можете добавить функцию отчета, и пополнения еды.. Как вариант - если еду сделать базовым классом и животных наследовать от еды - то можно сделать, чтобы животные могли есть друхих животных. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 13:45 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Berd.Как вариант - если еду сделать базовым классом и животных наследовать от еды - то можно сделать, чтобы животные могли есть друхих животных. Просто на всякий случай, правильно ли я поняла, что если я захочу реализовать подход, что зверей из зоопарка - можно кормить другими зверьми? 1. Создать интерфейс: IEatable. 2. Поменять перечисление Еда на абстрактный пустой класс и дочерние классы Молоко, Мясо, Сыр и Сухари, которые реализуют IEatable. 3. Сделать так, чтобы Кошка и Мышка реализуют интерфейс IEatable. 4. Добавить в ConsumableFoodList для Собаки - Кошку, а для Кошки - Мышку. 5. Опционально: сокращать список животных на количество съеденных кошек и мышей. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 14:00 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222, вот теперь понятно. Я не встречал такого: "Подобные задания со списками литературы раздают все крупные компании, по крайней мере, на Украине, по заявке через e-mail и связным объяснением желания заниматься." Для меня курсы - это курсы. Есть группа, есть программа, есть домашние задания, есть обсуждения решений участников с преподавателем. Всё это онлайн. Причём преподаватели крайне негативно относятся к тому, что решения тащат из интернета. Перешлите задание мне на почту, постараюсь посмотреть сегодня вечером и ответить Вам и выложить сюда решение. Если конечно Вам нужны такая помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 14:12 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222по поводу "небылиц"... Antonariy, не желаете подумайть о своей карме после обвинений во лжи...не отвечать на неудобные вопросы это ваше личное или национальное? вопрос был следующим, напоминаю: каким образом skyANA должен был угадать ваш ничем не подтвержденный статус? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 14:14 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
skyANAMarina222, вот теперь понятно. Я не встречал такого: "Подобные задания со списками литературы раздают все крупные компании, по крайней мере, на Украине, по заявке через e-mail и связным объяснением желания заниматься." Для меня курсы - это курсы. Есть группа, есть программа, есть домашние задания, есть обсуждения решений участников с преподавателем. Всё это онлайн. Причём преподаватели крайне негативно относятся к тому, что решения тащат из интернета. Перешлите задание мне на почту, постараюсь посмотреть сегодня вечером и ответить Вам и выложить сюда решение. Если конечно Вам нужны такая помощь.skyANA, это у них называется заочный курс обучения - для тех кто со стороны без опыта либо не прошёл интервью. Конечно, на таких как я не очень хотят тратить время, и уж точно "ставят на заметку" на будущее. За предложение помощи, большое спасибо, но я не могу её принять, потому что хочу сама выполнить задания. Поэтому и обощала вопросы. В принципе, того кода, что есть в ветке - достаточно. Если можете, помогите мне, пожалуйста с вопросом, почему у меня не работает рефакторинг метода. И это не первый раз. Код: c# 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.
Заранее, большое спасибо!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 14:26 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222За предложение помощи, большое спасибо, но я не могу её принять, потому что хочу сама выполнить задания.Тогда советую внимательно посмотреть на задание и подумать над тем,а где у Вас: 1. Класс зоопарк с клетками и запасом еды? 2. Как у Вас реализованы желудки животных и перемещение еды в них из запасов зоопарка? 3. 10 животных и 40 единиц еды: как Вы предусмотрели то, что животные не могут разом всё съесть? То есть если желудок заполнен, то не надо пихать в животное еду насильно. Лямбды - это конечно круто, но думаю вряд-ли кого-то впечатлит их наличие при плохо спроектированных классах. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 14:37 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222, По-моему задача поменялась... Вместо решения первоначальной задачи, занялись рефакторингом Код, который вы пытаетесь рефакторить, просто перегружен лямбдами. Зачем вообще, в этом коде сделаны три разных класса? В вашем первоначальном варианте было больше смысла в трех классах, которые наследовались от животного. Вам же не надо делать реальный проект, и покрывать его тестами... Повторю, если задача учебная - то скорее всего надо воспользоваться виртуальными методами. Примерно так: Каждое животное ест (просто ест, абстрактно) Кошка ест то-то и то-то Собака ест то-то и то-то Как накормить? Пройтись по животным и заставить есть (абстрактно) Вот и всё... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 15:20 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
refregMarina222, По-моему задача поменялась... Вместо решения первоначальной задачи, занялись рефакторингом Код, который вы пытаетесь рефакторить, просто перегружен лямбдами. Зачем вообще, в этом коде сделаны три разных класса? В вашем первоначальном варианте было больше смысла в трех классах, которые наследовались от животного. Вам же не надо делать реальный проект, и покрывать его тестами... Повторю, если задача учебная - то скорее всего надо воспользоваться виртуальными методами. Примерно так: Каждое животное ест (просто ест, абстрактно) Кошка ест то-то и то-то Собака ест то-то и то-то Как накормить? Пройтись по животным и заставить есть (абстрактно) Вот и всё...refreg, спасибо! Вы правильно изложили задачу. С лямбдами я тоже не поняла ещё. Пришлось переделывать под LINQ для животных так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Моя главная проблема в этой задаче: я не понимаю, как реализовать "Пройтись по животным" и как их "заставить есть (абстрактно)" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 15:45 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222 Моя главная проблема в этой задаче: я не понимаю, как реализовать "Пройтись по животным" и как их "заставить есть (абстрактно)" Это элементарно: Код: c# 1. 2. 3.
Весь фокус в том, что надо реализовать метод Eats() в подклассах. А в анимал сделать его абстрактным ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 15:52 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Marina222, за время работы зоопарка в нём могут размещать новых животных, вывозить оттуда животных на волю или в другие зоопарки. Поставлять в него еду. То, что в начале программы инициализируется какой-то случайный набор животных и еды, с самим классом зоопарка никак не связано. То есть внутри этого класса не должно быть никаких randomizedAnimals и RandomizedFoodsLambda. Смотреть будут на то, как Вы спроектируете классы Zoo, Animal, Food, а не на то, как виртуозно Вы инициализируете начальные условия, используя линк и лямбды. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 15:54 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Не запускал, но как-то так: Код: c# 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.
Не уверен в выводе в консоль, работаю на ASP :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 15:55 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Tamozhnya, боюсь, что Ваше решение потенциальный работодатель закроет, даже не запустив. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 15:57 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Random.Next(FoodTypeValues.Length) надо поправить на Random.Next(1, FoodTypeValues.Length) и Random.Next(AnimalTypeValues.Length) на Random.Next(1, AnimalTypeValues.Length) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 16:19 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Tamozhnya, ИМХО задание дано, чтобы посмотреть, как кандидат усвоил основные принципы ООП, а не на то как он может компактно писать код, используя линк и лямбды ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 16:25 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
С тех пор, как пришел в .net на asp, сижу на довольно крупном (по объему кода) проекте автоматизации колцентров, плюс вёб часть. И по моему опыту, при программировании таких бизнес приложений наследование почти не используется (у меня только персистные сущности наследуются от базовой для работы с БД). А наоборот, используется линейный код, очень хорошо читаемый. Этот проект был написан до меня, и из рук вон плохо (говнокод короче), так что за голову часто хватаешься от реализации. В том числе наследование используется там, где оно совсем не нужно, так что кажется, что как раз студенты тренировались применять ООП. От этого надо предостерегать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 16:41 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Tamozhnya, Вы задание-то вообще читали? "создана коллекция Животные (список)... 10 разных животных из классов: кошки, мыши и собаки" Вы можете сколько угодно рассуждать про крупные проекты, линейный код и т.п. Но тут явно ожидают увидеть базовый класс Animal (или интерфейс IAnimal) и реализации в виде Cat, Mouse, и Dog. Также помимо наследования ожидают увидеть инкапсуляцию и полиморфизм, которыми в Вашем линейном коде и не пахнет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 16:55 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Всё таки автоматизация колцентров и зоопарк - это несколько разные предметные области ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 16:58 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Я задание читал, и очень доволен, что для решения не нужны ни наследование, ни полиморфизм. Лишние сущности очень усложняют код и его понимание, поэтому не плодите их там, где они не нужны. И все вам скажут спасибо. (Это я ко всему народу обратился :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 17:07 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
А кстати, да, есть вопрос, ведь мой код решает задачу? По моему, да. Он максимально прост. А теперь давайте введём в него наследование - лишние классы; методы какие-нибудь и т.д. Всё резко усложнится, и возникнет вопрос: зачем всё это лишнее? Потом можно сравнить полученный код с исходным, и крепко задуматься (над смыслом жизни :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 17:16 |
|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#18+
Tamozhnya, тут не надо задумываться над смыслом жизни. ТСу выдали литературу, по котрой она скорее всего изучает ООП на C#, а не линейное программирование на C#. И задание, чтобы проверить, как она усвоила материал (принципы ООП), а не как принято писать код в относительно крупном проекте автоматизации коллцентра. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2014, 17:26 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1402512]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 187ms |
0 / 0 |