Доброго времени суток! Прошу помощи, не принимает задачу, не могу понять почему.

Задание 4 1. Выберем операцию, с которой мы сможем начать. Подумаем. В банкомате еще денег нет, поэтому INFO и WITHDRAW протестить не получится. Начнем с операции DEPOSIT - поместить деньги. Считаем с консоли код валюты, потом считаем номинал и количество банкнот, а потом добавим их в манипулятор.

  1. Чтобы считать код валюты, добавим статический метод String askCurrencyCode() в ConsoleHelper. Этот метод должен предлагать пользователю ввести код валюты, проверять, что код содержит 3 символа. Если данные некорректны, то сообщить об этом пользователю и повторить. Если данные валидны, то перевести код в верхний регистр и вернуть.

  2. Чтобы считать номинал и количество банкнот, добавим статический метод String[] getValidTwoDigits(String currencyCode) в ConsoleHelper. Этот метод должен предлагать пользователю ввести два целых положительных числа. Первое число - номинал, второе - количество банкнот. Никаких валидаторов на номинал нет. Т.е. 1200 - это нормальный номинал. Если данные некорректны, то сообщить об этом пользователю и повторить. Пример вводимых данных: 200 5

  3. В классе CurrencyManipulator создайте метод void addAmount(int denomination, int count), который добавит введенные номинал и количество банкнот

  4. Пора уже увидеть приложение в действии. В методе main захардкодь логику пункта 1. Кстати, чтобы не было проблем с тестами на стороне сервера, добавь в метод main первой строчкой Locale.setDefault(Locale.ENGLISH); Запускаем, дебажим, смотрим.

ConsoleHelper: package com.javarush.test.level26.lesson15.big01;

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;

public class ConsoleHelper { public static void writeMessage(String message){ System.out.println(message); }

public static String readString() throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    return reader.readLine();
}

public static String askCurrencyCode() throws IOException
{
    writeMessage("Vvedite cod:");
    String s = readString();

    if (s.length() == 3) return s.toUpperCase();
    else {
        writeMessage("Invalid codd!");
        return askCurrencyCode();
    }
}

public static String[] getValidTwoDigits(String currencyCode) throws IOException
{
    writeMessage("Vvedite nominal:");
    String[] array = readString().split(" ");
    int nom;
    int count;
    try
    {
        nom = Integer.parseInt(array[0]);
        count = Integer.parseInt(array[1]);
    }
    catch (Exception e){
        writeMessage("Invalid nominal:");
        return getValidTwoDigits(currencyCode);
    }
    if (Integer.parseInt(array[0]) <= 0 || Integer.parseInt(array[1]) <= 0 || array.length != 2) {
        writeMessage("Invalid nominal!");
        return getValidTwoDigits(currencyCode);
    }
    else return array;
}

}

CurrencyManipulator: package com.javarush.test.level26.lesson15.big01;

import java.util.HashMap; import java.util.Map;

public class CurrencyManipulator { String currencyCode; Map<integer, integer=""> denominations = new HashMap<>();

public CurrencyManipulator(String currencyCode){
    this.currencyCode = currencyCode;
}
public String getCurrencyCode(){
    return currencyCode;
}

public void addAmount(int denomination, int count){
    if(denominations.containsKey(denomination))
        denominations.put(denomination, denominations.get(denomination) + count);
    else
        denominations.put(denomination,count);
}

}

CashMachine: package com.javarush.test.level26.lesson15.big01;

import java.io.IOException; import java.util.Locale;

public class CashMachine { public static void main(String[] args) throws IOException { Locale.setDefault(Locale.ENGLISH); String s = ConsoleHelper.askCurrencyCode(); String[] array = ConsoleHelper.getValidTwoDigits(s); CurrencyManipulator test = new CurrencyManipulator(s); test.addAmount(Integer.parseInt(array[0]), Integer.parseInt(array[1])); } }

задан 01 Ноя '16, 14:22

Fooboy's gravatar image

Fooboy
1
одобрено: 0%

закрыто 13 Сен, 15:38

AndyRad's gravatar image

AndyRad
13.1k29

Вопрос был закрыт по следующей причине: "Problem is not reproducible or outdated" AndyRad 13 Сен, 15:38

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×3,805

Задан: 01 Ноя '16, 14:22

Просмотров: 120 раз

Отредактирован: 13 Сен, 15:38