OOP_IO-2x_2023-mirror/laba4/Main.java

235 lines
12 KiB
Java
Raw Permalink Normal View History

2023-04-18 11:23:11 +03:00
import java.sql.SQLOutput;
2023-04-17 23:01:28 +03:00
import java.util.InputMismatchException;
import java.util.Scanner;
2023-04-18 11:23:11 +03:00
import java.util.Arrays;
import java.util.Comparator;
2023-04-30 14:10:02 +03:00
2023-04-17 23:01:28 +03:00
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int quantity = 0;
while (true) {
System.out.println("Скільки елементів в масиві ви хочете мати?");
try {
quantity = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз.");
scanner.nextLine();
}
}
Cosmetic[] arr = new Cosmetic[quantity];
for (int i = 0; i < quantity; i++) {
2023-04-30 14:10:02 +03:00
System.out.println("Введіть назву об'єкта №" + (i + 1) + ": ");
2023-04-18 11:23:11 +03:00
String name = scanner.next();
2023-04-17 23:01:28 +03:00
while (true) {
System.out.println("Бажаєте заповнить об'єкт №" + (i + 1) + " випадковими значеннями?(Введіть так або ні)");
String anwser = scanner.next();
if (anwser.equalsIgnoreCase("так")) {
2023-04-18 11:23:11 +03:00
arr[i] = new Cosmetic(name);
2023-04-17 23:01:28 +03:00
break;
} else {
if (anwser.equalsIgnoreCase("ні")) {
System.out.println("Добре, задайте дані об'єкта номер" + (i + 1) + ":");
int price = 0;
2023-04-18 11:23:11 +03:00
while (true) {
System.out.print("Введіть ціну в долларах: ");
try {
price = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз.");
scanner.nextLine();
2023-04-17 23:01:28 +03:00
}
2023-04-18 11:23:11 +03:00
}
2023-04-17 23:01:28 +03:00
int healthDamage = 0;
2023-04-18 11:23:11 +03:00
while (true) {
2023-04-17 23:01:28 +03:00
System.out.print("Введіть шкоду здоров'ю по шкалі від 0 до 10: ");
while (true) {
try {
healthDamage = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз:");
scanner.nextLine();
}
}
2023-04-18 11:23:11 +03:00
if (healthDamage <= 10 && healthDamage >= 0) {
2023-04-17 23:01:28 +03:00
break;
2023-04-18 11:23:11 +03:00
} else {
System.out.println("Помилка! Число знаходиться не в межах від 0 до 10.");
2023-04-17 23:01:28 +03:00
}
}
int attractiveness = 0;
2023-04-18 11:23:11 +03:00
while (true) {
2023-04-17 23:01:28 +03:00
System.out.print("Введіть привабливість по шкалі від 0 до 10: ");
while (true) {
try {
attractiveness = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз:");
scanner.nextLine();
}
}
2023-04-18 11:23:11 +03:00
if (attractiveness <= 10 && attractiveness >= 0) {
2023-04-17 23:01:28 +03:00
break;
2023-04-18 11:23:11 +03:00
} else {
System.out.println("Помилка! Число знаходиться не в межах від 0 до 10.");
2023-04-17 23:01:28 +03:00
}
}
int quality = 0;
2023-04-18 11:23:11 +03:00
while (true) {
2023-04-17 23:01:28 +03:00
System.out.print("Введіть якість по шкалі від 0 до 10: ");
while (true) {
try {
quality = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз:");
scanner.nextLine();
}
}
2023-04-18 11:23:11 +03:00
if (quality <= 10 && quality >= 0) {
2023-04-17 23:01:28 +03:00
break;
2023-04-18 11:23:11 +03:00
} else {
System.out.println("Помилка! Число знаходиться не в межах від 0 до 10.");
2023-04-17 23:01:28 +03:00
}
}
int brightness = 0;
2023-04-18 11:23:11 +03:00
while (true) {
2023-04-17 23:01:28 +03:00
System.out.print("Введіть яркість по шкалі від 0 до 10: ");
while (true) {
try {
2023-04-18 11:23:11 +03:00
brightness = scanner.nextInt();
2023-04-17 23:01:28 +03:00
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз:");
scanner.nextLine();
}
}
2023-04-18 11:23:11 +03:00
if (brightness <= 10 && brightness >= 0) {
2023-04-17 23:01:28 +03:00
break;
2023-04-18 11:23:11 +03:00
} else {
System.out.println("Помилка! Число знаходиться не в межах від 0 до 10.");
2023-04-17 23:01:28 +03:00
}
}
2023-04-18 11:23:11 +03:00
arr[i] = new Cosmetic(name, price, healthDamage, attractiveness, quality, brightness);
break;
2023-04-17 23:01:28 +03:00
} else {
System.out.println("Ви ввели не правильне значення");
}
}
}
}
2023-04-18 11:23:11 +03:00
System.out.println("\n\n\n\n");
System.out.println("Чудово! Масив з елементами класу створено!");
System.out.println("Далі треба задати поля, по яким слід сортувати елементи");
System.out.println("Для сортування по ціні введіть - 1");
System.out.println("Для сортування по шкоді для здоров'я введіть - 2");
System.out.println("Для сортування по привабливосты введіть - 3");
System.out.println("Для сортування по якості введіть - 4");
System.out.println("Для сортування по яркості введіть - 5\n");
int num1 = 0;
while (true) {
System.out.print("Введіть поле масиву від 1 до 5 для сортуванням за зростанням: ");
while (true) {
try {
num1 = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз:");
scanner.nextLine();
}
}
if (num1 <= 5 && num1 >= 1) {
break;
} else {
System.out.println("Помилка! Число знаходиться не в межах від 1 до 5.");
}
}
int num2 = 0;
while (true) {
System.out.print("Введіть поле масиву від 1 до 5 для сортування за спаданням: ");
while (true) {
try {
num2 = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз:");
scanner.nextLine();
}
}
if (num2 <= 5 && num2 >= 1) {
break;
} else {
System.out.println("Помилка! Число знаходиться не в межах від 1 до 5.");
}
}
System.out.println("Масив відсортований за зростанням:");
2023-04-30 14:10:02 +03:00
if (num1 == 1) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getPrice_in_$));
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getPrice_in_$());
2023-04-18 11:23:11 +03:00
}
2023-04-30 14:10:02 +03:00
} else if (num1 == 2) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getHealth_damage_from1to10));
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getHealth_damage_from1to10());
2023-04-18 11:23:11 +03:00
}
2023-04-30 14:10:02 +03:00
} else if (num1 == 3) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getAttractiveness_from1to10));
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getAttractiveness_from1to10());
2023-04-18 11:23:11 +03:00
}
2023-04-30 14:10:02 +03:00
} else if (num1 == 4) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getQuality_from1to10));
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getQuality_from1to10());
2023-04-18 11:23:11 +03:00
}
2023-04-30 14:10:02 +03:00
} else if (num1 == 5) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getBrightness_from1to10));
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getBrightness_from1to10());
2023-04-18 11:23:11 +03:00
}
}
System.out.println("Масив відсортований за спаданням:");
2023-04-30 14:10:02 +03:00
if (num2 == 1) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getPrice_in_$).reversed());
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getPrice_in_$());
2023-04-18 11:23:11 +03:00
}
2023-04-30 14:10:02 +03:00
} else if (num2 == 2) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getHealth_damage_from1to10).reversed());
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getHealth_damage_from1to10());
2023-04-18 11:23:11 +03:00
}
2023-04-30 14:10:02 +03:00
} else if (num2 == 3) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getAttractiveness_from1to10).reversed());
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getAttractiveness_from1to10());
2023-04-18 11:23:11 +03:00
}
2023-04-30 14:10:02 +03:00
} else if (num2 == 4) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getQuality_from1to10).reversed());
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getQuality_from1to10());
2023-04-18 11:23:11 +03:00
}
2023-04-30 14:10:02 +03:00
} else if (num2 == 5) {
2023-04-18 11:23:11 +03:00
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getBrightness_from1to10).reversed());
2023-04-30 14:10:02 +03:00
for (Cosmetic i : arr) {
System.out.println(i.getName() + " - " + i.getBrightness_from1to10());
2023-04-18 11:23:11 +03:00
}
}
2023-04-17 23:01:28 +03:00
}
}