Member 13455134 Ответов: 0

Как мне получить товары, добавленные в "корзину"?


Итак, я работаю над проектом, в котором я в основном имитирую интернет-магазин. У меня есть 20 клиентов, 2 администратора и 40 продуктов в целом. Я успешно получил программу, чтобы распечатать всех клиентов и администраторов с правильной информацией с ней. Однако мне нужно, чтобы у каждого клиента было от 1 до 3 случайных продуктов из моего "Products.txt-файл, но он не появится. Это может быть небольшая ошибка, но она сводит меня с ума, лол. Есть какие-нибудь подсказки, советы или советы? Мое нынешнее решение явно не работает.

Что я уже пробовал:

import java.util.*;
import java.io.*;

public class Program03 {

	public static void main(String[] args) {
		
		//Create the Array lists needed
		ArrayList<Administrator> administrators = new ArrayList<>();
		ArrayList<Customer> customers = new ArrayList<>();
		ArrayList<Product> products = new ArrayList<>();
		
		//Create array of admins
		try {
			customers = loadCustomers();
			administrators = loadAdministrators();
			products = loadProducts();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//Call the print people method
		printAdmins(administrators);
		printCustomers(customers);
		
		
		//Iterate through the list of customers and add products to their carts
		for (int i = 1; i < customers.size(); i++) {
			//Get the current customer from array list
			Customer customer = customers.get(i);
			
			//Create random number from 1 to 3
			int numberOfProducts = (int) (Math.random() * 3) + 1;
			
			//Get a random product 
			for (int j = 0; i < numberOfProducts; j++) {
			int productIndex = (int) (Math.random() * 40) + 1;
			Product product = products.get(productIndex);
			
			//Add the products to the car
			customer.addToCart(product);
			
			}
		}
		
		
	}
	
	//print people method
	public static void printAdmins(ArrayList<Administrator> people) {
		//Iterate through the array list and print
		for (int i = 0; i < people.size(); i++) {
			System.out.println(people.get(i));
		}
	}
	
	 static void printCustomers(ArrayList<Customer> people) {
		//Iterate throughout the array list and print
		for (int i = 0; i < people.size(); i++) {
			System.out.println(people.get(i));
		}
	}
	
	//Load admins
	public static ArrayList<Administrator> loadAdministrators() throws IOException {
		
		//Create array list locally
		ArrayList<Administrator> admins = new ArrayList<>();
		
		//load admins from a file
		File  file = new File("Administrators.txt");
		Scanner input = new Scanner(file);
		
		//Read the file
		while (input.hasNext()) {
			String SSN = input.next();
			String fname = input.next();
			String lname = input.next();
			int employeeId = input.nextInt();
			double salary = input.nextDouble();
			String EOL = input.nextLine();
			//Create admin object
			Administrator admin = new Administrator(SSN, fname, lname, employeeId, salary);
			//add admin to array list
			admins.add(admin);	
		}
		//return
		return admins;
		
		
	}
	
	//Load customers
	public static ArrayList<Customer> loadCustomers() throws IOException {
		
		//Create  array list locally
		ArrayList<Customer> shoppers = new ArrayList<>();
		
		//load shoppers from file
		File file = new File("Customers.txt");
		Scanner input = new Scanner(file);
		
		//Read the file
		while (input.hasNext()) {
			String SSN = input.next();
			String fname = input.next();
			String lname = input.next();
			int customerId = input.nextInt();
			String EOL = input.nextLine();
			//Create Customer Object
			Customer shopper = new Customer(SSN, fname, lname, customerId);
			//add shopper to array list
			shoppers.add(shopper);
		}
		//return
		return shoppers;
	}
	//load products
	public static ArrayList<Product> loadProducts() throws IOException {
		
		//Create array list locally
		ArrayList<Product> items = new ArrayList<>();
		
		//load items from file
		File file = new File("Products.txt");
		Scanner input = new Scanner(file);
		
		//Read File
		while(input.hasNext()) {
			int productId = input.nextInt();
			String name = input.next();
			String category = input.next();
			double price = input.nextDouble();
			int numberInStock = input.nextInt();
			String EOL = input.nextLine();
			
			//Create product object
			Product item = new Product(productId, name, category, price, numberInStock);
			
			//Add item to array list
			items.add(item);
		}
		return items;
	}
	
	
}

Member 13455134

Та часть, где предполагается добавить его, называется "\\итерация по списку клиентов и добавление продуктов в их тележки"

Richard MacCutchan

Насколько я могу судить, вы печатаете список клиентов до того, как добавите какие-либо продукты в их тележки.

0 Ответов