Advertisement
venik2405

lab4_1

Mar 14th, 2021
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.13 KB | None | 0 0
  1.     private static void deleteComp() {
  2.         System.out.print("\nВведите номер компонента, который хотите удалить: ");
  3.  
  4.         String compNumberStr;
  5.         boolean isIncorrect;
  6.         do {
  7.             isIncorrect = false;
  8.             compNumberStr = lab4_1.scConsole.nextLine();
  9.             if (compNumberStr.equals("")) {
  10.                 isIncorrect = true;
  11.                 System.err.print("Вы не ввели номер компонента. Повторите ввод: ");
  12.             }
  13.  
  14.             try {
  15.                 Integer.parseInt(compNumberStr);
  16.             } catch (Exception var3) {
  17.                 isIncorrect = true;
  18.                 System.err.print("Некорректный ввод. Повторите ввод: ");
  19.             }
  20.  
  21.             if (!isIncorrect && (Integer.parseInt(compNumberStr) > compList.size() ||        
  22.                 Integer.parseInt(compNumberStr) <= 0)) {
  23.                 isIncorrect = true;
  24.                 System.err.print("Компонента с таким номером не существет. Повторите ввод: ");
  25.             }
  26.         } while (isIncorrect);
  27.  
  28.         compList.remove(Integer.parseInt(compNumberStr) - 1);
  29.         System.out.println("Компонент под номером " + compNumberStr + " успешно удалён.");
  30.     }
  31.     private static void editComp() {
  32.         System.out.print("\nВведите номер компонента, который хотите отредактировать: ");
  33.  
  34.         String compNumberStr;
  35.         boolean isIncorrect;
  36.         do {
  37.             isIncorrect = false;
  38.             compNumberStr = lab4_1.scConsole.nextLine();
  39.             if (compNumberStr.equals("")) {
  40.                 isIncorrect = true;
  41.                 System.err.print("Вы не ввели номер компонента. Повторите ввод: ");
  42.             }
  43.  
  44.             try {
  45.                 Integer.parseInt(compNumberStr);
  46.             } catch (Exception var3) {
  47.                 isIncorrect = true;
  48.                 System.err.print("Некорректный ввод. Повторите ввод: ");
  49.             }
  50.  
  51.             if (!isIncorrect && (Integer.parseInt(compNumberStr) > compList.size() ||
  52.                 Integer.parseInt(compNumberStr) <= 0)) {
  53.                 isIncorrect = true;
  54.                 System.err.print("Компонента с таким номером не существует. Повторите ввод: ");
  55.             }
  56.         } while (isIncorrect);
  57.  
  58.         ((Comp) compList.get(Integer.parseInt(compNumberStr) - 1)).edit();
  59.         System.out.println("\nКомпонент под номером " + compNumberStr + " успешно
  60.            отредактирован.");
  61.     }
  62.  
  63.     public void showSortedComponents() {
  64.         for (int i = 0; i < compList.size(); i++) {
  65.             if (compList.get(i).warranty() > 2) {
  66.                 compList.remove(i);
  67.             }
  68.         }
  69.         compList.sort(Comparator.comparing((t) -> t.price()));
  70.         if (compList.size() == 0) {
  71.             System.out.println("Все комплектующие были удалены.");
  72.         } else {
  73.             showList();
  74.         }
  75.     }
  76.  
  77.     private static String getNameFromConsole() {
  78.         System.out.print("\nВведите название компонента(до 30 символов): ");
  79.  
  80.         boolean isIncorrect;
  81.         String nameStr;
  82.         do {
  83.             isIncorrect = false;
  84.             nameStr = lab4_1.scConsole.nextLine();
  85.             if (nameStr.equals("")) {
  86.                 System.err.print("Вы не ввели название компонента. Повторите ввод: ");
  87.                 isIncorrect = true;
  88.             }
  89.  
  90.             if (!isIncorrect && nameStr.length() > 30) {
  91.                 System.err.print("Длина названия должна быть до 30 символов. Повторите ввод: ");
  92.                 isIncorrect = true;
  93.             }
  94.         } while(isIncorrect);
  95.  
  96.         return nameStr;
  97.     }
  98.  
  99.     public Comp(String name, String manufacturer, String mainChar, double warranty, double price)    
  100.     {
  101.         this.name = name;
  102.         this.manufacturer = manufacturer;
  103.         this.mainChar = mainChar;
  104.         this.warranty = warranty;
  105.         this.price = price;
  106.     }
  107.  
  108.     public static void main(String[] args) {
  109.         scConsole = new Scanner(System.in);
  110.         System.out.println("Информация об ассортименте комплектующих компьютера.");
  111.         mainMenu();
  112.         scConsole.close();
  113.     }
  114.  
  115.     public CompList() {
  116.         compList = new ArrayList();
  117.         needSave = true;
  118.         savePath = "";
  119.     }
  120.  
  121.     public CompList(String path) {
  122.         compList = new ArrayList();
  123.         needSave = false;
  124.         savePath = path;
  125.     }
  126.  
  127.     private static void showList() {
  128.         System.out.println("\nСписок компонентов");
  129.         System.out.printf("%4s%-35s%-15s%-15s%-10s%-2s%n", "№", "| Название", "| Производитель",
  130.             "| Харктеристика", "| Гарантия", "| Цена", "|");
  131.         System.out.println("----|----------------------------------|--------------|--------------
  132.            |---------|-------|");
  133.  
  134.         for (Comp comp : compList) {
  135.             PrintStream var10000 = System.out;
  136.             Object[] var10002 = new Object[]{compList.indexOf(comp) + 1, "| " + comp.name(), "| "
  137.                 + comp.manufacturer(), "| " + comp.mainChar(), "| " + comp.warranty(), "| " +
  138.                 comp.price(), null, null};
  139.             var10000.printf("%4s%-35s%-15s%-15s%-10s%-2s%n", var10002);
  140.             System.out.println("----|----------------------------------|--------------|----------
  141.                 ----|---------|-------|");
  142.         }
  143.     }
  144.  
  145.     private static void sortCompMenu() {
  146.         System.out.println("\nСортировать по:");
  147.         System.out.println("1. Названию (в алфавитном порядке).");
  148.         System.out.println("2. Производителю (в алфавитном порядке).");
  149.         System.out.println("3. Главной характеристике (в алфавитном порядке).");
  150.         System.out.println("4. Размеру гарантии (по убыванию).");
  151.         System.out.println("5. Цене (по убыванию).");
  152.         String answerStr = "";
  153.  
  154.         boolean isIncorrect;
  155.         do {
  156.             isIncorrect = false;
  157.             answerStr = lab4_1.scConsole.nextLine();
  158.             if (!answerStr.equals("1") && !answerStr.equals("2") && !answerStr.equals("3") &&
  159.                    !answerStr.equals("4") && !answerStr.equals("5")) {
  160.                 isIncorrect = true;
  161.                 System.err.print("Неверный ввод. Пожалуйста, повторите выбор: ");
  162.             }
  163.         } while (isIncorrect);
  164.  
  165.         sortComp(answerStr);
  166.         System.out.println("Игрушки успешно отсортированы.");
  167.     }
  168.  
  169.     private static void saveToFile() {
  170.         File fileOfRecords = new File(savePath);
  171.  
  172.         try {
  173.             BufferedWriter writer = new BufferedWriter(new FileWriter(fileOfRecords));
  174.  
  175.             try {
  176.                 writer.append(String.valueOf(compList.size())).append("\n");
  177.                 Iterator var2 = compList.iterator();
  178.  
  179.                 while (var2.hasNext()) {
  180.                     Comp comp = (Comp) var2.next();
  181.                     writer.append(comp.name()).append("\n");
  182.                     writer.append(comp.manufacturer()).append("\n");
  183.                     writer.append(comp.mainChar()).append("\n");
  184.                     writer.append(String.valueOf(comp.warranty())).append("\n");
  185.                     writer.append(String.valueOf(comp.price())).append("\n");
  186.                 }
  187.             } catch (Throwable var5) {
  188.                 try {
  189.                     writer.close();
  190.                 } catch (Throwable var4) {
  191.                     var5.addSuppressed(var4);
  192.                 }
  193.                 throw var5;
  194.             }
  195.             writer.close();
  196.         } catch (IOException var6) {
  197.             savePath = "";
  198.             System.err.println("Файл не найден или открыт в режиме \"Только для чтения\"");
  199.         }
  200.         System.out.println("\nДанные успешно сохранены.");
  201.         needSave = false;
  202.     }
  203.  
  204.  
  205.     private static boolean checkData(String name, String price, String count, String minAge,
  206.           String maxAge) {
  207.         boolean isCorrect = true;
  208.  
  209.         try {
  210.             if (name.equals("")) {
  211.                 isCorrect = false;
  212.             }
  213.  
  214.             if (isCorrect && name.length() > 30) {
  215.                 isCorrect = false;
  216.             }
  217.  
  218.             String pricePattern = "^(\\d){1,4}(\\.\\d{1,2})?$";
  219.             if (isCorrect && price.equals("")) {
  220.                 isCorrect = false;
  221.             }
  222.  
  223.             if (isCorrect && !price.matches(pricePattern)) {
  224.                 isCorrect = false;
  225.             }
  226.  
  227.             if (isCorrect && Double.parseDouble(price) < 0.01D) {
  228.                 isCorrect = false;
  229.             }
  230.  
  231.             String countPattern = "^\\d{1,5}$";
  232.             if (count.equals("")) {
  233.                 isCorrect = false;
  234.             }
  235.  
  236.             if (isCorrect && !count.matches(countPattern)) {
  237.                 isCorrect = false;
  238.             }
  239.  
  240.             String agePattern = "^\\d{1,2}$";
  241.             if (minAge.equals("") || maxAge.equals("")) {
  242.                 isCorrect = false;
  243.             }
  244.  
  245.             if (isCorrect && !minAge.matches(agePattern) || !maxAge.matches(agePattern)) {
  246.                 isCorrect = false;
  247.             }
  248.  
  249.             if (isCorrect && Byte.parseByte(minAge) > 98 || Byte.parseByte(maxAge) > 99 ||
  250.                      Byte.parseByte(minAge) > Byte.parseByte(maxAge)) {
  251.                 isCorrect = false;
  252.             }
  253.         } catch (Exception var9) {
  254.             isCorrect = false;
  255.         }
  256.  
  257.         return isCorrect;
  258.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement