]:->
102 / 96 / 19
Регистрация: 12.11.2013
Сообщений: 398
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Система Интернет-магазин. Проверить реализацию13.01.2014, 17:41. Показов 11565. Ответов 15
Метки нет (Все метки)
В общем есть условие задачи из книги Блинов "Промышленное программирование". Звучит так :
"Система Интернет-магазин. Администратор добавляет информацию о Товаре. Клиент делает и оплачивает Заказ на Товары. Администратор регистрирует Продажу и может занести неплательщиков в «черный список»." Вопрос вот в чем, правильно ли реализована данная задача? Что сделано не логично? Прошу конструктивно все написать, тролли мимо з.ы. уже более менее в каких-то вопросах Java разбираюсь, но вот, если столкнуться с системой - тяжеловато... Класс Товар Кликните здесь для просмотра всего текста
класс Заказ Кликните здесь для просмотра всего текста
класс Клиент Кликните здесь для просмотра всего текста
класс Администратор Кликните здесь для просмотра всего текста
2
|
13.01.2014, 17:41 | |
Ответы с готовыми решениями:
15
Проверить на корректность реализацию потоков Проверить реализацию преобразования фурье Проверить на ошибки реализацию односвязного списка Как проверить реализацию тега <strong>? |
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
14.01.2014, 02:31 | 4 |
При всём уважении,как-то я всё-таки сомневаюсь в целесообразности отказа от "обычного" типа double. Да, я знаю про погрешность при хранении чисел double, но погрешность эта станет заметной на таких суммах, какие среднестатистическому магазину даже в пересчёте на монгольские тугрики и не снились. При этом помимо элементарной разницы в объёме памяти, занимаемой числами double и объектами BigDecimal, наверняка и незатейливые операции вроде того же вычисления нескольких процентов скидки над числами double будут происходить заметно быстрее. Надо будет проверить, как время появится. Ну и кроме всего прочего вместо привычного синтаксиса арифметических вычислений получаете довольно мутный набор из методов класса BigDecimal...
1
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
14.01.2014, 10:58 | 5 |
В данном случае правильнее всего считать в копейках. Тогда арифметика вообще будет целочисленная. А длины int хватит за глаза.
2
|
]:->
102 / 96 / 19
Регистрация: 12.11.2013
Сообщений: 398
|
|
14.01.2014, 11:19 [ТС] | 6 |
main класс пока не столь важен. Я просто хочу разобраться в том, где по условию задачи должны располагаться методы различные и т.д.
Вот, например, "Клиент делает и оплачивает заказ". По-моему, то, что я сделал, не совсем реализует это. В моем представлении кода, заказ где-то делается сам, а потом дается на него ссылка клиенту. Может быть лучше сделать метод, который создает new Order внутри класса Client? И ещё вопрос, где лучше разместить и в чем хранить список клиентов и соответствующий ему заказ? Т.е., например, создать отдельный класс, который будет хранить клиент-заказ, а в классе Administrator в ArrayList хранить экземпляры этих классов. Логично ли это будет? P.S. Простите заранее, может эти вопросы конечно элементарные и дурацкие, но мне тяжело с этим пока. Есть ли какие-нибудь сайты или книги с примерами построения таких систем? Заранее, спасибо)
0
|
14.01.2014, 11:35 | 7 |
даблы надо обычно для всякой графики, банкиры любят считать точно, так как потом это деньги
уже пару раз я видел такой код, писаный под 1.4 ещё, там тоже считали что хватит, но почему-то мне его сейчас нужно переделывать ) всё хорошо пока твой код у тебя в руках и не уплыл куда нибудь ещё под слегка другие задачи Добавлено через 3 минуты с деньгами так нельзя, так как магазин может поработать с вашей программой 10 лет и потом вдруг обнаружить потерю сотой части копейки на каждой кассовой операции, а потом подсчитать недостачу и выкатить её вам на компенсацию, может случиться так что у вас не хватит денег чтобы оплатить эти тугрики )
0
|
237 / 236 / 72
Регистрация: 02.07.2013
Сообщений: 881
|
|
14.01.2014, 12:58 | 9 |
0
|
14.01.2014, 13:08 | 10 |
Нееет, это чисто организационный момент, имеется ввиду не тот конечный пользователь, а пользователь-программист. К примеру, пришел новый сотрудник - вот ему откуда знать, что цены в копейках считаются, в джавадоке чтоль надо читать
0
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
14.01.2014, 13:52 | 11 |
Вообще-то к нормальной системе должны быть:
Бизнес-требования Функциональные требования Техническое задание Техническая документация Пользовательская документация Первые три документа появляются ДО начала реализации и содержат наше представление о том, как должна разрабатываться система. Техническая документация отражает то, как система реально разработана. Пользовательская - как она работает.
0
|
]:->
102 / 96 / 19
Регистрация: 12.11.2013
Сообщений: 398
|
|
14.01.2014, 13:54 [ТС] | 12 |
а можно, пожалуйста, ответ на мой вопрос?)
0
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
14.01.2014, 13:58 | 13 |
Не, ну не в промышленной же системе... Задача ставилась как учебная, в ней хватит. В промышленной считать только в BigDecimal или BigInteger.
Добавлено через 3 минуты На какой вопрос? Правильна ли реализация? На него ответить невозможно, ибо реализации просто нет. Вы сделали 4 класса предметной области, бизнес-логика отсутствует.
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
14.01.2014, 14:02 | 14 |
Как товарищ Сухов говорил, "Это вряд ли!" Куча магазинного софта написана с использованием типа double для хранения денежных величин, и до сих пор никто не кричал, что на том и раззорился. Это больше к мифам относится про кулл-хацкеров, которые эти самые нанокопейки как бы к себе в корман заворачивать умеют, кто бы чем за что ни расплачивался... И кстати, вариант с копейками в принципе выглядит вполне разумно, но там-то в этом смысле вообще беда - точность только до копейки, никаких сотых... Но в прочем спорить не буду. Если есть класс для суперточных рассчётов, наверное, нужно им и пользоваться...
Ну, если новый сотрудник прямиком из "Битвы Экстрасенсов" пришёл, то может и вовсе ничего не читать. Всем остальным прежде, чем в работу "влиться", документацию читать приходится. А там среди прочего и про копейки... Не забывайте про основную концепцию "Всё есть класс"... Если объект класса Покупатель приходит к объекту класса Продавец поменять несколько объектов класса Товар на объекты класса Деньги, по идее объект класса Продавец должен создать объект класса Счёт и отправить его в метод оплатить() объекта класса Покупатель. Всё, как в жизни...
1
|
14.01.2014, 14:14 | 15 |
в банковском софте учитываются даже мелочи округления 0,005 - делается округлёжка через раз, так чтобы не набегало по математической схеме в плюсы, так можно подмутить себе денег из воздуха на миллионах транзакций
0
|
]:->
102 / 96 / 19
Регистрация: 12.11.2013
Сообщений: 398
|
|
14.01.2014, 14:39 [ТС] | 16 |
0
|
14.01.2014, 14:39 | |
14.01.2014, 14:39 | |
Помогаю со студенческими работами здесь
16
Проверить на правильность реализацию метода Кардано Проверить правильность и реализацию заголовочного файла time.h Roguelike. Движение персонажа, проверить реализацию кода Интернет магазин! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |