deced

Untitled

Dec 27th, 2020 (edited)
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.17 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7. import java.nio.file.Files;
  8. import java.util.Scanner;
  9. import java.util.TreeSet;
  10.  
  11. public class Main {
  12. static Scanner scanner;
  13.  
  14. static TreeSet<Byte> inputSetFromConsole() {
  15. int n = 0;
  16. byte k = 0;
  17. TreeSet<Byte> setOfNumbers = new TreeSet<>();
  18. boolean isIncorrect;
  19. do {
  20. isIncorrect = false;
  21. System.out.print("Введите количество элементов которые будут находиться в множестве(максимум 20): ");
  22. try {
  23. n = Integer.parseInt(scanner.nextLine());
  24. } catch (Exception ex) {
  25. System.out.println("Ошибка! Введено не число! Пожалуйста, повторите попытку");
  26. isIncorrect = true;
  27. }
  28. if ((n > 20) && !isIncorrect) {
  29. System.out.println("Количество элементов в множестве не должно превышать 20!");
  30. isIncorrect = true;
  31. }
  32. } while (isIncorrect);
  33. for (int i = 0; i < n; i++) {
  34. do {
  35. isIncorrect = false;
  36. System.out.println("Введите " + i + "-й элемент множества: ");
  37. try {
  38. k = Byte.parseByte(scanner.nextLine());
  39. } catch (Exception ex) {
  40. System.out.println("Ошибка! Введено не число! Пожалуйста, повторите попытку");
  41. isIncorrect = true;
  42. }
  43. setOfNumbers.add(k);
  44. }
  45. while (isIncorrect);
  46. }
  47. return setOfNumbers;
  48. }
  49.  
  50.  
  51. static TreeSet<Byte> inputSetFromFile(String path) throws FileNotFoundException {
  52. int n = 0;
  53. byte k = 0;
  54. TreeSet<Byte> setOfNumbers = new TreeSet<>();
  55. File file = new File(path);
  56. Scanner fileScanner = new Scanner(file);
  57. n = Byte.parseByte(fileScanner.nextLine());
  58. for (int i = 0; i < n; i++) {
  59. k = Byte.parseByte(fileScanner.nextLine());
  60. setOfNumbers.add(k);
  61. }
  62. return setOfNumbers;
  63. }
  64.  
  65. static byte chooseSource() {
  66. boolean isIncorrect;
  67. byte source = 0;
  68. System.out.println("Выберите, как будет осуществлятся ввод и вывод данных, через файл или консоль.");
  69. System.out.print("Пожалуйста, сделайте выбор(1 - файл; 2 - консоль): ");
  70. do {
  71. isIncorrect = false;
  72. try {
  73. source = Byte.parseByte(scanner.nextLine());
  74. } catch (Exception ex) {
  75. isIncorrect = true;
  76. System.out.print("Выберете один из предложенных вариантов ответа (1 - файл; 2 - консоль): ");
  77. }
  78. if (source != 1 && source != 2 && !isIncorrect) {
  79. isIncorrect = true;
  80. System.out.print("Выберете один из предложенных вариантов ответа (1 - файл; 2 - консоль): ");
  81. }
  82. } while (isIncorrect);
  83. return source;
  84. }
  85.  
  86. static String inputPathToFile() {
  87. boolean isIncorrect;
  88. String path;
  89. do {
  90. isIncorrect = false;
  91. path = scanner.nextLine();
  92. File file = new File(path);
  93. if (!file.exists()) {
  94. isIncorrect = true;
  95. System.out.print("Файл не найден! Введите правильную ссылку: ");
  96. }
  97. } while (isIncorrect);
  98. return path;
  99. }
  100.  
  101.  
  102. static TreeSet<Byte> input(byte source) throws FileNotFoundException {
  103. TreeSet<Byte> setOfNumbers = new TreeSet<>();
  104. String path;
  105. switch (source) {
  106. case 1:
  107. System.out.print("Введите ссылку на файл ввода: ");
  108. path = inputPathToFile();
  109. setOfNumbers = inputSetFromFile(path);
  110. break;
  111. case 2:
  112. setOfNumbers = inputSetFromConsole();
  113. break;
  114. }
  115. return setOfNumbers;
  116. }
  117.  
  118.  
  119. static double calculateArithmetic(TreeSet<Byte> setOfNumbers) {
  120. double averageArithmetic;
  121. int sumOfNumbers = 0, amountOfNumbers = 0;
  122. for (byte k : setOfNumbers) {
  123. sumOfNumbers += k;
  124. amountOfNumbers++;
  125. }
  126.  
  127. averageArithmetic = sumOfNumbers / amountOfNumbers;
  128. return averageArithmetic;
  129. }
  130.  
  131.  
  132. static void printAverageArithmeticToConsole(double averageArithmetic) {
  133. System.out.printf("%5.2f", averageArithmetic);
  134. }
  135.  
  136.  
  137. static void printAverageArithmeticToFile(String path, double averageArithmetic) throws IOException {
  138. FileWriter fileWriter = new FileWriter(path);
  139. fileWriter.write(String.format("%5.2f", averageArithmetic));
  140. fileWriter.close();
  141. }
  142.  
  143.  
  144. static void print(byte source, double averageArithmetic) throws IOException {
  145. String path;
  146. switch (source) {
  147. case 1:
  148. System.out.print("Введите ссылку на файл вывода: ");
  149. path = inputPathToFile();
  150. printAverageArithmeticToFile(path, averageArithmetic);
  151. System.out.print("Данные успешно записаны в файл!");
  152. break;
  153. case 2:
  154. printAverageArithmeticToConsole(averageArithmetic);
  155. break;
  156. }
  157. }
  158.  
  159. public static void main(String[] args) throws IOException {
  160. scanner = new Scanner(System.in);
  161. byte source = chooseSource();
  162. TreeSet<Byte> set = input(source);
  163. double averageArithmetic = calculateArithmetic(set);
  164. print(source, averageArithmetic);
  165. }
  166. }
  167.  
Add Comment
Please, Sign In to add comment