Как сохранить счетчик цикла в 0; BigDecimal; так далее - PullRequest
3 голосов
/ 25 декабря 2011

Я пытался выполнить следующее задание для моего колледжа. До сих пор я получал помощь по этому заданию пару раз (что я действительно ценю).

Поскольку это задание для колледжа, я был бы признателен за непрямые ответы, которые объясняют концепции на примерах, которые непосредственно не фиксируют мое задание.

Задание требует от меня проверки некоторых вещей в зависимости от ввода пользователя.

  1. Если пользователь вводит заказ, а затем снова вводит тот же заказ с тем же кодом, он заменяет предыдущую информацию новой. Например, если пользователь вводит G22 как код, а 5 как количество, затем снова вводит G22, а затем 4 как количество, он забывает о 5 и заменяет его на 4. Как я могу сделать так, чтобы он запоминал предыдущий и просто добавил новый порядок и делает его Количество = 9 (я использую массивы для ввода пользователя).

  2. Если пользователь вводит G22 и количество 3, но затем ничего не вводит и просто нажимает ввод, счетчик прибавляет единицу, и при нажатии X (чтобы выйти) расходы на доставку отображаются как 2,00 долл. США, что для 2 Предметы. Как можно избежать добавления счетчиком 1 в случае, если не введено ничего разумного, т. Е. Введено что-либо еще, кроме четырех доступных вариантов.

  3. Я понимаю, что использование double не рекомендуется для всего, что связано с деньгами, и рекомендуется BigDecimal (возможно, вместе с NumberFormat). Могу ли я заменить мои текущие двойные значения на BigDecimal с минимальными проблемами, или мне нужно заменить весь код? Я также не понимаю, как легко реализовать BigDecimal, поэтому я был бы признателен за это на примерах для неспециалистов (особенно в том, могу ли я добавить / вычесть / умножить / разделить BigDecimal с помощью целых чисел и т. Д.).

  4. Я бы выложил код здесь, но я не хочу, чтобы кто-то другой делал этот же курс, а затем отправлял его раньше, чем я (не то, чтобы мой код был самой удивительной вещью в мире, я просто приложил много усилий, так как это моя первая в истории программа).

1 Ответ

2 голосов
/ 25 декабря 2011

1) Я бы использовал Map<String, Integer> для хранения всех количеств для кода продукта.

2) Я бы получил общее количество заказанных предметов, суммируя количества на карте. То, как пользователь вводит данные, не должно иметь значения.

3) Этот совет зависит от проекта. В вашем случае выбор маркера имеет значение. Много лет работал в инвестиционных банках и торговых фирмах, и я не видел, чтобы кто-то использовал BigDecimal за деньги. Это не главная перезапись, и как минимум вы должны знать, как правильно использовать double и BigDecimal для округления.

...