2014-12-23 4 views
-2

Я пишу программу, которая считывает количество входных данных от пользователя, а затем запрашивает у пользователя название продукта и цену продукта в цикле. Затем он использует Array (not arrayList) для их хранения.используя массивы вместо arrayLists

Я написал класс для продуктов названные продукты (я могу избавиться от класса его просто, чтобы сделать его проще)

public class Products { 
    String ProductName; 
    double ProductPrice; 

    public Products(String a , double b) { 
     setProductName(a); 
     setProductPrice(b);   
    } 

    public String getProductName() { 
     return ProductName; 
    } 

    public double getProductPrice() { 
     return ProductPrice; 
    } 

    public void setProductName(String a) { 
     ProductName = a; 
    } 

    public void setProductPrice(double b) { 
     ProductPrice = b; 
    } 

    public String toString() { 
     return ProductName+": "+ProductPrice+"\n"; 
    } 
} 

и моя программа здесь

import java.util.Scanner; 
public class PreLab6 { 

    public static void main(String[] args) 
    { 
     Scanner scan = new Scanner(System.in); 
     int NumOfProducts; 
     String ProductName ; 
     double ProductPrice; 

     System.out.println("Enter the number of products:"); 
     NumOfProducts = scan.nextInt(); 



     while(NumOfProducts >= 1) 
     { 
      System.out.println("Enter the name of product:"); 
      ProductName = scan.next(); 


      System.out.println("Enter the price:"); 
      ProductPrice = scan.nextDouble(); 

      NumOfProducts--; 
     } 
    } 
} 

Я не мог 'Завершите мою программу, потому что я должен использовать массивы, но не arraylist. Я должен иметь такой вывод:

Введите число продуктов:
Введите название продукта:
мясо
Введите цену:
25,30
Введите название продукта:
яйцо
Введите цену:
1,20
мясо: 25,3
яйцо: 1,2

+2

Используйте 'NumOfProducts' (который, кстати, должен начинаться с нижнего регистра), чтобы создать массив' Products', а затем добавить каждый новый продукт в массив. Я предлагаю использовать цикл 'for'. – chancea

+3

Каков ваш вопрос? Почему ты не смог это сделать? Какие проблемы вы столкнулись при попытке реализовать это с помощью массивов? – tnw

+0

спасибо @chancea, –

ответ

3

Примечание: я хотел изменить Продукты [] на продукт []. Класс представляет собой единый продукт, поэтому не имеет смысла быть продуктом.

Вы можете инициализировать массив размером numOfProducts, который затем вы можете зациклиться и начать заполнять пользовательский ввод.

В отличие от ArrayLists, Arrays фиксированный размер (что хорошо, если вы знаете количество предметов, которые хотите сохранить перед собой). Arrays пригодится для этого типа решения, потому что вы знаете количество продуктов, которые вы храните перед использованием, используя numOfProducts.

public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 
    int numOfProducts; 
    String productName; 
    double productPrice; 

    System.out.println("Enter the number of products:"); 
    numOfProducts = scan.nextInt(); 
    //Create an array of Products using the user value stored in numOfProducts 
    Product[] products = new Product[numOfProducts]; 

    //Loop over products, and initialize each space with a new product 
    for (int i = 0; i < products.length; i++) { 
     System.out.println("Enter the name of product:"); 
     productName = scan.next(); 

     System.out.println("Enter the price:"); 
     productPrice = scan.nextDouble(); 

     products[i] = new Product(productName, productPrice); 
    } 
} 
+0

Я согласен, что его домашняя работа сделает его лучше программист – chancea

+1

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

+1

1 для правильного ответа. Однако было бы лучше, если бы вы могли объяснить OP, почему вам нужно инициализировать массив с помощью 'numOfProducts' в отличие от Array List. Это была основная путаница OP. – Jimmy

Смежные вопросы