


Не понимаю как решить задачку.
Всем доброго вечера. У меня есть задача, в которой требуется отсортировать данные, с помощью enum. Вот задача:
Описать структуру с именем ZNAK, содержащую следующие поля:
• фамилия, имя;
• знак Зодиака;
• дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
1) ввести с клавиатуры данные в массив, состоящий из восьми элементов типа ZNAK;
2) упорядочить записи по знакам Зодиака (для знаков зодиака использовать перечисления (enum), начните со знака зодиака овен);
3) вывести на экран информацию о людях, родившихся в месяц, значение которого введено с клавиатуры. Если таких нет, выдать пользователю соответствующее сообщение.
Задача довольно простая, но я не могу понять одного: каким образом я могу упорядочить запись с помощью enum? Подскажите пожалуйста
Завязывайте, вы, с астрологией. К добру это не приведёт.
Ваш код: https://pastebin.com/fdH2MU3Y
Для упорядочивания записей по знакам Зодиака с помощью `enum` в Java, вы можете сделать следующее:
1. Определите перечисление `enum` для знаков Зодиака, где каждому знаку будет соответствовать определенное значение (обычно это порядковый номер).
2. В вашей структуре `ZNAK` используйте это перечисление для поля знака Зодиака.
3. При сортировке массива элементов `ZNAK`, используйте метод `compareTo` перечисления, который автоматически сравнивает порядковые номера знаков Зодиака.
Вот пример кода на Java:
```java
// Перечисление для знаков Зодиака
enum Zodiac {
ARIES, // Овен
TAURUS, // Телец
GEMINI, // Близнецы
// ... добавьте остальные знаки
}
// Класс для хранения данных
class ZNAK {
String name; // Фамилия и имя
Zodiac zodiac; // Знак Зодиака
int[] birthDate; // Дата рождения
// Конструктор
public ZNAK(String name, Zodiac zodiac, int[] birthDate) {
this.name = name;
this.zodiac = zodiac;
this.birthDate = birthDate;
}
}
// Ваша программа
public class ZodiacSorter {
public static void main(String[] args) {
// Создайте массив из восьми элементов типа ZNAK
ZNAK[] znaks = new ZNAK[8];
// ... заполните массив данными
// Сортировка массива по знаку Зодиака
Arrays.sort(znaks, new Comparator<ZNAK>() {
@Override
public int compare(ZNAK z1, ZNAK z2) {
return z1.zodiac.compareTo(z2.zodiac);
}
});
// Вывод информации о людях, родившихся в определенном месяце
Scanner scanner = new Scanner( System.in );
System.out.println("Введите номер месяца:");
int month = scanner.nextInt();
boolean found = false;
for (ZNAK znak : znaks) {
if (znak.birthDate[1] == month) { // Предполагая, что месяц - это второй элемент массива birthDate
System.out.println( znak.name + " " + znak.zodiac);
found = true;
}
}
if (!found) {
System.out.println("Нет людей, родившихся в этом месяце.");
}
}
}
```
Этот код создает массив объектов `ZNAK`, сортирует их по знаку Зодиака и выводит информацию о людях, родившихся в заданном месяце. Убедитесь, что вы добавили все знаки Зодиака в перечисление `Zodiac` и корректно заполнили массив `znaks`.
Удачной ночи!