import java.io.Console; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.ListIterator; import java.util.Scanner; public class ConsoleApplication { private static final ArrayList<Integer> numArray = new ArrayList<Integer>(5); private static File outputFile; private static Console console; private static Scanner scanner; private static final String taskStr = "Вычислить среднее арифмитическое чисел вводимых с клавиатуры (использовать Arraylist).\nРезультат записать в файл.\n\n", fileRequestText = "Файл с результатом программы. Введите имя файла: ", requestCycleInfo = "Введите чило, после ввода нажмите Enter.\n" + "+++Для вывода на экран результата введите show.\n" + "+++Для выхода и записи результата в файл введите exit.\n", requestCycleText = "Ввод: "; public static void main(String args[]) { System.out.println("Задание: Вычислить среднее арифмитическое чисел вводимых с клавиатуры (использовать Arraylist).\nРезультат записать в файл.\n"); if ((console = System.console()) != null) { System.out.println(" - System.console - "); outputFile = new File(console.readLine(fileRequestText)); System.out.println(requestCycleInfo); while (true) { doLogic(console.readLine(requestCycleText).toLowerCase()); } } else { scanner = new Scanner(System.in); System.out.println(" - Scanner (System.in) - "); System.out.print(fileRequestText); outputFile = new File(scanner.nextLine()); System.out.println(requestCycleInfo); while (true) { System.out.print(requestCycleText); doLogic(scanner.nextLine().toLowerCase()); } } } // Если JDK\JRE >= 7 private static void doLogic(String in) { switch (in) { case "exit": save(); System.out.println("Работа программы завершена. Выход."); System.exit(0); break; case "show": System.out.println(getResult()); break; default: try { numArray.add(Integer.parseInt(in)); } catch (NumberFormatException ex) { System.out.println("\nНеверный формат числа, операция проигнорирована!\n"); } break; } } // Если JDK\JRE < 7 // private static void doLogic(String in) { // if (in.equals("exit")) { // save(); // System.out.println("Работа программы завершена. Выход."); // System.exit(0); // } else if (in.equals("show")) { // System.out.println(getResult()); // } else { // try { // numArray.add(Integer.parseInt(in)); // } catch (NumberFormatException ex) { // System.out.println("\nНеверный формат числа, операция проигнорирована!\n"); // } // } // } private static void save() { try { try (FileOutputStream fos = new FileOutputStream(outputFile)) { fos.write(getResult().getBytes("UTF-8")); fos.flush(); } } catch (FileNotFoundException ex) { System.err.println("Файл " + outputFile.getAbsolutePath() + " не найден!"); } catch (UnsupportedEncodingException ex) { System.err.println("Кодировка UTF-8 не поддерживается!"); } catch (IOException ex) { System.err.println("IOException: " + ex.getLocalizedMessage()); } } private static String getResult() { ListIterator<Integer> listIterator = numArray.listIterator(); Integer summ = 0; StringBuilder builder = new StringBuilder(); builder.append("Cреднее арифмитическое чисел: \r\n"); while (listIterator.hasNext()) { Integer nextVal = listIterator.next(); summ += nextVal; builder.append(" ").append(nextVal).append("\r\n"); } builder.append("\r\nРавно ").append(summ / numArray.size()).append(",").append(summ % numArray.size()); return builder.toString(); } }
среда, 25 декабря 2013 г.
Красота-то какая
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий