Предмет: Информатика, автор: vlasihinivan22

2. Создайте структуру с именем train, содержащую поля: название пункта назначения, номер поезда, время отправления. Ввести данные в массив из пяти элементов типа train, упорядочить элементы по номерам поездов. Добавить возможность вывода информации о поезде, номер которого введен пользователем. Добавить возможность сортировки массив по пункту назначения, причем поезда с одинаковыми пунктами назначения должны быть упорядочены по времени отправления.напишите на java

Ответы

Автор ответа: mneyan327
0

import java.util.Arrays;

import java.util.Scanner;

class Train implements Comparable<Train> {

private String destination;

private int trainNumber;

private String departureTime;

public Train(String destination, int trainNumber, String departureTime) {

this.destination = destination;

this.trainNumber = trainNumber;

this.departureTime = departureTime;

}

@Override

public int compareTo(Train otherTrain) {

// Сортируем по номерам поездов

return this.trainNumber - otherTrain.trainNumber;

}

public String getDestination() {

return destination;

}

public int getTrainNumber() {

return trainNumber;

}

public String getDepartureTime() {

return departureTime;

}

}

public class Main {

public static void main(String[] args) {

Train[] trains = new Train[5];

// Ввод данных о поездах

Scanner scanner = new Scanner(System.in);

for (int i = 0; i < trains.length; i++) {

System.out.println("Введите данные для поезда " + (i + 1) + ":");

System.out.print("Пункт назначения: ");

String destination = scanner.nextLine();

System.out.print("Номер поезда: ");

int trainNumber = scanner.nextInt();

scanner.nextLine(); // Очищаем буфер после считывания числа

System.out.print("Время отправления: ");

String departureTime = scanner.nextLine();

trains[i] = new Train(destination, trainNumber, departureTime);

}

// Сортировка по номерам поездов

Arrays.sort(trains);

// Вывод информации о поезде по его номеру

System.out.print("Введите номер поезда для получения информации: ");

int inputTrainNumber = scanner.nextInt();

scanner.nextLine(); // Очищаем буфер после считывания числа

boolean trainFound = false;

for (Train train : trains) {

if (train.getTrainNumber() == inputTrainNumber) {

System.out.println("Информация о поезде " + inputTrainNumber + ":");

System.out.println("Пункт назначения: " + train.getDestination());

System.out.println("Время отправления: " + train.getDepartureTime());

trainFound = true;

break;

}

}

if (!trainFound) {

System.out.println("Поезд с номером " + inputTrainNumber + " не найден.");

}

// Сортировка по пункту назначения и времени отправления

Arrays.sort(trains, (train1, train2) -> {

// Если пункты назначения разные, сортируем по пункту назначения

if (!train1.getDestination().equals(train2.getDestination())) {

return train1.getDestination().compareTo(train2.getDestination());

} else {

// Если пункты назначения одинаковые, сортируем по времени отправления

return train1.getDepartureTime().compareTo(train2.getDepartureTime());

}

});

// Вывод отсортированного списка поездов

System.out.println("\nОтсортированный список поездов:");

for (Train train : trains) {

System.out.println("Пункт назначения: " + train.getDestination());

System.out.println("Номер поезда: " + train.getTrainNumber());

System.out.println("Время отправления: " + train.getDepartureTime());

System.out.println("-----------");

}

}

}

Вы можете запустить этот код на Java и вводить данные о поездах. Затем вы можете выбрать определенный поезд, номер которого будет запрошен у вас, и вы увидите информацию о нем. Окончательно, программа отсортирует список поездов по пункту назначения, а затем, в случае одинаковых пунктов назначения, по времени отправления.

Похожие вопросы