Лаба4

This commit is contained in:
Suzik123 2023-04-18 11:23:11 +03:00
parent 94db4cd912
commit e31e1a02a7
2 changed files with 170 additions and 39 deletions

View File

@ -1,13 +1,16 @@
import java.util.Random; import java.util.Random;
public class Cosmetic { public class Cosmetic {
public String name;
public int price_in_$; public int price_in_$;
public int health_damage_from1to10; public int health_damage_from1to10;
public int attractiveness_from1to10; public int attractiveness_from1to10;
public int quality_from1to10; public int quality_from1to10;
public int brightness_from1to10; public int brightness_from1to10;
public Cosmetic() {
public Cosmetic(String name) {
Random random = new Random(); Random random = new Random();
this.name= name;
this.price_in_$ = random.nextInt(1000) + 1;; this.price_in_$ = random.nextInt(1000) + 1;;
this.health_damage_from1to10 = random.nextInt(11); this.health_damage_from1to10 = random.nextInt(11);
this.attractiveness_from1to10 = random.nextInt(11); this.attractiveness_from1to10 = random.nextInt(11);
@ -15,11 +18,30 @@ public class Cosmetic {
this.brightness_from1to10 = random.nextInt(11); this.brightness_from1to10 = random.nextInt(11);
} }
public Cosmetic(int price_in_$, int health_damage_from1to10, int attractiveness_from1to10, int quality_from1to10, int brightness_from1to10) { public Cosmetic(String name, int price_in_$, int health_damage_from1to10, int attractiveness_from1to10, int quality_from1to10, int brightness_from1to10) {
this.name= name;
this.price_in_$ = price_in_$; this.price_in_$ = price_in_$;
this.health_damage_from1to10 = health_damage_from1to10; this.health_damage_from1to10 = health_damage_from1to10;
this.attractiveness_from1to10 = attractiveness_from1to10; this.attractiveness_from1to10 = attractiveness_from1to10;
this.quality_from1to10 = quality_from1to10; this.quality_from1to10 = quality_from1to10;
this.brightness_from1to10 = brightness_from1to10; this.brightness_from1to10 = brightness_from1to10;
} }
public int getPrice_in_$() {
return price_in_$;
}
public int getHealth_damage_from1to10() {
return health_damage_from1to10;
}
public int getAttractiveness_from1to10() {
return attractiveness_from1to10;
}
public int getQuality_from1to10() {
return quality_from1to10;
}
public int getBrightness_from1to10() {
return brightness_from1to10;
}
public String getName() {
return name;
}
} }

View File

@ -1,6 +1,8 @@
import java.sql.SQLOutput;
import java.util.InputMismatchException; import java.util.InputMismatchException;
import java.util.Scanner; import java.util.Scanner;
import java.util.Arrays;
import java.util.Comparator;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
@ -20,11 +22,14 @@ public class Main {
Cosmetic[] arr = new Cosmetic[quantity]; Cosmetic[] arr = new Cosmetic[quantity];
for (int i = 0; i < quantity; i++) { for (int i = 0; i < quantity; i++) {
System.out.println("Введіть назву об'єкта №" + (i + 1)+": ");
String name = scanner.next();
while (true) { while (true) {
System.out.println("Бажаєте заповнить об'єкт №" + (i + 1) + " випадковими значеннями?(Введіть так або ні)"); System.out.println("Бажаєте заповнить об'єкт №" + (i + 1) + " випадковими значеннями?(Введіть так або ні)");
String anwser = scanner.next(); String anwser = scanner.next();
if (anwser.equalsIgnoreCase("так")) { if (anwser.equalsIgnoreCase("так")) {
arr[i] = new Cosmetic(); arr[i] = new Cosmetic(name);
break; break;
} else { } else {
if (anwser.equalsIgnoreCase("ні")) { if (anwser.equalsIgnoreCase("ні")) {
@ -57,9 +62,8 @@ public class Main {
} }
if (healthDamage <= 10 && healthDamage >= 0) { if (healthDamage <= 10 && healthDamage >= 0) {
break; break;
} } else {
else { System.out.println("Помилка! Число знаходиться не в межах від 0 до 10.");
System.out.println("Помилка! Число знаходиться не в межах від 1 до 10.");
} }
} }
int attractiveness = 0; int attractiveness = 0;
@ -76,9 +80,8 @@ public class Main {
} }
if (attractiveness <= 10 && attractiveness >= 0) { if (attractiveness <= 10 && attractiveness >= 0) {
break; break;
} } else {
else { System.out.println("Помилка! Число знаходиться не в межах від 0 до 10.");
System.out.println("Помилка! Число знаходиться не в межах від 1 до 10.");
} }
} }
int quality = 0; int quality = 0;
@ -95,9 +98,8 @@ public class Main {
} }
if (quality <= 10 && quality >= 0) { if (quality <= 10 && quality >= 0) {
break; break;
} } else {
else { System.out.println("Помилка! Число знаходиться не в межах від 0 до 10.");
System.out.println("Помилка! Число знаходиться не в межах від 1 до 10.");
} }
} }
int brightness = 0; int brightness = 0;
@ -105,7 +107,7 @@ public class Main {
System.out.print("Введіть яркість по шкалі від 0 до 10: "); System.out.print("Введіть яркість по шкалі від 0 до 10: ");
while (true) { while (true) {
try { try {
quality = scanner.nextInt(); brightness = scanner.nextInt();
break; break;
} catch (InputMismatchException e) { } catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз:"); System.out.println("Введені символи не є цілим числом, спробуйте ще раз:");
@ -114,24 +116,131 @@ public class Main {
} }
if (brightness <= 10 && brightness >= 0) { if (brightness <= 10 && brightness >= 0) {
break; break;
} } else {
else { System.out.println("Помилка! Число знаходиться не в межах від 0 до 10.");
System.out.println("Помилка! Число знаходиться не в межах від 1 до 10.");
} }
} }
arr[i] = new Cosmetic(price, healthDamage, attractiveness, quality, brightness); arr[i] = new Cosmetic(name, price, healthDamage, attractiveness, quality, brightness);
arr[i] = new Cosmetic(); break;
} else { } else {
System.out.println("Ви ввели не правильне значення"); System.out.println("Ви ввели не правильне значення");
} }
} }
} }
} }
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());
}
}
Cosmetic pomada = new Cosmetic();
Cosmetic c2 = new Cosmetic(10, 3, 7, 5, 9);
System.out.println(pomada.price_in_$);
} }
} }