• 1.38

  • +2.65

DefNeo
Пробовать все равно стоит, потому что только так вы узнаете, что от вас хотят. Да и это не последнее приглашение, чего бояться?
DefNeo
  • DefNeo
  • 0
Книги тебе нужно писать))) Очень хорошо получается))
DefNeo
  • DefNeo
  • 0
Типа героев что ли?))
DefNeo
  • DefNeo
  • 0
Если уж прописал в дескрипторе, что все jsp у тебя лежат в папке WEB-INF, тогда туда и ложи свой index.jsp
DefNeo
  • DefNeo
  • 0
Сразу говорю, замени метод isAdmin, на getAdmin, Хибернейт не поймет, будешь долго ошибку искать
DefNeo
  • DefNeo
  • 0
а на чем делать GUI? Строго задают? или любой на выбор?
DefNeo
  • DefNeo
  • 0
А что это был за город?
DefNeo
  • DefNeo
  • 0
Свой код нужно постить по-человечески, с подсветкой…
У меня тоже вопрос. А вот если все классы создать в разных файлах, а не в одном, как в примере показано, то где аннотации писать? В каком файле?
DefNeo
  • DefNeo
  • 0
моя почта d89056411060@yandex.ru, регистрация у меня через контакт vk.com/defneo
DefNeo
  • DefNeo
  • 0
Здравствуйте, тоже отправил задачу к весенней стажировке, жду ответа, не можете рассказать как дела с моим решением?
DefNeo
  • DefNeo
  • 0
У меня вопрос по 9 заданию, публикую уж тогда все классы, раз никак не могу найти ошибку
Задание 9
Сегодня мы займемся командой ExitCommand.
1. Реализуйте следующую логику в команде ExitCommand:
1.1. Спросить, действительно ли пользователь хочет выйти — варианты <y,n>.
1.2. Если пользователь подтвердит свои намерения, то попрощаться с ним.

Это всё хорошо, но бывают случаи, когда срочно нужно прервать операцию, например, если пользователь ошибся с выбором операции.
Для этого у нас есть InterruptOperationException.
2.Реализуйте следующую логику:
2.1. Если пользователь в любом месте ввел текст 'EXIT' любым регистром, то выбросить InterruptOperationException.
2.2. Найдите единственное место, куда нужно вставить эту логику. Реализуйте функционал в этом единственном методе.

3. Заверните тело метода main в try-catch и обработайте исключение InterruptOperationException.
Попрощайтесь с пользователем в блоке catch используя ConsoleHelper.


interface Command
{
    void execute();


}


public final class CommandExecutor
{
    private  CommandExecutor()
    {
    }

    private static Map<Operation, Command> myCommands = new HashMap<Operation, Command>();

    static {
        myCommands.put(INFO, new InfoCommand());
        myCommands.put(DEPOSIT, new DepositCommand());
        myCommands.put(EXIT, new ExitCommand());
        myCommands.put(WITHDRAW, new WithdrawCommand());

    }

    public static final void execute(Operation operation){
        myCommands.get(operation).execute();
    }
}


class DepositCommand implements Command
{


    @Override
    public void execute()
    {

            String currencyCode = ConsoleHelper.askCurrencyCode();
            String [] denominations = ConsoleHelper.getValidTwoDigits(currencyCode);
            int denomination = Integer.parseInt(denominations[0]);
            int count = Integer.parseInt(denominations[1]);
            CurrencyManipulator cm = CurrencyManipulatorFactory.getManipulatorByCurrencyCode(currencyCode);
            cm.addAmount(denomination,count);





    }
}


 class ExitCommand implements Command
{


    @Override
    public void execute()
    {
        try{
            ConsoleHelper.writeMessage("Are you sure you to exit? <yes/no>");
            String answer = ConsoleHelper.readString();
            if ("Yes".equalsIgnoreCase(answer.trim()))
                ConsoleHelper.writeMessage("See you later");
            if ("No".equalsIgnoreCase(answer.trim())){
                Operation operation;
                operation = ConsoleHelper.askOperation();
                CommandExecutor.execute(operation);
            }

        }catch (InterruptOperationException e){

        }

    }
}


public class CashMachine
{
    public static void main(String[] args){
        Locale.setDefault(Locale.ENGLISH);
        try {
            Operation operation;
            do {
                operation = ConsoleHelper.askOperation();
                CommandExecutor.execute(operation);
            } while (operation != Operation.EXIT);
        } catch (InterruptOperationException exception) {
            ConsoleHelper.writeMessage("Enjoy yourself");
        }
    }
}


public class ConsoleHelper {

    private static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

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

    public static String readString(){
        String s = null;
        try {
            s = reader.readLine();
            if (s.equalsIgnoreCase("exit"));

        } catch (IOException e) {
            e.printStackTrace();
        }
        return s;
    }

    public static String askCurrencyCode() {
        writeMessage("Entry code of your valute");
        String s = null;
        while (true) {
            try {
                s = readString().trim();
                if (s.length() == 3) {
                    break;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            writeMessage("Sorry but your code is not valid");
        }
        String a = s.toUpperCase();
        return a;
    }

    public static String[] getValidTwoDigits(String currencyCode) {
        writeMessage("Please enter 2 positive integer digits for " + currencyCode);
        String[] temp;
        while (true) {
            try {
                temp = readString().trim().split(" ");
                if (temp.length == 2 && Integer.parseInt(temp[0]) > 0 && Integer.parseInt(temp[1]) > 0) {
                    return temp;
                }
            } catch (Exception e) {
            }
            writeMessage("Entered data is not corrected");
        }
    }

    public static Operation askOperation() throws InterruptOperationException {
        System.out.println("Select the operation: 1 - INFO, 2 - DEPOSIT, 3 - WITHDRAW, 4 - EXIT;");
        Operation operation = null;
        while(operation == null)
        {
            try
            {
                operation = Operation.getAllowableOperationByOrdinal(Integer.parseInt(readString()));
            }
            catch (IllegalArgumentException e)
            {
                operation = null;
                System.out.println("Try again to select the operation: 1 - INFO, 2 - DEPOSIT, 3 - WITHDRAW, 4 - EXIT;");
            }
        }
        return operation;
    }
}


public class CurrencyManipulator
{

    private String currencyCode;
    private Map<Integer, Integer> denominations = new HashMap<>();



    public Map<Integer, Integer> withdrawAmount(int expectedAmount) throws NotEnoughMoneyException
    {
        int sum = expectedAmount;
        HashMap<Integer, Integer> temp = new HashMap<>();
        temp.putAll(denominations);
        ArrayList<Integer> list = new ArrayList<>();
        for (Map.Entry<Integer, Integer> pair : temp.entrySet())
            list.add(pair.getKey());

        Collections.sort(list);
        Collections.reverse(list);

        TreeMap<Integer, Integer> result = new TreeMap<>(new Comparator<Integer>()
        {
            @Override
            public int compare(Integer o1, Integer o2)
            {
                return o2.compareTo(o1);
            }
        });

        for (Integer aList : list) {
            int key = aList;
            int value = temp.get(key);
            while (true) {
                if (sum < key || value <= 0) {
                    temp.put(key, value);
                    break;
                }
                sum -= key;
                value--;

                if (result.containsKey(key))
                    result.put(key, result.get(key) + 1);
                else
                    result.put(key, 1);
            }
        }

        if (sum > 0)
            throw new NotEnoughMoneyException();
        else
        {
            for (Map.Entry<Integer, Integer> pair : result.entrySet())
                ConsoleHelper.writeMessage("\t" + pair.getKey() + " - " + pair.getValue());

            denominations.clear();
            denominations.putAll(temp);
            ConsoleHelper.writeMessage("Transaction was successful!");
        }
        return result;
    }

    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);
    }

    public int getTotalAmount(){
        int result = 0;
        for(Map.Entry<Integer,Integer> pair : denominations.entrySet())
            result = result + (pair.getKey() * pair.getValue());

        return result;
    }

    public boolean hasMoney(){
        return denominations.size() != 0;
    }
}



public final class CurrencyManipulatorFactory
{
   static HashMap<String, CurrencyManipulator> map = new HashMap<>();
   static boolean isExist = false;

   public static CurrencyManipulator getManipulatorByCurrencyCode(String currencyCode)
   {
      isExist = false;
      CurrencyManipulator current;

      if (map.containsKey(currencyCode))
         return map.get(currencyCode);
      else {
         current = new CurrencyManipulator(currencyCode);
         map.put(currencyCode, current);
         return current;
      }
   }

   private CurrencyManipulatorFactory()
   {
   }

   public static Collection<CurrencyManipulator> getAllCurrencyManipulators()
   {
      return map.values();
   }



}

Прошу помощи)
DefNeo
  • DefNeo
  • 0
В каком классе — то хоть была?
DefNeo
  • DefNeo
  • 0
Вот так? У меня все равно не проходит.

 class ExitCommand implements Command
{


    @Override
    public void execute()
    {
        try{
            ConsoleHelper.writeMessage("Are you sure you to exit? <y/n>");
            String answer = ConsoleHelper.readString();
            if ("Y".equalsIgnoreCase(answer.trim()))
                ConsoleHelper.writeMessage("See you later");
            if ("N".equalsIgnoreCase(answer.trim())){
                Operation operation;
                operation = ConsoleHelper.askOperation();
                CommandExecutor.execute(operation);
            }

        }catch (InterruptOperationException e){

        }

    }
DefNeo
  • DefNeo
  • 0
Лучше бы здесь опубликовал
DefNeo
  • DefNeo
  • 0
Спасибо Вам))
DefNeo
  • DefNeo
  • 0
А где там про пейджинг написано? Чего-то не нашел((
DefNeo
  • DefNeo
  • 0
А что с методом main?
DefNeo
  • DefNeo
  • 0
А метод main у тебя такой же остался?
DefNeo
  • DefNeo
  • 0
Не думаю, что все так просто и красиво, есть какая-нибудь обязанность на тебе
DefNeo
  • DefNeo
  • 0
Скорее всего речь идет о директории с файлом))