Help give the user the ability to select sorting, cost limits (from “price” to “price”), rating limits (from “rating” to “rating”)
import java.util.ArrayList;
import java.util.Scanner;
class Product {
String name;
double price;
int rating;
public Product(String name, double price, int rating) {
this.name = name;
this.price = price;
this.rating = rating;
}
}
class Category {
String name;
ArrayList<Product> products;
public Category(String name) {
this.name = name;
this.products = new ArrayList<>();
}
public void addProduct(Product product) {
products.add(product);
}
}
class Basket {
ArrayList<Product> items;
public Basket() {
this.items = new ArrayList<>();
}
public void addProduct(Product product) {
items.add(product);
}
public void removeProduct(Product product) {
items.remove(product);
}
public double totalCost() {
double total = 0;
for (Product product : items) {
total += product.price;
}
return total;
}
}
class User {
String username;
String password;
Basket basket;
public User(String username, String password) {
this.username = username;
this.password = password;
this.basket = new Basket();
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
User admin = new User("admin", "admin");
User user = new User("user", "user");
while (true) {
System.out.println("Введите логин:");
String login = scanner.nextLine();
System.out.println("Введите пароль:");
String password = scanner.nextLine();
if (login.equals(admin.username) && password.equals(admin.password)) {
System.out.println("Вы вошли как администратор.");
System.out.println("Что вы хотите сделать? (добавить товар / добавить категорию / выйти)");
String adminChoice = scanner.nextLine();
if (adminChoice.equalsIgnoreCase("добавить товар")) {
System.out.println("Как называется товар?");
String productName = scanner.nextLine();
System.out.println("Сколько оно стоит?");
double productPrice = Double.parseDouble(scanner.nextLine());
System.out.println("Какой рейтинг у товара?");
int productRating = Integer.parseInt(scanner.nextLine());
Product newProduct = new Product(productName, productPrice, productRating);
System.out.println("Спасибо вам за добавление товара!");
return;
} else if (adminChoice.equalsIgnoreCase("добавить категорию")) {
System.out.println("Как называется категория?");
String categoryName = scanner.nextLine();
Category newCategory = new Category(categoryName);
System.out.println("Спасибо вам за добавление категории!");
return;
} else if (adminChoice.equalsIgnoreCase("выйти")) {
System.out.println("До свидания!");
return;
} else {
System.out.println("Неверный выбор.");
}
} else if (login.equals(user.username) && password.equals(user.password)) {
System.out.println("Вы вошли как пользователь.");
System.out.println("Хотите добавить фильтр? (да/нет)");
String filterChoice = scanner.nextLine();
if (filterChoice.equalsIgnoreCase("да")) {
return;
}
break;
} else {
System.out.println("Неправильный логин или пароль. Попробуйте еще раз.");
}
}
Product reebokTShirt = new Product("Reebok футболка", 100, 7);
Product pumaTShirt = new Product("Puma футболка", 80, 8);
Product newBalanceTShirt = new Product("New Balance футболка", 90, 6);
Product calvinkleinTShirt = new Product("Calvin Klein футболка", 120, 9);
Product vansTShirt = new Product("Vans футболка", 110, 8);
Product reebokJacket = new Product("Reebok кофта", 150, 7);
Product pumaJacket = new Product("Puma кофта", 130, 8);
Product newBalanceJacket = new Product("New Balance кофта", 140, 6);
Product calvinkleinJacket = new Product("Calvin Klein кофта", 170, 9);
Product vansJacket = new Product("Vans кофта", 160, 5);
Product reebokPants = new Product("Reebok штаны", 120, 7);
Product pumaPants = new Product("Puma штаны", 100, 8);
Product newBalancePants = new Product("New Balance штаны", 110, 6);
Product calvinkleinPants = new Product("Calvin Klein штаны", 140, 9);
Product vansPants = new Product("Vans штаны", 130, 5);
Product nikeShoes = new Product("Nike кроссовки", 200, 8);
Product adidasShoes = new Product("Adidas кроссовки", 180, 7);
Product converseShoes = new Product("Converse кроссовки", 150, 6);
Product vansShoes = new Product("Vans кроссовки", 170, 9);
Product pumaShoes = new Product("Puma кроссовки", 160, 5);
Product calvinKleinUnderwear = new Product("Calvin Klein трусы", 30, 8);
Product armaniUnderwear = new Product("Armani трусы", 35, 7);
Product tommyHilfigerUnderwear = new Product("Tommy Hilfiger трусы", 25, 9);
Product hugoBossUnderwear = new Product("Hugo Boss трусы", 40, 6);
Product vansUnderwear = new Product("Vans трусы", 30, 5);
Product nikesweater = new Product("Nike куртка", 180, 8);
Product adidassweater = new Product("Adidas куртка", 160, 7);
Product pumasweater = new Product("Puma куртка", 140, 6);
Product theNorthFacesweater = new Product("The North Face куртка", 200, 9);
Product vanssweater = new Product("Vans куртка", 190, 5);
Category shoes = new Category("Обувь");
shoes.addProduct(nikeShoes);
shoes.addProduct(adidasShoes);
shoes.addProduct(converseShoes);
shoes.addProduct(vansShoes);
shoes.addProduct(pumaShoes);
Category underwear = new Category("Трусы");
underwear.addProduct(calvinKleinUnderwear);
underwear.addProduct(armaniUnderwear);
underwear.addProduct(tommyHilfigerUnderwear);
underwear.addProduct(hugoBossUnderwear);
underwear.addProduct(vansUnderwear);
Category sweater = new Category("Куртки");
sweater.addProduct(nikesweater);
sweater.addProduct(adidassweater);
sweater.addProduct(pumasweater);
sweater.addProduct(theNorthFacesweater);
sweater.addProduct(vanssweater);
Category tShirts = new Category("Футболки");
tShirts.addProduct(reebokTShirt);
tShirts.addProduct(pumaTShirt);
tShirts.addProduct(newBalanceTShirt);
tShirts.addProduct(calvinkleinTShirt);
tShirts.addProduct(vansTShirt);
Category jackets = new Category("Кофты");
jackets.addProduct(reebokJacket);
jackets.addProduct(pumaJacket);
jackets.addProduct(newBalanceJacket);
jackets.addProduct(calvinkleinJacket);
jackets.addProduct(vansJacket);
Category pants = new Category("Штаны");
pants.addProduct(reebokPants);
pants.addProduct(pumaPants);
pants.addProduct(newBalancePants);
pants.addProduct(calvinkleinPants);
pants.addProduct(vansPants);
System.out.println("Выберите товары:");
int counter = 1;
System.out.println(tShirts.name.toUpperCase());
for (Product product : tShirts.products) {
System.out.println(counter + ". " + product.name + " - Рейтинг: " + product.rating);
counter++;
}
System.out.
println(jackets.name.toUpperCase());
for (Product product : jackets.products) {
System.out.println(counter + ". " + product.name + " - Рейтинг: " + product.rating);
counter++;
}
System.out.println(pants.name.toUpperCase());
for (Product product : pants.products) {
System.out.println(counter + ". " + product.name + " - Рейтинг: " + product.rating);
counter++;
}
System.out.println(sweater.name.toUpperCase());
for (Product product : sweater.products) {
System.out.println(counter + ". " + product.name + " - Рейтинг: " + product.rating);
counter++;
}
System.out.println(underwear.name.toUpperCase());
for (Product product : underwear.products) {
System.out.println(counter + ". " + product.name + " - Рейтинг: " + product.rating);
counter++;
}
System.out.println(shoes.name.toUpperCase());
for (Product product : shoes.products) {
System.out.println(counter + ". " + product.name + " - Рейтинг: " + product.rating);
counter++;
}
System.out.println("Введите номера выбранных товаров через пробел:");
String[] choices = scanner.nextLine().split(" ");
for (String choice : choices) {
int productChoice = Integer.parseInt(choice);
if (productChoice < 1 || productChoice > counter) {
System.out.println("Неверный выбор товара.");
return;
}
if (productChoice <= tShirts.products.size()) {
Product chosenProduct = tShirts.products.get(productChoice - 1);
user.basket.addProduct(chosenProduct);
} else if (productChoice <= tShirts.products.size() + jackets.products.size()) {
Product chosenProduct = jackets.products.get(productChoice - tShirts.products.size() - 1);
user.basket.addProduct(chosenProduct);
} else if (productChoice <= tShirts.products.size() + jackets.products.size() + pants.products.size()) {
Product chosenProduct = pants.products.get(productChoice - tShirts.products.size() - jackets.products.size() - 1);
user.basket.addProduct(chosenProduct);
} else if (productChoice <= tShirts.products.size() + jackets.products.size() + pants.products.size() + sweater.products.size()) {
Product chosenProduct = sweater.products.get(productChoice - tShirts.products.size() - jackets.products.size() - pants.products.size() - 1);
user.basket.addProduct(chosenProduct);
} else if (productChoice <= tShirts.products.size() + jackets.products.size() + pants.products.size() + sweater.products.size() + underwear.products.size()) {
Product chosenProduct = underwear.products.get(productChoice - tShirts.products.size() - jackets.products.size() - pants.products.size() - sweater.products.size() - 1);
user.basket.addProduct(chosenProduct);
} else {
Product chosenProduct = shoes.products.get(productChoice - tShirts.products.size() - jackets.products.size() - pants.products.size() - sweater.products.size() - underwear.products.size() - 1);
user.basket.addProduct(chosenProduct);
}
}
System.out.println("Корзина пользователя " + user.username + ":");
for (Product item : user.basket.items) {
System.out.println("- " + item.name + " - $" + item.price);
}
System.out.println("Общая стоимость: $" + user.basket.totalCost());
System.out.println("Вы хотите купить эти товары? (да/нет)");
String choice = scanner.nextLine();
if (choice.equalsIgnoreCase("да")) {
System.out.println("Спасибо что купили наш товар!");
} else {
System.out.println("Вы хотите удалить эти товары из корзины? (да/нет)");
String removeChoice = scanner.nextLine();
if (removeChoice.equalsIgnoreCase("да")) {
user.basket.items.clear();
System.out.println("Товары удалены из корзины.");
} else {
System.out.println("Общая стоимость: $" + user.basket.totalCost());
}
}
scanner.close();
}
}
I tried to add this code but it didn't work
public static ArrayList<Product> filter And Sort(User user, double minPrice, double maxPrice, int minRating, int maxRating) {
ArrayList<Product> filtered Products = new ArrayList<>();
for (Category category : categories) {
filtered Products.add All(category.filter By Price(minPrice, maxPrice));
filtered Products.add All(category.filter By Rating(minRating, maxRating));
}
return filtered Products;
}
public static void show All Products(User user) {
// Display of all products
}
public static void show Filtered Products(ArrayList<Product> filtered Products) {
// Displaying filtered products
}
}
gggggggggggggggfhfhghfhfhghfhfhfghfhghfghghhhhh/enr;gjlsnrg;uzergnfiPWRJN;gjnzrwsgluidfkh;sjdfngydrsihlu;dozfihndlyfixzfu;oihvdgntuyfisuzfsipjcsuinhop,immgjuARGFVBYNHJ,;L’.KMNJHBYUGTFVCRDESXEDCFGVYBHNJKM,L;.’/.,LKMNHJUBYGTVFCDfvgbhnjmk,l;.’/.onhyjugtfvrdcftvgybhunjimok,l;.’/
;.,lkimnhjuygtvfrdexcfvgybhunjimko,l;.’/.,lnhjuygtfvrdcfvgbyhunjimko,l;.’/
?;.l,okimnjuhybgtvfrc