|
|
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
Задача: Необходимо реализовать программу, в которой будут реализованы иерархия классов, описывающая аренду торгового комплекса, методы расчета стоимости боксов, автоматический генератор начальных (можно случайных) условий (количество боксов на i-ом этаже, количество этажей, количество торговых комплексов). Предметная область связана с арендой торгового центра. Торговый комплекс может быть в центре, на окраине, за городом. Стоимость аренды на окраине составляет 120% от стоимости арены за городом. Стоимость аренды в центре в два раза выше чем за городом. Торговый комплекс - набор боксов. Бокс характеризуется следующими параметрами: — Площадь — Номер — Этаж — Тип бокса — Стоимость аренды (возвращается методом вычисления) Типы боксов: — Торговля продуктами питания — Торговля одеждой — Торговля электроникой Бокс торговли продовольственными товарами характеризуется следующими параметрами: — количество холодильных камер — количество весов Бокс торговли одеждой характеризуется следующим набором параметров: — количество примерочных кабинок Бокс торговли электроникой характеризуется следующими параметрами: — количество электрических розеток — общее потребление электричества, Вт Стоимость аренды должна вычисляться следующим образом: Базовый тариф 500 руб за квадратный метр в месяц, плюс: - для боксов торговли продовольственными товарами: 50 * кол-во холодильных камер + 20* кол-во весов, если кол-во холодильных камер меньше 3, то делается скидка 10% на всю оплату - для торговли одеждой: кол-во примерочных кабинок * 30 - для боксов электроники: если потребляемая мощность больше 500 кВт/ч - то потребляемое кол-во сверх 500 кВт/ч * на стоимость кВт/ч (2 руб), если более 5 розеток - то кол-во розеток * 200 руб Боксы на первом этаже - нужно общую стоимость умножить на 5%. Плюс к этому: 1) должен быть реализован класс-хранилище, в задачи которого входит хранение в памяти объектов, которыми можно манипулировать, используя функции интерфейса класса; интерфейс класса-хранилища должен быть описан отдельно ( интерфейс IObjectStore.java ); реализация интерфейса должна поддерживать логические ограничения модели (например нельзя добавить описание бокса в несуществующий этаж знания); класс хранилища должен быть "хорошо инкапсулирован": внутренний механизм хранения объектов должен быть не доступен снаружи напрямую - вся работа по помещению объектов в хранилище, поиску и выдаче объектов из хранилища должна вестись через функции класса хранилища 2) класс-"заполнятель". Он должен реализовывать задачи генерации начальных условий. Он должен работать с хранилишем, и все сгенерированные объекты помещать в хранилище. 3)класс-"распечатываетель". Его задача - выводить в консоль последовательно описания всех объектов хранилища: область, торговый центр, этаж, перечень боксов, и информацию по каждому объекту (где применимо): цена аренды, площадь бокса и пр. Здесь интересуют такие моменты: 1. Как посчитать кол-во боксов на этаже ? Надо ли для этого создать класс "Этаж здания" ? 2. Надо ли создавать класс "Аренда бокса" ? 3. Какие методы для каких классов применять ? Т.е., если у меня в классах-сущностях есть методы для расчёта аренды, надо ли их применять в классе-заполнятеле ? И какие методы должны быть в заполнятеле, хранилище, интерфейсе хранилища, распечатывателе ? Какие типы данных надо применять в методах и полях, аргументах ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 13:33 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
AlexxiuS_471. Как посчитать кол-во боксов на этаже? Вопрос к тем кто не поленился почитать всё ТЗ. Вам тоже лень? AlexxiuS_47Надо ли для этого создать класс "Этаж здания" ? 2. Надо ли создавать класс "Аренда бокса" ? Если у них есть состояние или поведение, то можно создать. Если у них нет состояния или поведения, то зачем? AlexxiuS_473. Какие методы для каких классов применять ? "Применять" это вызывать или декларировать? Методы нужно размещать в тех классах, свойтвами и полями которых они оперируют. AlexxiuS_47Т.е., если у меня в классах-сущностях есть методы для расчёта аренды, надо ли их применять в классе-заполнятеле ? Что за "применять" такое? Надо - применяйте. Не надо, не применяйте. AlexxiuS_47И какие методы должны быть в заполнятеле Методы заполнения. AlexxiuS_47, хранилище, интерфейсе хранилища, Методы хранения. AlexxiuS_47распечатывателе ? Методы распечатывания. AlexxiuS_47Какие типы данных надо применять в методах и полях, аргументах ? Применяйте типы данных наиболее соответствующие предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 13:43 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
Он что реально думает что в рамках форума Java кто-то сядет и вот так вот закодит такое ТЗ ? Безо всякой награды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 14:04 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
AlexxiuS_47Задача: Торговый комплекс может быть в центре, на окраине, за городом. Стоимость аренды на окраине составляет 120% от стоимости арены за городом. Стоимость аренды в центре в два раза выше чем за городом. Конкретные цифры тут мало кому интересны, достаточно было написать, что стоимость отличается и выражена в процентах AlexxiuS_47Типы боксов: — Торговля продуктами питания — Торговля одеждой — Торговля электроникой А больше никаких других типов не бывает? Аптеки, массажные, парикмахерские, лаборатории, торговля цветами, секс-игрушки, офисные помещения, складские, лестничные клетки(бывают достаточно большие для размещения торговых стоек) и т.д. ? AlexxiuS_47Бокс торговли продовольственными товарами характеризуется следующими параметрами: — количество холодильных камер — количество весов Бокс торговли одеждой характеризуется следующим набором параметров: — количество примерочных кабинок Бокс торговли электроникой характеризуется следующими параметрами: — количество электрических розеток — общее потребление электричества, Вт общее потребление электричества, Вт, такого не будкт в продовольственных магазинах и других? AlexxiuS_47Боксы на первом этаже - нужно общую стоимость умножить на 5%. Сделайте коэффициент отдельный для изменения. И, наверное, не умножить, а прибавить. AlexxiuS_47 Какие типы данных надо применять в методах и полях, аргументах ? Да абсолютно любые, практически все какие понадобятся. Вообще, задача довольно простая, я бы больше заинтересовался реализацией этого недоТЗ, потому как там могут возникнуть затыки от выбора технологий разработки(язык(понятно, что наверняка Java), база данных(хотя тут особо и нечего думать), фреймворк для интерфейса и работы с БД), до внесения последующих изменений. Работы будет достаточно много, но она вся однотипная, по сути, может растянуться даже на пару лет, в зависимости от отзывчивости заказчика. У меня есть проектик, который уже 4.5 года допиливается постоянно, а все потому, что ТЗ изначально практически не было. Но мне оно и на руку :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 15:11 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
Очень похоже на тестовое задание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 18:01 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
А как подсчитывать проценты, подскажите ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 09:27 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
AlexxiuS_47А как подсчитывать проценты, подскажите ? Может эта. Сначала школьную программу по математике повторить, а потом уже в программирование? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 09:36 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
И какой тип данных лучше для id - int или string ? Нормально, что номер этажа может быть string ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 09:39 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
AlexxiuS_47И какой тип данных лучше для id - int или string ? Нормально, что номер этажа может быть string ? Если речь о базе данных, то существует такое понятие как натуральный и синтетический ключ. Можно использовать натуральный ключ как первичный. Но этот подход обладает массой недостатков. Поэтому натуральный ключ лучше просто сделать уникальным, а дополнительно завести ещё и синтетическй ключ типа long. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 10:01 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, ну а если номер этажа будет string, это будет нормально в том случае, если я захочу поменять его значение ? просто string это фиксированное значение, если я поменяю его, получается создастся новая строка с новым значением. просто думаю это поле сделать string, т.к. никаких вычислений с ним не предполагается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 10:22 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕсли речь о базе данных, то существует такое понятие как натуральный и синтетический ключ. Можно использовать натуральный ключ как первичный. Но этот подход обладает массой недостатков. Поэтому натуральный ключ лучше просто сделать уникальным, а дополнительно завести ещё и синтетическй ключ типа long. А корректно ли Double использовать вместо long? У меня, к примеру, используется Double для порядковых номеров счетов, потому что бывают номера 26555.01 26555.02 и т.д. Чот я засомневался :) Судя по диапозону вроде как последствий никаких, но все же.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 10:29 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
AlexxiuS_47И какой тип данных лучше для id - int или string ? Нормально, что номер этажа может быть string ? Ты хочешь как ID использовать номер этажа? Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 10:40 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
NixicСудя по диапозону вроде как последствий никаких, но все же.. Изврат, конечно. Но если математику не использовать, то будет работать. Надо ещё не забывать окргулять всегда при выводе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 10:48 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
NixicBlazkowicz... Можно использовать натуральный ключ как первичный. Но этот подход обладает массой недостатков. ... А корректно ли Double использовать вместо long? У меня, к примеру, используется Double для порядковых номеров счетов, потому что бывают номера 26555.01 26555.02 и т.д. Чот я засомневался :) Судя по диапозону вроде как последствий никаких, но все же.. Тема для большого холивара :) Как будешь ошибочно введенный номер счета исправлять, если зависимые записи есть? Суррогатный ключ наше всйо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 10:50 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
JonnySKS, нет, id как id, а номер этажа как номер этажа. Просто думаю, целесообразно ли будет сделать его string, если я вдруг захочу поменять его. Ведь string это неизменяемое значение, вернее записать другое значение можно, но это будет уже новая строка. Это нормально ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 11:14 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
sanBezNixicпропущено... А корректно ли Double использовать вместо long? У меня, к примеру, используется Double для порядковых номеров счетов, потому что бывают номера 26555.01 26555.02 и т.д. Чот я засомневался :) Судя по диапозону вроде как последствий никаких, но все же.. Тема для большого холивара :) Как будешь ошибочно введенный номер счета исправлять, если зависимые записи есть? Суррогатный ключ наше всйо А он генерируется путем прибавления или целой еденицы и переводом в инт и обратно, точнее уже точно не помню как, но суть в том чтобы было без дробной части отличной от ноля, а если нужна дробная часть, то тоже проверяется сначала наличие какого-либо номера в дробях и потом генерируется прибавлением 0,01, тоже с округлением. Ну в общем повторы исключены, а если есть или будут, то он(порядковый номер типа дабл) особо нигде не используется, привязка всегда идет по id записи, а если есть или будут повторы, то оно не сильно критично. Раньше каждое 1 января 00:00:00:000 номер сбрасывался, но из-за гемора с поиском по номеру руководством, когда приходилось и по году еще смотреть, решили сделать сквозную нумерацию, добрались уже до 26 тысяч и я вот что-то засомневался в правильности выбора этого типа данных. Почитал доки, вроде не все так плохо, как показалось :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 11:42 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
AlexxiuS_47JonnySKS, нет, id как id, а номер этажа как номер этажа. Просто думаю, целесообразно ли будет сделать его string, если я вдруг захочу поменять его. Ведь string это неизменяемое значение, вернее записать другое значение можно, но это будет уже новая строка. Это нормально ? Почему оно неизменяемое? Берешь запись и меняешь значение ее поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 11:54 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
AlexxiuS_47JonnySKS, нет, id как id, а номер этажа как номер этажа. Просто думаю, целесообразно ли будет сделать его string, если я вдруг захочу поменять его. Ведь string это неизменяемое значение, вернее записать другое значение можно, но это будет уже новая строка. Это нормально ? Если вы в базе будете менять поле типа стринг, то значение у вас просто перезапишется и все. Не будет никаких новых строк. Я для Этажей сделал бы отдельную таблицу с номерами этих этажей, значение которое бы определяло номер этажа как такового было бы строковое. Так как существуют этажи с номерами 1А, 1Б, -1А, -2Б и т.д. id | значение 1 | этаж 1 2 | этаж 2 3 | этаж 1А и т.д. Как вариант, рассмотрел бы связь таблицы Этажи с таблице Здания как многие-ко-многим, то есть через третью таблицу, но не факт, тут думать надо, скорее всего оно лишнее. Можно делать примерно такую таблицу Зданий/Адресов, где здание будет повторятся а этажи меняться: id | адрес | id этажа и табл. Этажи | Копия названия этажа(если надо, но это дублирование) 555 |Ленина 1 | 1 | этаж 1 556 |Ленина 1 | 2 | этаж 2 557 |Ленина 1 | 3 | этаж 1А и т.д. Если для этого каждого здания и этажа отдельный свой тариф, то... короче, тут уже в проектирование куда-то залезли, начинаются какие-то гадания, надо знать досконально тему для которой пишется проект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 12:01 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
странно читать в разделе java задачу чисто из раздела sql java здесь как форма ввода/вывада не более постановщику задачи - голову свернуть. если это задание в институте - препода выгнать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 12:01 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
Предполагаю что цель задачи сделать оптимальную декомпозицию, и показать базовые понятия проектирования. Поэтому цепляться к нюансам постановки нет смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 12:10 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
JonnySKSПредполагаю что цель задачи сделать оптимальную декомпозицию, и показать базовые понятия проектирования. Поэтому цепляться к нюансам постановки нет смысла. +1 IDEF0 рулит :) Сам с ней(с этим) ковырялся месяца 3, правда, в итоге все-равно отклонений оказалось туева хуча ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 12:13 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNixicСудя по диапозону вроде как последствий никаких, но все же.. Изврат, конечно. Но если математику не использовать, то будет работать. Надо ещё не забывать окргулять всегда при выводе. Как сейчас помню :) Был такой язык программирования Фокал. На Бк-0010Ш (кто помнит). Типа бейсика. Строки там нумеровались в виде 1.01 1.02 1.10 1.99 2.10 5.10 и т.п. Но кто копал глубже знал, что номер хранится в виде двух байт- до точки и после. То, что первый номер в результате был от 0 до 255 - это тривиально. А что реально 1.01 это было (1,3) (3/256~0.01), 1.02 было (1,5) и т.п. - знали немногие. Так вот - можно было ввести три строки, которые будут отображаться как 1.01 ((1,1), (1,2), (1,3)). А на экране отображались как 1.01 все три. Это я к чему? Не надо использовать числа с плавующей точкой тут. Ну не надо. Строку, или пару числе, или ещё что. Но не double... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 12:20 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
AlexxiuS_47JonnySKS, нет, id как id, а номер этажа как номер этажа. Просто думаю, целесообразно ли будет сделать его string, если я вдруг захочу поменять его. Ведь string это неизменяемое значение, вернее записать другое значение можно, но это будет уже новая строка. Это нормально ? Вы что-то слышали про программирование, про java. Но ничего в этом не понимаете. Вообще. Отчисляйтесь нафиг из колледжа (надеюсь не в универе учитесь). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 12:22 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, Чего ополчились то на человека, учится ведь только. То что это тестовая задача на собеседовании я сомневаюсь, слишком много уточнений, на университетское задание похоже. А то что объем знаний маловат для выполнения подобного проекта это вопрос другой, тут может быть виной и идиотская программа обучения, а может и сам обучающийся, но нам то откуда знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 12:29 |
|
||
|
Расчёт аренды в программе
|
|||
|---|---|---|---|
|
#18+
Alexey TominЭто я к чему? Не надо использовать числа с плавующей точкой тут. Ну не надо. Строку, или пару числе, или ещё что. Но не double... Спасибо :) Писал это три года назад, насколько помню, не хотел вести два поля в таблице и работать с ними двумя, были вроде бы еще какие-то варианты, давно это было. Как все упадет, буду переписывать :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2015, 12:43 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39119081&tid=2124603]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
146ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 286ms |
| total: | 523ms |

| 0 / 0 |
