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-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-18 11:23:11 +03:00
|
|
|
|
System.out.println("Введіть назву об'єкта №" + (i + 1)+": ");
|
|
|
|
|
String name = scanner.next();
|
2023-04-17 23:01:28 +03:00
|
|
|
|
while (true) {
|
2023-04-18 11:23:11 +03:00
|
|
|
|
|
2023-04-17 23:01:28 +03:00
|
|
|
|
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("Масив відсортований за зростанням:");
|
|
|
|
|
if (num1==1){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getPrice_in_$));
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getPrice_in_$());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(num1==2){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getHealth_damage_from1to10));
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getHealth_damage_from1to10());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(num1==3){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getAttractiveness_from1to10));
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getAttractiveness_from1to10());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(num1==4){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getQuality_from1to10));
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getQuality_from1to10());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(num1==5){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getBrightness_from1to10));
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getBrightness_from1to10());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
System.out.println("Масив відсортований за спаданням:");
|
|
|
|
|
if (num2==1){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getPrice_in_$).reversed());
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getPrice_in_$());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(num2==2){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getHealth_damage_from1to10).reversed());
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getHealth_damage_from1to10());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(num2==3){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getAttractiveness_from1to10).reversed());
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getAttractiveness_from1to10());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(num2==4){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getQuality_from1to10).reversed());
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getQuality_from1to10());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(num2==5){
|
|
|
|
|
Arrays.sort(arr, Comparator.comparingInt(Cosmetic::getBrightness_from1to10).reversed());
|
|
|
|
|
for(Cosmetic i: arr){
|
|
|
|
|
System.out.println(i.getName()+" - "+i.getBrightness_from1to10());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-17 23:01:28 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|