Advertisement
MaksNew

Untitled

Feb 2nd, 2021
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 27.86 KB | None | 0 0
  1. package BLOCK41DEMO;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.Scanner;
  5. import java.io.*;
  6. import java.io.File;
  7. import java.io.IOException;
  8. public class Main {
  9.     record Worker(String name, int detailsInMonday, int detailsInTuesday, int detailsInWednesday, int detailsInThursday, int detailsInFriday, int detailsInSaturday) implements Serializable{}
  10.     static Scanner scan = new Scanner(System.in);
  11.     static int bufIndex;
  12.  
  13.     static String getName(){
  14.         System.out.println("Введи имя рабочего:");
  15.         return scan.nextLine();
  16.     }
  17.  
  18.     static int getDetailsInSomeDay(String day){
  19.         boolean isIncorrect;
  20.         int detailsInDay;
  21.         detailsInDay = 0;
  22.         do {
  23.             System.out.println("Введи количество деталей за " + day + " :");
  24.             isIncorrect = false;
  25.             try {
  26.                 detailsInDay = Integer.parseInt(scan.nextLine());
  27.             } catch (Exception e) {
  28.                 isIncorrect = true;
  29.                 System.out.println("Введите число!.");
  30.             }
  31.             if ((((detailsInDay < 0) || (detailsInDay > 1000000000))) && !isIncorrect) {
  32.                 System.out.println("Количество деталей должно быть в диапазоне от 0 до 1000000000");
  33.                 isIncorrect = true;
  34.             }
  35.         } while (isIncorrect);
  36.         return detailsInDay;
  37.     }
  38.  
  39.     static int enterSizeOfArray(){
  40.         int sizeOfArray;
  41.         sizeOfArray = 0;
  42.         boolean isIncorrect;
  43.         do {
  44.             System.out.println("Введите количество рабочих: ");
  45.             isIncorrect = false;
  46.             try {
  47.                 sizeOfArray = Integer.parseInt(scan.nextLine());
  48.             } catch (Exception e) {
  49.                 isIncorrect = true;
  50.                 System.out.println("Количество рабочих должно быть числом.");
  51.             }
  52.             if ((((sizeOfArray < 1) || (sizeOfArray > 10000))) && !isIncorrect) {
  53.                 System.out.println("Количество рабочих должно быть в диапазоне от 1 до 10000");
  54.                 isIncorrect = true;
  55.             }
  56.         } while (isIncorrect);
  57.         return sizeOfArray;
  58.     }
  59.  
  60.     static void createArrayOfRecordsFromConsole() throws IOException, ClassNotFoundException {
  61.         int sizeOfArray;
  62.         sizeOfArray = enterSizeOfArray();
  63.         Worker[] worker = new Worker[sizeOfArray];
  64.         for(int i = 0; i < sizeOfArray; ++i){
  65.             worker[i] = new Worker (getName(), getDetailsInSomeDay("понедельник"), getDetailsInSomeDay("вторник"), getDetailsInSomeDay("среду"), getDetailsInSomeDay("четверг"), getDetailsInSomeDay("пятницу"), getDetailsInSomeDay("субботу"));
  66.         }
  67.         writeArrayOfRecords(worker);
  68.     }
  69.  
  70.     static void writeArrayOfRecordsToFile(Worker[] worker) throws IOException, ClassNotFoundException {
  71.         String path;
  72.         path = readPath();
  73.         FileOutputStream fos = new FileOutputStream(path);
  74.         ObjectOutputStream oos = new ObjectOutputStream(fos);
  75.         oos.writeObject(worker);
  76.         System.out.println("Файл успешно сохранён!");
  77.         oos.close();
  78.         fos.close();
  79.         writeArrayOfRecords(worker);
  80.     }
  81.  
  82.     static String readPath(){
  83.         String path;
  84.         boolean isIncorrect;
  85.         isIncorrect = true;
  86.         do {
  87.             System.out.println("Введите абсолютный путь к файлу ");
  88.             path = scan.nextLine();
  89.             File fileOfRecords = new File(path);
  90.             if (!fileOfRecords.exists()) {
  91.                 System.out.println("Файл не найден");
  92.             }
  93.             else {
  94.                 isIncorrect = false;
  95.             }
  96.         } while (isIncorrect);
  97.         return path;
  98.     }
  99.  
  100.     static void readArrayOfRecordsFromFile() throws IOException, ClassNotFoundException {
  101.         boolean isIncorrect;
  102.         String path;
  103.         FileInputStream fis = null;
  104.         ObjectInputStream ois = null;
  105.         do {
  106.             isIncorrect = false;
  107.             try {
  108.                 path = readPath();
  109.                 fis = new FileInputStream(path);
  110.                 ois = new ObjectInputStream(fis);
  111.             }catch (Exception e){
  112.                 System.out.println("Ошибка! Проверьте файл!");
  113.                 isIncorrect = true;
  114.             }
  115.         }while(isIncorrect);
  116.         Worker[] worker = (Worker[])ois.readObject();
  117.         fis.close();
  118.         ois.close();
  119.         writeArrayOfRecords(worker);
  120.     }
  121.  
  122.     static int readMenuOf3Item() {
  123.         int menuItem;
  124.         menuItem = 0;
  125.         boolean isIncorrect;
  126.         do {
  127.             isIncorrect = false;
  128.             try{
  129.                 menuItem = Integer.parseInt(scan.nextLine());
  130.             } catch (Exception e) {
  131.                 System.out.println("Введите число!");
  132.                 isIncorrect = true;
  133.             }
  134.             if ((menuItem != 1) && (menuItem != 2) && (menuItem != 3)) {
  135.                 System.out.println("Введите одно из предложенных чисел!");
  136.                 isIncorrect = true;
  137.             }
  138.         }while(isIncorrect);
  139.         return menuItem;
  140.     }
  141.  
  142.     static void showWorkerAndDetailsOnWeek(Worker[] worker) {
  143.         searchingWorker(worker);
  144.         int sum;
  145.         sum = worker[bufIndex].detailsInMonday + worker[bufIndex].detailsInTuesday + worker[bufIndex].detailsInWednesday + worker[bufIndex].detailsInThursday + worker[bufIndex].detailsInFriday + worker[bufIndex].detailsInSaturday;
  146.         System.out.println(worker[bufIndex].name + " собрал " + sum + " деталей за шестидневную неделю.");
  147.     }
  148.  
  149.     static void searchingWorker(Worker[] worker) {
  150.         boolean isNotFind;
  151.         int i;
  152.         String userWorker;
  153.         System.out.println("Введите фамилию рабочего:");
  154.         do{
  155.             isNotFind = true;
  156.             userWorker = scan.nextLine();
  157.             i = 0;
  158.             while((i < worker.length) && (isNotFind)){
  159.                 if (userWorker.equals(worker[i].name)) {
  160.                     bufIndex = i;
  161.                     isNotFind = false;
  162.                 }
  163.                 ++i;
  164.             }
  165.             if (isNotFind)
  166.                 System.out.println("Рабочий с такой фамилией не найден! Введите другую фамилию!");
  167.         }while(isNotFind);
  168.     }
  169.  
  170.     static void showBestWorker(Worker[] worker) {
  171.         int maxPerformance;
  172.         String bestDay;
  173.         String bestWorkman;
  174.         int bufIndex;
  175.         int index;
  176.         maxPerformance = 0;
  177.         bufIndex = 0;
  178.         bestWorkman = "";
  179.         int[] ArrayOfSumOfProducts = new int[worker.length];
  180.         for (int i = 0; i < worker.length; ++i){
  181.             ArrayOfSumOfProducts[i] = worker[i].detailsInMonday + worker[i].detailsInTuesday + worker[i].detailsInWednesday + worker[i].detailsInThursday + worker[i].detailsInFriday + worker[i].detailsInSaturday;
  182.         }
  183.         for (int i = 1; i < worker.length; ++i){
  184.             if ((ArrayOfSumOfProducts[i-1] > ArrayOfSumOfProducts[i]) && (ArrayOfSumOfProducts[i-1] > maxPerformance)){
  185.                 bestWorkman = worker[i-1].name;
  186.                 maxPerformance = ArrayOfSumOfProducts[i-1];
  187.                 bufIndex = i - 1;
  188.             }
  189.         }
  190.         if (worker[bufIndex].detailsInMonday > worker[bufIndex].detailsInTuesday){
  191.             bestDay = "Понедельник";
  192.             index = worker[bufIndex].detailsInMonday;
  193.         }else{
  194.             bestDay = "Вторник";
  195.             index = worker[bufIndex].detailsInTuesday;
  196.         }
  197.         if (index < worker[bufIndex].detailsInWednesday){
  198.             bestDay = "Среда";
  199.             index = worker[bufIndex].detailsInTuesday;
  200.         }
  201.         if (index < worker[bufIndex].detailsInThursday){
  202.             bestDay = "Четверг";
  203.             index = worker[bufIndex].detailsInThursday;
  204.         }
  205.         if (index < worker[bufIndex].detailsInFriday) {
  206.             bestDay = "Пятница";
  207.             index = worker[bufIndex].detailsInFriday;
  208.         }
  209.         if (index < worker[bufIndex].detailsInSaturday) {
  210.             bestDay = "Суббота";
  211.         }
  212.         System.out.println("Сборщик-рекордсмен - " + bestWorkman + ". Он собрал " + maxPerformance + " деталей за неделю! День высшей производительности: "+ bestDay);
  213.     }
  214.  
  215.     static void selectMenuOfOutputItem(int menuItem, Worker[] worker) throws IOException, ClassNotFoundException {
  216.         switch (menuItem) {
  217.             case 1 -> showWorkerAndDetailsOnWeek(worker);
  218.             case 2 -> showBestWorker(worker);
  219.             case 3 -> showMenu(worker);
  220.         }
  221.     }
  222.  
  223.     static void showMenuOfOutput(Worker[] worker) throws IOException, ClassNotFoundException {
  224.         System.out.println("Выберете один из пунктов меню для продолжения:");
  225.         System.out.println("1. Сборщик и детали за неделю.");
  226.         System.out.println("2. Сборщик-рекордсмен.");
  227.         System.out.println("3. Назад.");
  228.         int menuItem;
  229.         menuItem = readMenuOf4Item();
  230.         selectMenuOfOutputItem(menuItem, worker);
  231.     }
  232.  
  233.     static int readIndex(int maxIndex)
  234.     {
  235.         int index;
  236.         index = 0;
  237.         boolean IsNotCorrect;
  238.         do {
  239.             System.out.println("Введите индекс поля, с которым нужно совершить выбранное действие: ");
  240.             IsNotCorrect = false;
  241.             try {
  242.                 index = Integer.parseInt(scan.nextLine());
  243.             } catch (Exception e) {
  244.                 IsNotCorrect = true;
  245.                 System.out.println("Введите целое число!");
  246.             }
  247.             if ((((index < 1) || (index > maxIndex+1))) && !IsNotCorrect) {
  248.                 System.out.println("Индекс должен находится в преедлах от 0 до количество элементов записи!");
  249.                 IsNotCorrect = true;
  250.             }
  251.         } while (IsNotCorrect);
  252.         return index-1;
  253.     }
  254.  
  255.     static void changeRecordField(Worker[] worker) throws IOException, ClassNotFoundException {
  256.         int index;
  257.         index = readIndex(worker.length);
  258.         worker[index] = new Worker (getName(), getDetailsInSomeDay("понедельник"), getDetailsInSomeDay("вторник"), getDetailsInSomeDay("среду"), getDetailsInSomeDay("четверг"), getDetailsInSomeDay("пятницу"), getDetailsInSomeDay("субботу"));
  259.         writeArrayOfRecords(worker);
  260.     }
  261.  
  262.     static void addRecordField(Worker[] worker) throws IOException, ClassNotFoundException {
  263.         ArrayList<Worker> workerArrayList = new ArrayList<>();
  264.         Collections.addAll(workerArrayList, worker);
  265.         Worker workman = new Worker (getName(), getDetailsInSomeDay("понедельник"), getDetailsInSomeDay("вторник"), getDetailsInSomeDay("среду"), getDetailsInSomeDay("четверг"), getDetailsInSomeDay("пятницу"), getDetailsInSomeDay("субботу"));
  266.         workerArrayList.add(workman);
  267.         worker = workerArrayList.toArray(new Worker[workerArrayList.size()]);
  268.         writeArrayOfRecords(worker);
  269.     }
  270.  
  271.     static void deleteRecordField(Worker[] worker) throws IOException, ClassNotFoundException {
  272.         ArrayList<Worker> workerArrayList = new ArrayList<>();
  273.         Collections.addAll(workerArrayList, worker);
  274.         int index = readIndex(worker.length);
  275.         workerArrayList.remove(index);
  276.         worker = workerArrayList.toArray(new Worker[workerArrayList.size()]);
  277.         writeArrayOfRecords(worker);
  278.     }
  279.  
  280.     static boolean isChangeDataCorrect(int maxIndex, String path) throws IOException {
  281.         int index;
  282.         index = 0;
  283.         boolean isCorrect;
  284.         FileReader fread = new FileReader(path);
  285.         Scanner fscan = new Scanner(fread);
  286.         isCorrect = true;
  287.         while(fscan.hasNextLine() && isCorrect) {
  288.             try {
  289.                 index = Integer.parseInt(fscan.nextLine());
  290.             } catch (Exception e) {
  291.                 isCorrect = false;
  292.             }
  293.             if ((((index < 1) || (index > maxIndex + 1))) && isCorrect) {
  294.                 isCorrect = false;
  295.             }
  296.             fscan.nextLine();
  297.             int i = 0;
  298.             while (i < 6 && isCorrect) {
  299.                 try {
  300.                     index = Integer.parseInt(fscan.nextLine());
  301.                 } catch (Exception e) {
  302.                     isCorrect = false;
  303.                 }
  304.                 ++i;
  305.             }
  306.         }
  307.         fread.close();
  308.         return isCorrect;
  309.     }
  310.  
  311.     static void changeRecordFieldByFile(Worker[] worker) throws IOException, ClassNotFoundException {
  312.         int index;
  313.         String path = readPath();
  314.         if (isChangeDataCorrect(worker.length, path)) {
  315.             String nameOfWorker;
  316.             int quantityOfDetailsOnMonday;
  317.             int quantityOfDetailsOnTuesday;
  318.             int quantityOfDetailsOnWednesday;
  319.             int quantityOfDetailsOnThursday;
  320.             int quantityOfDetailsOnFriday;
  321.             int quantityOfDetailsOnSaturday;
  322.             FileReader fread = new FileReader(path);
  323.             Scanner fscan = new Scanner(fread);
  324.             while(fscan.hasNextLine()) {
  325.                 index = Integer.parseInt(fscan.nextLine());
  326.                 --index;
  327.                 nameOfWorker = fscan.nextLine();
  328.                 quantityOfDetailsOnMonday = Integer.parseInt(fscan.nextLine());
  329.                 quantityOfDetailsOnTuesday = Integer.parseInt(fscan.nextLine());
  330.                 quantityOfDetailsOnWednesday = Integer.parseInt(fscan.nextLine());
  331.                 quantityOfDetailsOnThursday = Integer.parseInt(fscan.nextLine());
  332.                 quantityOfDetailsOnFriday = Integer.parseInt(fscan.nextLine());
  333.                 quantityOfDetailsOnSaturday = Integer.parseInt(fscan.nextLine());
  334.                 worker[index] = new Worker(nameOfWorker, quantityOfDetailsOnMonday, quantityOfDetailsOnTuesday, quantityOfDetailsOnWednesday, quantityOfDetailsOnThursday, quantityOfDetailsOnFriday, quantityOfDetailsOnSaturday);
  335.             }
  336.             writeArrayOfRecords(worker);
  337.         }else{
  338.             System.out.println("Ошибка чтения! Проверьте файл!");
  339.         }
  340.         writeArrayOfRecords(worker);
  341.     }
  342.  
  343.     static boolean isAddDataCorrect(String path) throws IOException {
  344.         boolean isCorrect;
  345.         int i;
  346.         FileReader fread = new FileReader(path);
  347.         Scanner fscan = new Scanner(fread);
  348.         isCorrect = true;
  349.         while(fscan.hasNextLine() && isCorrect) {
  350.             fscan.nextLine();
  351.             i = 0;
  352.             while (i < 6 && isCorrect) {
  353.                 try {
  354.                     Integer.parseInt(fscan.nextLine());
  355.                 }catch (Exception e) {
  356.                     isCorrect = false;
  357.                 }
  358.                 ++i;
  359.             }
  360.         }
  361.         fread.close();
  362.         return isCorrect;
  363.     }
  364.  
  365.     static void addRecordFieldByFile(Worker[] worker) throws IOException, ClassNotFoundException {
  366.         String path = readPath();
  367.         if (isAddDataCorrect(path)) {
  368.             String nameOfWorker;
  369.             int quantityOfDetailsOnMonday;
  370.             int quantityOfDetailsOnTuesday;
  371.             int quantityOfDetailsOnWednesday;
  372.             int quantityOfDetailsOnThursday;
  373.             int quantityOfDetailsOnFriday;
  374.             int quantityOfDetailsOnSaturday;
  375.             FileReader fread = new FileReader(path);
  376.             Scanner fscan = new Scanner(fread);
  377.             ArrayList<Worker> workerArrayList = new ArrayList<>();
  378.             Collections.addAll(workerArrayList, worker);
  379.             while(fscan.hasNextLine()) {
  380.                 nameOfWorker = fscan.nextLine();
  381.                 quantityOfDetailsOnMonday = Integer.parseInt(fscan.nextLine());
  382.                 quantityOfDetailsOnTuesday = Integer.parseInt(fscan.nextLine());
  383.                 quantityOfDetailsOnWednesday = Integer.parseInt(fscan.nextLine());
  384.                 quantityOfDetailsOnThursday = Integer.parseInt(fscan.nextLine());
  385.                 quantityOfDetailsOnFriday = Integer.parseInt(fscan.nextLine());
  386.                 quantityOfDetailsOnSaturday = Integer.parseInt(fscan.nextLine());
  387.                 Worker workman = new Worker(nameOfWorker, quantityOfDetailsOnMonday, quantityOfDetailsOnTuesday, quantityOfDetailsOnWednesday, quantityOfDetailsOnThursday, quantityOfDetailsOnFriday, quantityOfDetailsOnSaturday);
  388.                 workerArrayList.add(workman);
  389.                 worker = workerArrayList.toArray(new Worker[workerArrayList.size()]);
  390.             }
  391.         }else{
  392.             System.out.println("Ошибка чтения! Проверьте файл!");
  393.         }
  394.             writeArrayOfRecords(worker);
  395.     }
  396.  
  397.     static boolean isDeleteDataCorrect(int maxIndex, String path) throws IOException {
  398.         boolean isCorrect;
  399.         int deleteIndex;
  400.         FileReader fread = new FileReader(path);
  401.         Scanner fscan = new Scanner(fread);
  402.         isCorrect = true;
  403.         deleteIndex = 0;
  404.         while(fscan.hasNextLine() && isCorrect) {
  405.             try {
  406.                 deleteIndex = Integer.parseInt(fscan.nextLine());
  407.             } catch (Exception e) {
  408.                 isCorrect = false;
  409.             }
  410.             if ((((deleteIndex < 1) || (deleteIndex > maxIndex+1))) && isCorrect)
  411.                 isCorrect = false;
  412.         }
  413.         fread.close();
  414.         return isCorrect;
  415.     }
  416.  
  417.     static void deleteRecordFieldByFile(Worker[] worker) throws IOException, ClassNotFoundException {
  418.         String path = readPath();
  419.         if (isDeleteDataCorrect(worker.length, path)) {
  420.             FileReader fread = new FileReader(path);
  421.             Scanner fscan = new Scanner(fread);
  422.             int deleteIndex;
  423.             int i;
  424.             ArrayList<Worker> workerArrayList = new ArrayList<>();
  425.             Collections.addAll(workerArrayList, worker);
  426.             i = 0;
  427.             while(fscan.hasNextLine()) {
  428.                 deleteIndex = Integer.parseInt(fscan.nextLine());
  429.                 if (i>0)
  430.                     deleteIndex = deleteIndex - i;
  431.                 workerArrayList.remove(deleteIndex-1);
  432.                 worker = workerArrayList.toArray(new Worker[workerArrayList.size()]);
  433.                 ++i;
  434.             }
  435.         }else {
  436.             System.out.println("Ошибка чтения! Проверьте файл!");
  437.         }
  438.         writeArrayOfRecords(worker);
  439.     }
  440.  
  441.     static void selectMenuOfChangingManuallyItem(int menuItem, Worker[] worker) throws IOException, ClassNotFoundException {
  442.         switch (menuItem) {
  443.             case 1 -> changeRecordField(worker);
  444.             case 2 -> addRecordField(worker);
  445.             case 3 -> deleteRecordField(worker);
  446.             case 4 -> showMenuOfChanging(worker);
  447.         }
  448.     }
  449.  
  450.     static void showMenuOfChangingManually(Worker[] worker) throws IOException, ClassNotFoundException {
  451.         int menuItem;
  452.         System.out.println("Выберете один из пунктов меню для продолжения:");
  453.         System.out.println("1. Изменить.");
  454.         System.out.println("2. Добавить.");
  455.         System.out.println("3. Удалить.");
  456.         System.out.println("4. Назад.");
  457.         menuItem = readMenuOf3Item();
  458.         selectMenuOfChangingManuallyItem(menuItem, worker);
  459.     }
  460.  
  461.     static void selectMenuOfChangingByFileItem(int menuItem, Worker[] worker) throws IOException, ClassNotFoundException {
  462.         switch (menuItem) {
  463.             case 1 -> changeRecordFieldByFile(worker);
  464.             case 2 -> addRecordFieldByFile(worker);
  465.             case 3 -> deleteRecordFieldByFile(worker);
  466.             case 4 -> showMenuOfChanging(worker);
  467.         }
  468.     }
  469.  
  470.     static void showMenuOfChangingByFile(Worker[] worker) throws IOException, ClassNotFoundException {
  471.         int menuItem;
  472.         System.out.println("Выберете один из пунктов меню для продолжения:");
  473.         System.out.println("1. Изменить.");
  474.         System.out.println("2. Добавить.");
  475.         System.out.println("3. Удалить.");
  476.         System.out.println("4. Назад.");
  477.         menuItem = readMenuOf4Item();
  478.         selectMenuOfChangingByFileItem(menuItem, worker);
  479.     }
  480.  
  481.     static void selectMenuOfChangingItem(int menuItem, Worker[] worker) throws IOException, ClassNotFoundException {
  482.         switch (menuItem) {
  483.             case 1 -> showMenuOfChangingManually(worker);
  484.             case 2 -> showMenuOfChangingByFile(worker);
  485.             case 3 -> showMenu(worker);
  486.         }
  487.     }
  488.  
  489.     static void showMenuOfChanging(Worker[] worker) throws IOException, ClassNotFoundException {
  490.         int menuItem;
  491.         System.out.println("Выберете один из пунктов меню для продолжения:");
  492.         System.out.println("1. Вручную.");
  493.         System.out.println("2. С помощью файла.");
  494.         System.out.println("3. Назад.");
  495.         menuItem = readMenuOf4Item();
  496.         selectMenuOfChangingItem(menuItem, worker);
  497.     }
  498.  
  499.     static void selectMenuItem(int menuItem, Worker[] worker) throws IOException, ClassNotFoundException {
  500.         switch (menuItem) {
  501.             case 1 -> showMenuOfOutput(worker);
  502.             case 2 -> showMenuOfChanging(worker);
  503.             case 3 -> writeArrayOfRecordsToFile(worker);
  504.             case 4 -> showMainMenu();
  505.         }
  506.     }
  507.  
  508.     static void showMenu(Worker[] bufRecord) throws IOException, ClassNotFoundException {
  509.         int menuItem;
  510.         System.out.println("Выберете один из пунктов меню для продолжения:");
  511.         System.out.println("1. Вывести.");
  512.         System.out.println("2. Корректировка записей.");
  513.         System.out.println("3. Сохранить таблицу в файл.");
  514.         System.out.println("4. Назад.");
  515.         menuItem = readMenuOf4Item();
  516.         selectMenuItem(menuItem, bufRecord);
  517.     }
  518.  
  519.     static void writeArrayOfRecords(Worker[] bufRecord) throws IOException, ClassNotFoundException {
  520.         System.out.println("№"+" "+"Фамилия"+" "+"Понедельник"+" "+"Вторник"+" "+"Среда"+" "+"Четверг"+" "+"Пятница"+" "+"Суббота");
  521.         for (int i = 0; i < bufRecord.length; ++i) {
  522.             System.out.println((i+1) +" "+bufRecord[i].name +"\t\t"+ bufRecord[i].detailsInMonday +"\t\t\t"+ bufRecord[i].detailsInTuesday +"\t\t"+ bufRecord[i].detailsInWednesday +"\t\t"+ bufRecord[i].detailsInThursday +"\t\t"+ bufRecord[i].detailsInFriday +"\t\t"+ bufRecord[i].detailsInSaturday);
  523.         }
  524.         showMenu(bufRecord);
  525.     }
  526.  
  527.     static int readMenuOf4Item() {
  528.         int menuItem;
  529.         boolean isNotCorrect;
  530.         menuItem = 0;
  531.         do {
  532.             isNotCorrect = false;
  533.             try {
  534.                 menuItem = Integer.parseInt(scan.nextLine());
  535.             } catch (Exception e) {
  536.                 System.out.println("Введите число!");
  537.                 isNotCorrect = true;
  538.             }
  539.             if ((menuItem != 1) && (menuItem != 2) && (menuItem != 3)&& (menuItem != 4)) {
  540.                 System.out.println("Введите одно из предложенных чисел!");
  541.                 isNotCorrect = true;
  542.             }
  543.         }while(isNotCorrect);
  544.         return menuItem;
  545.     }
  546.  
  547.     static void showMainMenu() throws IOException, ClassNotFoundException {
  548.         int menuItem;
  549.         do {
  550.             System.out.println("Выберете один из пунктов меню для продолжения:");
  551.             System.out.println("1. Загрузить запись из файла.");
  552.             System.out.println("2. Создать новую запись.");
  553.             System.out.println("3. О программе.");
  554.             System.out.println("4. Помощь.");
  555.             menuItem = readMenuOf4Item();
  556.             selectMainMenuItem(menuItem);
  557.         }while(menuItem == 3 || menuItem == 4);
  558.     }
  559.  
  560.     static void showInformationAboutProgram() {
  561.         System.out.println("Сведения о количестве изделий, собранных сборщиками цеха за неделю:");
  562.         System.out.println("- фамилия сборщика;");
  563.         System.out.println("- количество изделий, собираемых им ежедневно в течение шестидневной недели,");
  564.         System.out.println("т.е. раздельно - в понедельник, вторник и т.д.");
  565.         System.out.println("Вывести фамилию сборщика и общее количество деталей,");
  566.         System.out.println("собранное им за неделю,");
  567.         System.out.println("фамилию сборщика, собравшего наибольшее число изделий, и день,");
  568.         System.out.println("когда он достиг наивысшей производительности труда.");
  569.         System.out.println("В программе также реализованы следующие функции:");
  570.         System.out.println("•ввод записей;");
  571.         System.out.println("•корректировка записей;");
  572.         System.out.println("•удаление записей;");
  573.         System.out.println("•просмотр записей на экране.");
  574.         System.out.println();
  575.     }
  576.  
  577.     static void showHelpInfo(){
  578.         System.out.println("!Открывать можно только сохранённые ранее данной программой таблцы записей!");
  579.         System.out.println("Корректировка таблицы с помощью файла:");
  580.         System.out.println("Для изменения содержимого ячеек: Корректировка записей -> С помощью файла -> Изменить.");
  581.         System.out.println("(в файле должны содержаться(на каждой новой строчке):");
  582.         System.out.println("индекс изменяемой ячейки, новая фамилия и кол-во деталей за каждый день);");
  583.         System.out.println("Для добавления ячеек: Корректировка записей -> С помощью файла -> Добавить.");
  584.         System.out.println("(в файле должны содержаться(на каждой новой строчке): фамилия и кол-во деталей за каждый день);");
  585.         System.out.println("Для удаления(функция доступна для 2+ сборщиков) ячеек: Корректировка записей -> С помощью файла -> Удалить.");
  586.         System.out.println("(в файле должны содержаться(на каждой новой строчке):индекс удаляемой ячейки).");
  587.         System.out.println();
  588.     }
  589.  
  590.     static void selectMainMenuItem(int menuItem) throws IOException, ClassNotFoundException {
  591.         switch (menuItem) {
  592.             case 1 -> readArrayOfRecordsFromFile();
  593.             case 2 -> createArrayOfRecordsFromConsole();
  594.             case 3 -> showInformationAboutProgram();
  595.             case 4 -> showHelpInfo();
  596.         }
  597.     }
  598.  
  599.     public static void main(String[] args) throws IOException, ClassNotFoundException {
  600.         showMainMenu();
  601.     }
  602. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement