Advertisement
jaVer404

level18.lesson10.bonus02(from scratch)_beta2

Jan 27th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.90 KB | None | 0 0
  1. package com.javarush.test.level18.lesson10.bonus02;
  2.  
  3. /* Прайсы
  4. CrUD для таблицы внутри файла
  5. Считать с консоли имя файла для операций CrUD
  6. Программа запускается со следующим набором параметров:
  7. -c productName price quantity
  8.  
  9. Значения параметров:
  10. где id - 8 символов
  11. productName - название товара, 30 chars (60 bytes)
  12. price - цена, 8 символов
  13. quantity - количество, 4 символа
  14. -c  - добавляет товар с заданными параметрами в конец файла,
  15. генерирует id самостоятельно,
  16. инкрементируя максимальный id, найденный в файле
  17.  
  18. В файле данные хранятся в следующей последовательности (без разделяющих пробелов):
  19. id productName price quantity
  20. Данные дополнены пробелами до их длины
  21.  
  22. Пример:
  23. 19846   Шорты пляжные синие           159.00  12
  24. 198478  Шорты пляжные черные с рисунко173.00  17
  25. 19847983Куртка для сноубордистов, разм10173.991234
  26. */
  27.  
  28. import java.math.RoundingMode;
  29. import java.text.DecimalFormat;
  30.  
  31. public class Solution {
  32.     public static void main(String[] args) throws Exception {
  33.         roudTo2digits("26.8989849866");
  34.  
  35.         if(matchRules(args)){
  36.             /*If true MAGIC HAPPENS HERE*/
  37.  
  38.         }
  39.     }
  40.  
  41. /**
  42.  * Проверяем значение (число/не число)*/
  43.     public static boolean isNumber(String some) {
  44.         try {
  45.             Double.parseDouble(some);
  46.             return true;
  47.         }
  48.         catch (Exception e) {
  49.             return false;
  50.         }
  51.     }
  52. /*----------------------------------*/
  53.  /**    Программа запускается со следующим набором параметров:
  54.   * !!!!Тогда с другими запускатся не должна
  55.      -c productName price quantity
  56.      !!! должно быть не меньше 4 параметров
  57.      !!! первый параметр должен быть "-c"
  58.      !!!последние два должны быть номерами
  59.      */
  60.    public static boolean matchRules (String[]param) {
  61.        if(/*List of Rules*/
  62.           param[0].equals("-c")
  63.           && param.length>=4
  64.           && isNumber(param[(param.length)-1])
  65.           &&isNumber(param[(param.length)-2])) {
  66.           return true;
  67.        }
  68.        else
  69.           return false;
  70.    }
  71. /**
  72.  * Возращает строку в 30 знаков в длину
  73.  * даже если там изначально было 3
  74.  * ----------------------------------*/
  75. public static String formNewProdName (String input){
  76.     char[]spaceArray = new char[30];
  77.     for (int i = 0; i<30;i++) {
  78.         spaceArray[i]=' ';
  79.     }
  80.     char[]myProdN = input.toCharArray();
  81.     for (int i = 0; i < myProdN.length; i++) {
  82.         spaceArray[i] = myProdN[i];
  83.     }
  84.     return new String(spaceArray);
  85. }
  86. /*----------------------------------*/
  87. /**
  88.  * Возвращает цену в 8 знаков
  89.  * даже если там было 3 зн.
  90.  * */
  91. public static String formNewPrice (String input){
  92.     char[]spaceArray = new char[8];
  93.     for (int i = 0; i<8;i++) {
  94.         spaceArray[i]=' ';
  95.     }
  96.     char[]myProdN = input.toCharArray();
  97.     for (int b = 0; b < myProdN.length; b++) {
  98.         spaceArray[b] = myProdN[b];
  99.     }
  100.     return new String(spaceArray);
  101. }
  102.  
  103. /**
  104.  *
  105.  */
  106.  public static void roudTo2digits (String digits) {
  107.      DecimalFormat df = new DecimalFormat("#.##");
  108.      Double myDouble = Double.parseDouble(digits);
  109.      df.setRoundingMode(RoundingMode.CEILING);
  110.      System.out.println((df.format(myDouble)));
  111.  
  112.  }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement