0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 4
|
|
1 | |
Не могу составить структуру программы17.09.2015, 08:25. Показов 1439. Ответов 8
Метки нет (Все метки)
Добрый день, уважаемые форумчане!
Есть у меня условие задачи. Звучит оно вот так: Имеется набор емкостей, в которые заливают жидкости. В одну емкость можно залить только одну жидкость, т.е. смешивать жидкости запрещается. Емкость заполняется на 95% от максимального объема. Описание емкостей: – стенки емкостей прямые или наклонные с одинаковым углом наклона во всех направлениях; – у наклонных емкостей основание меньшей площади всегда находится внизу; – в основании прямых емкостей могут быть следующие фигуры: квадрат, прямоугольник, равнобедренная трапеция, правильный шестиугольник, круг, овал (эллипс); – в основании наклонных емкостей могут быть следующие фигуры: квадрат, равнобедренная трапеция, правильный шестиугольник, круг; – высота у всех емкостей одинаковая. Список имеющихся жидкостей (в скобках указана плотность, кг/м3): бензин (740), керосин (820), машинное масло (910). Создать консольное приложение, в котором последовательно выполнить следующие задания: – залить произвольным образом жидкости в набор емкостей (не менее 10); – отсортировать емкости по убыванию массы залитой в них жидкости; – вывести на консоль в табличном виде (можно без границ) набор емкостей (полный состав атрибутов) и их содержимого; – найти наименьшую массу бензина, залитого в емкость. Требования: – Использовать объектно-ориентированный подход для описания сущностей предметной области. – Набор емкостей инициализировать в коде с помощью конструктора или метода. Как следствие, не использовать внешние источники данных: консоль (т.е. ввод с клавиатуры), файлы, СУБД и т.п. – Инициализацию выполнить без датчика случайных чисел. Передавать в конструктор константные значения. Например, залить керосин в прямую емкость, в основании которой прямоугольник со сторонами 45 см и 30 см. – Приложение должно быть консольным. Не использовать графический интерфейс! Таким образом, приложение ничего не должно вводить, а только выводить результаты на консоль. Предпочтения по выбору: – языка программирования: 1) Java; 2) C++; 3) другой ООП язык. – реализации сортировки и поиска: 1) интерфейс внешних библиотек (н-р, метод sort() подходящего класса); 2) собственный код. Я понимаю, что задачка университетского уровня, и далеко не самая сложная. Но я - новичок. И не прошу помогать кодом. Прошу подсказать кто что может. В идеале - как структурировать программу, поскольку я потонул в пространстве идей, как это все красиво реализовать. Заранее спасибо.
0
|
17.09.2015, 08:25 | |
Ответы с готовыми решениями:
8
Не могу составить код программы Составить структуру БД Не могу придумать структуру БД Не могу сформировать структуру |
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
17.09.2015, 09:56 | 2 |
Noegon, для начала определитесь какие сущности будут у вас в программе. Затем напишите (лучше на листочке) какие методы будут у каждой сущности. После подумайте как можно сгруппировать сущности с похожими свойствами (наследования, интерфейсы и.т.д)
После того как это все будет написано на бумаге, все станет намного понятнее.
0
|
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 4
|
||||||||||||||||||||||||||
22.09.2015, 15:32 [ТС] | 3 | |||||||||||||||||||||||||
Спасибо! На бумаге все действительно стало несколько яснее. Запомню совет на будущее. Я даже почти решил задачу! Правда, скорее всего, решение далеко от идеала)
Добавлено через 22 часа 7 минут Я выполнил задание, и, если не сложно, прошу посмотреть одним опытным глазом... Исполняемый класс - Execute. Класс Liquors можно было и не делать, забив все в Vessel, но, на это пока прошу закрыть глаза. И... Прошу не говорить в духе: "пальцы поотламывать" - это мой первый более-менее серьезный код, все остальное - задачки из Эккеля "Thinking in java". Класс Vessel
Класс Vessel_straight (сосуд с прямыми стенками)
Добавлено через 2 минуты Есть такая ссылка на решение этой задачи: http://javatalks.ru/topics/33966. Но мне кажется, что там не реализована полностью вся задача, и, кроме того, нельзя самому задать габариты сосудов.
0
|
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
22.09.2015, 16:01 | 4 |
читать много кода лень поэтому внимательно не смотрел
Почитайте про Java naming conventions У вас есть одинаковый код в некоторых местах. Этого недолжно быть Давайте переменным осмысленные имена Используйте перечисления где это уместно вместо строк Насчет логики и функционала ничего не скажу т.к не запускал. Добавлено через 1 минуту там решение намного ближе к ООП чем у вас. Посмотрите что можно оттуда перенять в вашу программу.
0
|
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 4
|
|
22.09.2015, 16:10 [ТС] | 5 |
Спасибо... Хм. Ладно, буду копать дальше. Т.е., я так понимаю, что участки кода, выполняющие одну и ту же функцию, следует организовывать в методы, и вызывать впоследствии код из метода?
Добавлено через 56 секунд Не совсем понял смысл фразы. Если можете - поясните на примере, или дайте ссылку, где можно почитать. Добавлено через 1 минуту Похоже, я пока далек от понимания, как правильно применять ООП на практике, поскольку тот код выглядит для меня малопонятным. Но спасибо, буду знать куда двигаться.
0
|
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||||||
22.09.2015, 16:14 | 6 | |||||
circle, ellipse и.т.д тоже лучше сделать enum, а если у них есть свой функционал, то может и отдельным классом.
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
24.09.2015, 11:13 | 7 |
тем более, Вам будет интересно глянуть на мою реализацию Вашей задачи, для прямых стенок.
Исключения и защиту от "дурака", т.е. различные проверки не делал. Проект сделан в NetBeans. Некоторые, не тривиальные моменты содержат комменты)).
0
|
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 4
|
|
24.09.2015, 13:19 [ТС] | 8 |
0
|
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
|
|
24.09.2015, 13:38 | 9 |
Наверное я вас огорчу, но это я делал не для вас, а потому, что мне было интересно
И вам спасибо.
0
|
24.09.2015, 13:38 | |
24.09.2015, 13:38 | |
Помогаю со студенческими работами здесь
9
Не могу прочитать структуру с файла Не могу присоединить структуру к функции Не могу создать структуру с указателями структуру классов! не могу разобраться!!! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |