Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.util.Scanner;
- import java.util.TreeSet;
- class Point {
- public int X;
- public int Y;
- public Point(int x, int y) {
- X = x;
- Y = x;
- }
- }
- public class Main {
- static Scanner scanner;
- static final int n = 15;
- static Point[] inputArrayFromConsole() {
- Point[] points = new Point[n];
- System.out.println("Введите абсциссы(x) точек: ");
- for (int i = 0; i < n; i++)
- points[i] = new Point(0,0);
- for (int i = 0; i < n; i++)
- points[i].X = Integer.parseInt(scanner.nextLine());
- System.out.println("Введите ординаты(y) точек: ");
- for (int i = 0; i < n; i++)
- points[i].Y = Integer.parseInt(scanner.nextLine());
- return points;
- }
- static Point[] inputArrayFromFile(String path) throws FileNotFoundException {
- File file = new File(path);
- Scanner fileScanner = new Scanner(file);
- Point[] points = new Point[n];
- for (int i = 0; i < n; i++)
- points[i].X = Integer.parseInt(fileScanner.nextLine());
- for (int i = 0; i < n; i++)
- points[i].Y = Integer.parseInt(fileScanner.nextLine());
- return points;
- }
- static byte chooseSource() {
- boolean isIncorrect;
- byte source = 0;
- System.out.println("Выберите, как будет осуществлятся ввод и вывод данных, через файл или консоль.");
- System.out.print("Пожалуйста, сделайте выбор(1 - файл; 2 - консоль): ");
- do {
- isIncorrect = false;
- try {
- source = Byte.parseByte(scanner.nextLine());
- } catch (Exception ex) {
- isIncorrect = true;
- System.out.print("Выберете один из предложенных вариантов ответа (1 - файл; 2 - консоль): ");
- }
- if (source != 1 && source != 2 && !isIncorrect) {
- isIncorrect = true;
- System.out.print("Выберете один из предложенных вариантов ответа (1 - файл; 2 - консоль): ");
- }
- } while (isIncorrect);
- return source;
- }
- static String inputPathToFile() {
- boolean isIncorrect;
- String path;
- do {
- isIncorrect = false;
- path = scanner.nextLine();
- File file = new File(path);
- if (!file.exists()) {
- isIncorrect = true;
- System.out.print("Файл не найден! Введите правильную ссылку: ");
- }
- } while (isIncorrect);
- return path;
- }
- static Point[] input(byte source) throws FileNotFoundException {
- String path;
- Point[] arrayOfElements = new Point[]{};
- switch (source) {
- case 1:
- System.out.print("Введите ссылку на файл ввода: ");
- path = inputPathToFile();
- arrayOfElements = inputArrayFromFile(path);
- break;
- case 2:
- arrayOfElements = inputArrayFromConsole();
- break;
- }
- return arrayOfElements;
- }
- static Point[] sortArray(Point[] arrayOfPoints) {
- {
- Point x;
- for (int i = 0; i < n; i++)
- for (int j = i + 1; j < n; j++)
- if (arrayOfPoints[i].X > arrayOfPoints[j].X ||
- ((arrayOfPoints[i].X == arrayOfPoints[j].X) && (arrayOfPoints[i].Y > arrayOfPoints[j].Y))) {
- x = arrayOfPoints[i];
- arrayOfPoints[i] = arrayOfPoints[j];
- arrayOfPoints[j] = x;
- }
- }
- return arrayOfPoints;
- }
- static void outputArrayToConsole(Point[] arrayOfPoints, String sentence) {
- System.out.println(sentence);
- System.out.print("X:");
- for (int i = 0; i < n; i++)
- System.out.print(arrayOfPoints[i].X +" ");
- System.out.println();
- System.out.print("Y:");
- for (int i = 0; i < n; i++)
- System.out.print(arrayOfPoints[i].Y + " ");
- System.out.println();
- System.out.println();
- }
- static void outputArrayToFile(Point[] arrayOfPoints, String sentence, String path) throws IOException {
- FileWriter fileWriter = new FileWriter(path);
- fileWriter.write(sentence);
- fileWriter.write("X:");
- for (int i = 0; i < n; i++)
- fileWriter.write(arrayOfPoints[i].X + " ");
- fileWriter.write("");
- fileWriter.write("Y:");
- for (int i = 0; i < n; i++)
- fileWriter.write(arrayOfPoints[i].Y + " ");
- System.out.println();
- System.out.println();
- fileWriter.close();
- }
- static void output(byte source, Point[] arrayOfPoints) throws IOException {
- String path;
- switch (source) {
- case 1:
- System.out.print("Введите ссылку на файл вывода: ");
- path = inputPathToFile();
- outputArrayToFile(arrayOfPoints , "Исходный массив:", path);
- arrayOfPoints = sortArray(arrayOfPoints);
- outputArrayToFile(arrayOfPoints , "Отсортированный массив:", path);
- System.out.print("Данные успешно записаны в файл!");
- break;
- case 2: {
- outputArrayToConsole(arrayOfPoints, "Исходный массив:");
- arrayOfPoints = sortArray(arrayOfPoints);
- outputArrayToConsole(arrayOfPoints, "Отсортированный массив:");
- }
- }
- }
- public static void main(String[] args) throws IOException {
- scanner = new Scanner(System.in);
- System.out.println("Данная программа сортирует массив записей по первой координате. Если абсциссы некоторых точек равны, то сортирует их по ординатам.");
- byte source = chooseSource();
- Point[] arrayOfPoints = input(source);
- output(source, arrayOfPoints);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement