2015-03-22 4 views
-1

Я изучаю Java. Для этого задания я пытаюсь написать программу, которая предлагает кассиру ввести каждую цену и количество, а затем Y для домашнего животного или N для другого предмета. Используйте цену -1 в качестве дозорного. Скидка равна 20% стоимости других предметов, но не домашних животных. Он должен быть одним или несколькими домашними животными и не менее пяти других предметов, чтобы получить скидку. Я застрял, чтобы вызвать статический метод для моего основного класса. Любая помощь будет оценена. Спасибо!Как бы вы назвали статическим методом?

public class DT_PetDiscounter 
{ 
public static double discount(double[] prices, boolean[] isPet, int nItems) 
{ 
    double total = 0; 
    double discount = 0; 

for (int i = 0; i < nItems; i++) 
    { 
    if (isPet[i] == false) 
    { 
    total = total + prices[i]; 
    } 
} 
     return discount = 0.2 * total; 
} 
} 

import java.util.Scanner; 

/** 
* Main class to be used for input and output 
*/ 

public class DT_DiscountTester 
{ 
    public static void main(String args[]) 
    { 
    double[] prices = new double[100]; 
    boolean[] isPet = new boolean[100]; 
    int i = 0, nPets = 0, nItems = 0; 
    String pets; 
    int sentinel = 0; 

    Scanner scannerObject = new Scanner(System.in); 

    while (sentinel != -1) 
    { 
    System.out.println("Enter the price, or -1 to quit: "); 
    sentinel = scannerObject.nextInt(); 
    if (sentinel == -1) 
    break; 

    prices[i] = sentinel; 
    System.out.println("Is it a pet? y/n"); 
    pets = scannerObject.next(); 
    if(pets.equals("y")) 
    { 
     isPet[i] = true; 
     nPets++; 
    } 
    else 
    { 
     isPet[i] = false; 
     nItems++; 
    } 
    i++; 
    } 
    if(nItems >= 5 && nPets >= 1) 
    discount(prices,isPet,nPets+nItems); 
    System.out.println("The total after the discount is " + discount);  
}  
} 

ответ

0

Использование:

DT_PetDiscounter.discount(...); 
+0

Благодарим за внимание! –

0

Изменить

if (nItems >= 5 && nPets >= 1) 
    discount(prices,isPet,nPets+nItems); 

в

if (nItems >= 5 && nPets >= 1) 
    DT_PetDiscounter.discount(prices,isPet,nPets+nItems); 

... и пожалуйста, пожалуйста, пожалуйста прочитать на Java Style и важность е:

  • соответствует отступы,
  • последовательное использование белого пространства,
  • правильный выбор идентификаторов ... в том числе, когда/как использовать подчеркивание в идентификаторах. (К примеру, никогда в именах классов!)

Я надеюсь, что ваш лектор/учитель объяснил вам это. Если нет, то здесь это хорошее место, чтобы начать:

+0

Обратите внимание, что статические методы также могут быть вызваны на ссылки на объекты – javadg

+0

@javadg. Также обратите внимание, что вы можете манипулировать с помощью scimitars. Ни один из них не рекомендуется. –

+0

Спасибо. Он работает сейчас! –

0

пожалуйста, используйте расположенную ниже фрагмент кода, и я уверен, что ваш вопрос будет получить reolved.

double discVal = 0; 
    if(nItems >= 5 && nPets >= 1) 
     discVal=DT_PetDiscounter.discount(prices,isPet,nPets+nItems); 
    System.out.println("The total after the discount is " + discVal);  
+0

Благодарим за помощь! –