|
Как накормить животных в зоопарке? - задача
|
|||
---|---|---|---|
#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?fid=20&msg=38736506&tid=1402512]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
662ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 777ms |
0 / 0 |